xserver/miext
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jeremy Huddleston Sequoia 40bc18952b rootless: Add Trapezoids, Triangles, and CompositeRects wrapping
The Render extension's Trapezoids and Triangles operations
(fbTrapezoids, fbTriangles) render directly via pixman through
fbShapes without going through ps->Composite, so RootlessComposite
never fires for these operations.  This means RootlessStartDrawing
is not called and the macOS compositor is not notified of changed
pixels.

Add RootlessTrapezoids and RootlessTriangles wrappers following the
same pattern as RootlessComposite: call RootlessStartDrawing before
the operation, then compute the bounding box via miTrapezoidBounds or
miTriangleBounds and call RootlessDamageBox after.  The default
miTriStrip and miTriFan implementations decompose their input into
triangles and dispatch through ps->Triangles, so the RootlessTriangles
wrapper covers TriStrip and TriFan as well.

Also add a RootlessCompositeRects wrapper as defense-in-depth.  The
current miCompositeRects implementation already has partial rootless
coverage: PictOpSrc/PictOpClear go through the GC layer, and other
ops route through CompositePicture -> RootlessComposite.  Wrapping at
the PictureScreen level ensures robustness regardless of the underlying
implementation.

Fixes [1/2]: https://github.com/XQuartz/XQuartz/issues/31

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
2026-06-05 17:14:01 +02:00
..
damage miext: damage: protect against NULL screen priv or funcs 2026-04-24 20:22:16 +02:00
rootless rootless: Add Trapezoids, Triangles, and CompositeRects wrapping 2026-06-05 17:14:01 +02:00
shadow treewide: remove "lib" prefix in static_library names (meson) 2025-07-03 12:01:52 +02:00
sync sync: fix deletion of counters and fences 2026-06-03 16:34:10 +02:00
extinit_priv.h pseudoramiX: unexport noPseudoramiXExtension 2025-11-19 13:32:31 +01:00