RandR 1.4 additional X server patches

Keith Packard keithp at keithp.com
Sun Dec 5 21:05:47 PST 2010

I've added code to handle the separation screen and screen pixmap
sizes, and fixed a couple of minor issues from the previous patches.

 [PATCH 1/3] DIX is responsible for ref counting scanout pixmaps.

DDX was double ref-counting scanout pixmaps. DIX handles this already.

 [PATCH 2/3] Set sprite transforms from RRSetCrtcConfigs

Oops -- I didn't manage to get the sprite transforms hooked up from
the all-in-one configuration request.

 [PATCH 3/3] Separate out screen size and screen pixmap sizes in RRScreenSizeSet

Here's the interesting bit -- this allows the screen size to be
different from the screen pixmap size. It does this by placing the
screen size in both the window dimensions as well as the borderSize
and winSize regions within the root window. The screen pixmap
dimensions are stored in the borderClip region, which is what is used
to compute all of the nested window clipping data.

This takes advantage of the existing code for forcing a complete
recomputation of all screen clip regions on screen resize. It
optimizes that path so that the regions are only recomputed when the
*pixmap* changes size, and not when the screen changes size. This
means that changing the screen size and leaving the screen pixmap
alone will result in no repainting.

It's probably the most fiddly of the whole patch sequence for PCP, but
at least it's not huge.

keith.packard at intel.com

More information about the xorg-devel mailing list