- Aug 27, 2018
-
-
Keith Packard authored
Output scaling: * Changes to mivaltree to reset window clip to owner window size instead of server window size when compositing * Allocate owner window size pixmap for composite pixmap * Paint scaled image for automatic compositing * Report owner window size in events to the window owner. * Scale exposure damage in compSetRedirectBorderClip from current size to owner size to make sure the correct parts of the window are repainted. Input scaling: * Change miSpriteTrace to scale cursor coordinates when transiting an owner-sized window. Do all computations in double to handle multiple such transitions without losing bits * Add ScaleRootCoordinate in events.c. This function takes a window and a root x/y and walks up the tree scaling each time there is an owner size set. * Use ScaleRootCoordinate in FixUpEventFromWindow. * Wrap event delivery in DeliverEvent in new SaveEventRootCoord/RestoreEventRootCoord functions so that different windows receiving the same event will all receive the correct coordinates. Composite events: * Deliver CompositePixmapNotify events from compSetPixmapVisitWindow so that applications will be notified each time the pixmap changes. * Deliver CompositeOwnerWindowSizeNotify events when owner window size is set. Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- Apr 02, 2018
-
-
Install missing headers to the SDK directory to allow external modules to properly build against the SDK. After this commit, the list of files installed in the SDK include directory is the same as the list of files installed by the autotools-based build. Reviewed-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Thierry Reding <treding@nvidia.com>
-
- Sep 20, 2017
-
-
Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
The extension was using the name CARD64 to represent 64-bit values, with a #define from CARD64 to XSyncValue, a struct with a pair of 32-bit values representing a signed 64-bit value. This interfered with protocol headers using CARD64 to try to actually store a uint64_t. Now that stdint.h exists, let's just use that here, instead. v2: Fix alarm delta changes. v3: Do the potentially overflowing math as uint and convert to int afterward, out of C spec paranoia. Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
- Apr 26, 2017
-
-
Emma Anholt authored
This is a work in progress that builds Xvfb, Xephyr, Xwayland, Xnest, and Xdmx so far. The outline of Xquartz/Xwin support is in tree, but hasn't been built yet. The unit tests are also not done. The intent is to build this as a complete replacement for the autotools system, then eventually replace autotools. meson is faster to generate the build, faster to run the bulid, shorter to write the build files in, and less error-prone than autotools. v2: Fix indentation nits, move version declaration to project(), use existing meson_options for version-config.h's vendor name/web. Signed-off-by:
Eric Anholt <eric@anholt.net> Acked-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- Mar 21, 2017
-
-
Adam Jackson authored
None of this is actually wired up to anything, so we can also remove the devPrivates from the DamageRec. The DamageExtRec is what would need devPrivates for selinux labeling, in principle. Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
- Feb 08, 2017
-
-
The lower layers also do this, but no damage may be reported there, since we unwrap before calling down. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99220 Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Alex Deucher <alexander.deucher@amd.com>
-
- Dec 13, 2016
-
-
Adam Jackson authored
The commit message makes the assertion that the code below damage is not allowed to change whether there's a damage monitor for the drawable. That turns out not to be the case! exa's mixed code, at least, will create and destroy a damage in PrepareAccess. The destroy path can then be catastrophic, as damageRegionProcessPending will attempt to RegionEmpty memory from the middle of a freed block. I'd wanted that invariant for performance, but faster isn't worth broken, so revert it. I think what exa's doing is reasonable, so the better way to improve performance for the unmonitored case is to either revisit dynamically wrapping into the GC, or inline damage into dix. This reverts commit 4e124203. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1389886 Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- Dec 12, 2016
-
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Adam Jackson authored
shadowDamage is just obfuscation. The other two macros won't work outside shadow.c since the private key is in fact static there (meaning the extern decl is a lie). Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Adam Jackson authored
These are no longer used in the drivers. Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Adam Jackson authored
Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
- Jul 18, 2016
-
-
This removes the last uses of fd_set from the server interfaces outside of the OS layer itself. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
With no users of the interface needing the readmask anymore, we can remove it from the argument passed to these functions. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
This new libXfont API eliminates exposing internal X server symbols to the font library, replacing those with a struct full of the entire API needed to use that library. v2: Use libXfont2 instead of libXfont_2 Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- Jun 20, 2016
-
-
Keith Packard authored
The screen block and wakeup handlers are the only ones which provide a well known ordering between the wrapping layers; placing these as close as possible to the server blocking provides a way for the driver to control the flow of execution correctly. Switch the shadow code to run in the screen block handler so that it now occurrs just before the server goes to sleep. Switch glamor to call down to the driver after it has executed its own block handler piece, in case the driver needs to perform additional flushing work after glamor has called glFlush. These changes ensure that the following modules update the screen in the correct order: animated cursors (uses RegisterBlockAndWakeupHandlers dynamically) composite (dynamic wrapping) misprite (dynamic wrapping) shadow (static wrapping) glamor (static wrapping) driver (static wrapping) It looks like there's still a bit of confusion between composite and misprite; if composite updates after misprite, then it's possible you'd exit the block handler chain with the cursor left hidden. To fix that, misprite should be wrapping during ScreenInit time and not unwrapping. And composite might as well join in that fun, just to make things consistent. [v2] Unwrap BlockHandler in shadowCloseScreen (ajax) [v3] ephyr: Use screen block handler for flushing changes ephyr needs to make sure it calls glXSwapBuffers after glamor finishes its rendering. As the screen block handler is now called last, we have to use that instead of a registered block/wakeup handler to make sure the GL rendering is done before we copy it to the front buffer. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- May 18, 2016
-
-
Adam Jackson authored
In the case where there's no damage monitor on the drawable, we look that fact up twice: once before rendering to decide whether to compute damage, and again after to decide whether to append it. This is wasted effort, as the layer below us is effectively not allowed to change whether there's a damage monitor for the drawable, but there's no way the compiler can know that. Instead, look it up once up front, and change the check macros and damageRegionProcessPending to take a damage not a drawable. v2: Explicitly pass pDamage to the macros as well (Michel Dänzer) Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com>
-
- Sep 21, 2015
-
-
Adam Jackson authored
gcc quite correctly complains about this: In file included from ../../include/scrnintstr.h:51:0, from rootlessValTree.c:98: In function 'RegionUninit.isra.1', inlined from 'RegionEmpty' at ../../include/regionstr.h:194:5, inlined from 'RootlessMiValidateTree' at rootlessValTree.c:490:9: ../../include/regionstr.h:166:9: warning: attempt to free a non-heap object 'RegionBrokenData' [-Wfree-nonheap-object] free((_pReg)->data); So that'd crash if you ever got there. RegionNull will do almost the same thing only without the free(), so let's do that instead; it might still not be an entirely sane way to recover, but it at least won't crash. Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- Aug 18, 2015
-
-
fixes: In file included from rootlessWindow.c:51:0: rootlessWindow.c: In function 'RootlessResizeWindow': rootlessCommon.h:198:19: warning: declaration of 'w' shadows a parameter [-Wshadow] WindowPtr w = pWin; \ ^ rootlessWindow.c:1292:9: note: in expansion of macro 'HUGE_ROOT' HUGE_ROOT(pWin); ^ rootlessWindow.c:1262:35: note: shadowed declaration is here unsigned int w, unsigned int h, WindowPtr pSib) ^ In file included from rootlessWindow.c:51:0: rootlessCommon.h:207:19: warning: declaration of 'w' shadows a parameter [-Wshadow] WindowPtr w = pWin; \ ^ rootlessWindow.c:1296:9: note: in expansion of macro 'NORMAL_ROOT' NORMAL_ROOT(pWin); ^ rootlessWindow.c:1262:35: note: shadowed declaration is here unsigned int w, unsigned int h, WindowPtr pSib) ^ Signed-off-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Signed-off-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- Jul 08, 2015
-
-
Adam Jackson authored
Removes the last cpp conditional on ROOTLESS from dix code. Reviewed-by:
Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Adam Jackson authored
It's not a lot of code, and if you're doing things to the core that affect rootless you should be alerted early. Reviewed-by:
Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Adam Jackson authored
ROOTLESS_RESIZE_GRAVITY is an optimization, so let's default it to off unless the backing window system is known to support it. ROOTLESS_PROTECT_ALPHA looks like it has different values for xquartz and win32, but hilariously rootlessGC.c merely checks if it is defined, not what the value is. It's effectively the more conservative path anyway, so let's just turn it on. Reviewed-by:
Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Adam Jackson authored
No reason to vary the dix ABI over this. Reviewed-by:
Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Adam Jackson authored
Acked-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- Apr 21, 2015
-
-
Alan Coopersmith authored
v2: remove now useless parentheses Signed-off-by:
Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
- Nov 12, 2014
-
-
Peter Hutterer authored
sed -i "s/[ ]\+$//g" **/*.(c|h) happy reviewing... git diff -w is an empty diff. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- Oct 08, 2014
-
-
Adam Jackson authored
miShapedWindowIn is identical. Which you would expect, since neither one takes an actual WindowPtr argument, so they couldn't possibly make reference to rootlessness. Reviewed-by:
Julien Cristau <jcristau@debian.org> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- Jul 29, 2014
-
-
Adam Jackson authored
This code is nonsensical. You end up creating a screen-sized pixmap that's totally detached from everything else, which you then listen for damage on, which means you'll never hear any damage, which means your shadow update hooks will never get called. Any driver using this would be sorely disappointed. Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
Adam Jackson authored
Here's a trip down memory lane. Back when we merged kdrive we adopted kdrive's version of shadow, which used damage directly instead of hand-rolling it. However a couple of Xorg drivers referred to the accumulated damage region in the shadow private directly, so I added a hack to copy the damage region around. That was 9148d870, back in early 2006. Eight years is unusually patient for me. The neomagic and trident drivers were still relying on this, but they've been modified to ask the damage code for the region instead. Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Adam Jackson <ajax@redhat.com>
-
- Mar 17, 2014
-
-
Emma Anholt authored
Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
- Jan 12, 2014
-
-
Keith Packard authored
This lets us stop using the 'pointer' typedef in Xdefs.h as 'pointer' is used throughout the X server for other things, and having duplicate names generates compiler warnings. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
GC funcs and ops are const now, so all wrappers need to declare them as such. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- Dec 02, 2013
-
-
Keith Packard authored
libxshmfence had an unfortunate 'int32_t' type for the mapped fence. That changed to exposing a 'struct shmfence' instead, which is nice and opaque and offers fine type checking across the API. This patch requires the newer version of the library and uses the new interface type. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Julien Cristau <jcristau@debian.org>
-
Keith Packard authored
Applications may end up allocating a bunch of shmfence objects, each of which uses a file descriptor, which must be kept open lest some other client ask for a copy of it later on. Lacking an API that can turn a memory mapping back into a file descriptor, about the best we can do is push the file descriptors out of the way of other X clients so that we don't run out of the ability to accept new connections. This uses fcntl F_GETFD to push the FD up above MAXCLIENTS. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Julien Cristau <jcristau@debian.org>
-
- Nov 24, 2013
-
-
Keith Packard authored
This provides a place for drivers to insert their own FD-based SyncFence implementations, and prevents applications from using DRI3 SyncFence creation functions unless the driver has some support for them. Signed-off-by:
Keith Packard <keithp@keithp.com> Tested-by:
Fredrik Höglund <fredrik@kde.org>
-
- Nov 05, 2013
-
-
Keith Packard authored
Make sure the server can build when the xshmfence library isn't present Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- Nov 01, 2013
-
-
Fixes regression from: 4dc2a767 http://lists.x.org/archives/xorg-devel/2013-May/036241.html https://trac.macports.org/ticket/38993 Signed-off-by:
Jeremy Huddleston Sequoia <jeremyhu@apple.com> Reviewed-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- Oct 31, 2013
-
-
Keith Packard authored
Adds DRM compatible fences using futexes. Uses FD passing to get pixmaps from DRM applications. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Keith Packard authored
There was a check to avoid smashing custom functions, but the sense was backwards causing it to always smash them, and also not set them otherwise. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-