RandR 1.4 additional X server patches

Aaron Plattner aplattner at nvidia.com
Mon Dec 6 14:36:43 PST 2010


On Sun, Dec 05, 2010 at 09:05:47PM -0800, Keith Packard wrote:
> 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.

These changes, plus the ones you sent out earlier, plus I guess the two at
git://people.freedesktop.org/~keithp/xserver master that I can't find
emails for

Reviewed-by: Aaron Plattner <aplattner at nvidia.com>

The change to decouple the screen and screen pixmap sizes scares me.  We're
going to have to go through our driver with a fine-toothed comb to make
sure we use the right ones in all the right places.


More information about the xorg-devel mailing list