Trying to understand meaning of rrCheckPixmapBounding.

Dave Airlie airlied at gmail.com
Tue Jun 10 18:52:04 PDT 2014


Hi Michael,


> I am currectly trying to solve a bug when Xserver doesn't configure correctly
> monitor on slaved gpu if the monitor is rotated to left or right. Things get
> broken...

I think there is a lot worse problems than that one to fix for rotation btw,

> I found out that the problem is in rrCheckPixmapBounding - it doesn't consider
> rotation of the crtcs. So it thinks it needs some different size of screen and
> resizes it to incorrect size. Even that xrandr already resized it to perfect
> size before.
>
> Additionally when it resizes the screen, it sets physical size to 0x0 mm.
> Which breaks other things later. (For example any following xrandr call will
> die in XRRSetScreenSize because it sends back the physical size 0x0 mm.)
>
> Both problems could be fixed, but I currently don't understand why is
> rrCheckPixmapBounding needed at all. Any attempt to configure crtc that would
> be outside of the screen boundaries would return BadValue already in
> ProcRRSetCrtcConfig, no? That's why the xrandr resizes the screen first, if
> neccessary.
>
> So why is there rrCheckPixmapBounding?

You might be right, I can barely remember why that function exists, I think it
was a stepping stone to shatter that got left in the codebase when I merged it,

The idea being with shatter that there is no actual framebuffer big enough,
its split between alll the devices, but we wouldn't know how to split it until
we got the crtcs for all the devices.

For the current master/slave case it might be possible to just drop
that function
after some testing to make sure.

Dave.


More information about the xorg-devel mailing list