- 20 Jun, 2019 1 commit
-
-
Adam Jackson authored
The PresentOptionSuboptimal support code is not optional (once you've enabled building Present at all), so require a protocol package version that defines what we need. Fixes: #821
-
- 17 Jun, 2019 1 commit
-
-
Jon Turney authored
Rather than drawing the window contents from the shadow framebuffer, use Composite extension redirection to cause the server to maintain a bitmap image of each top-level X window, and draw the window contents from that, so that window contents which are occluded in the framebuffer show correctly in the task bar and task switcher previews. v2: Fix incorrect use of memset() found by gcc5 hw/xwin/winshadgdi.c: In function ‘winBltExposedWindowRegionShadowGDI’: hw/xwin/winshadgdi.c:861:9: warning: ‘memset’ used with constant zero length parameter; this could be due to transposed parameters [-Wmemset-transposed-args] v3: Turn on -compositewm by default v4: Ignore -swcursor if -compositewm -swcursor is not compatible with -compositewm (because the window contents are drawn from an off-screen pixmap, not from the screen pixmap, where the software cursor will be drawn). v5: Update meson.build also Add -compositewm option to help output Update CI to install prerequisites
-
- 18 May, 2019 2 commits
-
-
Jon Turney authored
MinGW defines SIG_BLOCK, but doesn't have signal masks, so rather than checking for SIG_BLOCK, add a configure check for sigprocmask. v2: Also add check to meson.build
-
Jon Turney authored
I don't think an input thread can ever be useful on Windows. There is a pthread emulation, so having the thread itself isn't much of a problem. However, there is no device to wait on for Windows events, and even if we were to replace select() with WFMO, Windows wants to send events for a window to the thread which created that window. So, disable input thread by default for MinGW v2: Also add similar to meson.build
-
- 02 May, 2019 1 commit
-
-
Jon Turney authored
Promote the generated file containing the date & time build was configured to top-level. Rename it from xf86Build.h to buildDateTIme.h. Use it as well in XQuartz, stringize BUILD_DATE when needed.
-
- 01 May, 2019 1 commit
-
-
Jon Turney authored
This has always been described as 'experimental' We don't think this has any users: This mode has been disabled in Cygwin packages since March 2016. We've never provided the xwinwm WM for x86_64 Cygwin. No one has even asked where the option has gone. This leaves XQuartz as the only user of the rootless extension. Remove --enable-windowswm configure option Remove multiwindowextwm stuff from Makefiles Remove -mwextwm option Remove -mwextwm from man-page and help Un-ifdef XWIN_MULTIWINDOWEXTWM v2: Remove rootless include paths Remove windowswmproto from meson.build
-
- 14 Feb, 2019 1 commit
-
-
Alexander Volkov authored
It doesn't require shared memory dir and thus allows to avoid cases when this dir is detected incorrectly, as in https://bugreports.qt.io/browse/QTBUG-71440Signed-off-by:
Alexander Volkov <a.volkov@rusbitech.ru>
-
- 16 Jan, 2019 1 commit
-
-
Adam Jackson authored
The only thing using this anymore is the i810 driver, so this can safely be disabled on non-i686 builds. Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 25 Nov, 2018 1 commit
-
-
Alan Coopersmith authored
Signed-off-by:
Alan Coopersmith <alan.coopersmith@oracle.com>
-
- 19 Sep, 2018 2 commits
-
-
Eric Anholt authored
Prodding the builder's filesystem for tmp dirs doesn't necessarily tell you anything about what the actual host's filesystem is going to look like, so we should just try the dirs at runtime. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
I don't think this is useful information to have in the log, and it's a bunch of autotools and meson logic to produce it. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 09 Aug, 2018 1 commit
-
-
vadym.shovkoplias authored
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107521 Fixes: 72683945 (autotools: Derive xkb configuration from xkbcomp.pc) Reviewed-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
vadym.shovkoplias <vadym.shovkoplias@globallogic.com>
-
- 02 Aug, 2018 2 commits
-
-
Eric Anholt authored
We already have pm_noop.c being built most of the time for the no-OS-PM case, so just switch to always using it. Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Eric Anholt authored
CONFIG_UDEV and CONFIG_UDEV_KMS are the actual defines that are used in the C code. Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 27 Jun, 2018 1 commit
-
-
Adam Jackson authored
This isn't used for anything, which is just as well, because /etc/xorg.conf is not in fact a path xserver will try to use. Bugzilla: https://bugs.freedesktop.org/8890Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Aaron Plattner <aplattner@nvidia.com>
-
- 11 Jun, 2018 1 commit
-
-
Matt Turner authored
In commit 9db2af6f (xfree86: Remove xf86{Map,Unmap}VidMem) we somehow stopped exporting xf86{Read,Write}Mmio{8,16,32}. Since the function pointer indirection was intended to support dense vs sparse and sparse support is now gone, we can just make the functions static inline in compiler.h and avoid all of this. Bugzilla: https://bugs.gentoo.org/548906Tested-by:
Christopher May-Townsend <chris@maytownsend.co.uk> Reviewed-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Matt Turner <mattst88@gmail.com>
-
- 14 May, 2018 1 commit
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 10 May, 2018 1 commit
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 24 Apr, 2018 3 commits
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Lyude Paul authored
This adds initial support for displaying Xwayland applications through the use of EGLStreams and nvidia's custom wayland protocol by adding another egl_backend driver. This also adds some additional egl_backend hooks that are required to make things work properly. EGLStreams work a lot differently then the traditional way of handling buffers with wayland. Unfortunately, there are also a LOT of various pitfalls baked into it's design that need to be explained. This has a very large and unfortunate implication: direct rendering is, for the time being at least, impossible to do through EGLStreams. The main reason being that the EGLStream spec mandates that we lose the entire color buffer contents with each eglSwapBuffers(), which goes against X's requirement of not losing data with pixmaps. no way to use an allocated EGLSurface as the storage for glamor rendering like we do with GBM, we have to rely on blitting each pixmap to it's respective EGLSurface producer each frame. In order to pull this off, we add two different additional egl_backend hooks that GBM opts out of implementing: - egl_backend.allow_commits for holding off displaying any EGLStream backed pixmaps until the point where it's stream is completely initialized and ready for use - egl_backend.post_damage for blitting the content of the EGLStream surface producer before Xwayland actually damages and commits the wl_surface to the screen. The other big pitfall here is that using nvidia's wayland-eglstreams helper library is also not possible for the most part. All of it's API for creating and destroying streams rely on being able to perform a roundtrip in order to bring each stream to completion since the wayland compositor must perform it's job of connecting a consumer to each EGLstream. Because Xwayland has to potentially handle both responding to the wayland compositor and it's own X clients, the situation of the wayland compositor being one of our X clients must be considered. If we perform a roundtrip with the Wayland compositor, it's possible that the wayland compositor might currently be connected to us as an X client and thus hang while both Xwayland and the wayland compositor await responses from eachother. To avoid this, we work directly with the wayland protocol and use wl_display_sync() events along with release() events to set up and destroy EGLStreams asynchronously alongside handling X clients. Additionally, since setting up EGLStreams is not an atomic operation we have to take into consideration the fact that an EGLStream can potentially be created in response to a window resize, then immediately deleted due to another pending window resize in the same X client's pending reqests before Xwayland hits the part of it's event loop where we read from the wayland compositor. To make this even more painful, we also have to take into consideration that since EGLStreams are not atomic that it's possible we could delete wayland resources for an EGLStream before the compositor even finishes using them and thus run into errors. So, we use quite a bit of tracking logic to keep EGLStream objects alive until we know the compositor isn't using them (even if this means the stream outlives the pixmap it backed). While the default backend for glamor remains GBM, this patch exists for users who have had to deal with the reprecussion of their GPU manufacturers ignoring the advice of upstream and the standardization of GBM across most major GPU manufacturers. It is not intended to be a final solution to the GBM debate, but merely a baindaid so our users don't have to suffer from the consequences of companies avoiding working upstream. New drivers are strongly encouraged not to use this as a backend, and use GBM like everyone else. We even spit this out as an error from Xwayland when using the eglstream backend. Signed-off-by:
Lyude Paul <lyude@redhat.com> Acked-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Lyude Paul authored
Just a small autogenerated header that will soon contain more then just one macro. Signed-off-by:
Lyude Paul <lyude@redhat.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 12 Apr, 2018 1 commit
-
-
Emil Velikov authored
Replace the current (incorrect) assumption that wayland-scanner is located in the wayland-client prefix. Make use of the wayland_scanner variable in wayland-scanner.pc It was introduced back in 2013 and we already require newer wayland bits Reviewed-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
-
- 10 Apr, 2018 1 commit
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 05 Apr, 2018 1 commit
-
-
Adam Jackson authored
[735/786] Generating 'hw/xwayland/Xwayland@exe/relative-pointer-unstable-v1-protocol.c'. Using "code" is deprecated - use private-code or public-code. See the help page for details. Use private-code if wayland-scanner is new enough. Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 02 Apr, 2018 1 commit
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 28 Mar, 2018 2 commits
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Adam Jackson authored
... if available, falling back to the current heuristics otherwise. This _finally_ gets me to being able to run util/modular/release.sh without overriding $prefix. Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 27 Mar, 2018 1 commit
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com> Acked-by:
Keith Packard <keithp@keithp.com>
-
- 21 Mar, 2018 2 commits
-
-
Emil Velikov authored
With earlier commit the required version was bumped to 2.4.89, thus the guards always evaluate to true. Fixes: e4e34476 ("Add RandR leases with modesetting driver support [v6]") Cc: Keith Packard <keithp@keithp.com> Cc: Daniel Stone <daniels@collabora.com> Cc: Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Emil Velikov authored
We already require said version. Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 05 Mar, 2018 7 commits
-
-
Louis-Francis Ratté-Boulianne authored
Implement function added in DRI3 v1.1. A newest version of libepoxy (>= 1.4.4) is required as earlier versions use a problematic version of Khronos EXT_image_dma_buf_import_modifiers spec. v4: Only send scanout-supported modifiers if flipping is possible v5: Fix memory corruption in XWayland (uninitialized pointer) Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Louis-Francis Ratté-Boulianne authored
It relies on GBM >= 17.1.0 where we can import BO with multiple planes and a format modifier (GBM_BO_IMPORT_FD_MODIFIER). v2: Properly free fds in Xwayland [Also add glamor_egl_ext.h to Makefile.am for distcheck's sake - ajax] Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Louis-Francis Ratté-Boulianne authored
Retrieve IN_FORMATS property from the plane. It gives the allowed formats and modifiers for BO allocation. Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Louis-Francis Ratté-Boulianne authored
In order to flip between compressed and uncompressed buffers - something drmModePageFlip explicitly bans us from doing - we need to port use the atomic modesetting API. It's only 'fake' atomic though given we still commit for each CRTC separately and CRTC and connector properties are not set with the atomic API. The helper functions to retrieve DRM properties have been borrowed from Weston. Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Louis-Francis Ratté-Boulianne authored
Add 'check_flip2' hook for driver to let know the core about why flipping is not possible ('reason'). If it is because of unsupported buffer format/modifier, a PresentCompleteNotify event is sent to the client with the PresentCompleteModeSuboptimalCopy mode. v2: Check for PresentOptionSuboptimal and check driver version before using 'check_flip2'. v3: Only require one of 'check_flip' or 'check_flip2' to be implemented by the driver. Refactor reasons list to enum Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Louis-Francis Ratté-Boulianne authored
Initial implementation for DRI3 v1.1. Only the DRI3 implementation is there, backends need to implement the proper hooks. Version is still set to 1.0 so clients shouldn't use the new requests yet. v2: Use depth/bpp instead of DRM formats in requests v3: Remove DMA fence requests from v1.1 Add screen/drawable modifier sets v4: Free array returned by 'get_drawable_modifiers()' v5: Fix FD leak Signed-off-by:
Daniel Stone <daniels@collabora.com> Signed-off-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Keith Packard authored
Both autotools and meson build systems had complicated logic around what version of libdrm to require for various options. Remove that and just check for a new enough version to support all of the options which need libdrm. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 28 Feb, 2018 1 commit
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- 27 Feb, 2018 2 commits
-
-
Keith Packard authored
This adds support for RandR CRTC/Output leases through the modesetting driver, creating a lease using new kernel infrastructure and returning that to a client through an fd which will have access to only those resources. v2: Restore CRTC mode when leases terminate When a lease terminates for a crtc we have saved data for, go ahead and restore the saved mode. v3: Report RR_Rotate_0 rotations for leased crtcs. Ignore leased CRTCs when selecting screen size. Stop leasing encoders, the kernel doesn't do that anymore. Turn off crtc->enabled while leased so that modesetting ignores them. Check lease status before calling any driver mode functions When starting a lease, mark leased CRTCs as disabled and hide their cursors. Also, check to see if there are other non-leased CRTCs which are driving leased Outputs and mark them as disabled as well. Sometimes an application will lease an idle crtc instead of the one already associated with the leased output. When terminating a lease, reset any CRTCs which are driving outputs that are no longer leased so that they start working again. This required splitting the DIX level lease termination code into two pieces, one to remove the lease from the system (RRLeaseTerminated) and a new function that frees the lease data structure (RRLeaseFree). v4: Report RR_Rotate_0 rotation for leased crtcs. v5: Terminate all leases on server reset. Leases hang around after the associated client exits so that the client doesn't need to occupy an X server client slot and consume a file descriptor once it has gotten the output resources necessary. Any leases still hanging around when the X server resets or shuts down need to be cleaned up by calling the kernel to terminate the lease and freeing any DIX structures. Note that we cannot simply use the existing drmmode_terminate_lease function on each lease as that wants to also reset the video mode, and during server shut down that modesetting: Validate leases on VT enter The kernel doesn't allow any master ioctls to run when another VT is active, including simple things like listing the active leases. To deal with that, we check the list of leases whenever the X server VT is activated. xfree86: hide disabled cursors when resetting after lease termination The lessee may well have played with cursors and left one active on our screen. Just tell the kernel to turn it off. v6: Add meson build infrastructure [Also bumped libdrm requirement - ajax] Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Keith Packard authored
Save any value of the kernel non-desktop property in the xf86Output structure to avoid non-desktop outputs in the default configuration. [Also bump randrproto requirement to a version that defines RR_PROPERTY_NON_DESKTOP - ajax] Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@nwnk.net>
-