glXSwapBuffers fix for moving between crtcs is not following the OML_sync_control specification

Michel Dänzer michel at daenzer.net
Fri Jul 9 06:40:43 PDT 2010


On Fre, 2010-07-09 at 16:20 +0300, Pauli Nieminen wrote: 
> 
> This commit assumes that MSC maybe different depending on where the
> drawable is. While specification says "For a multi-monitor system, the
> monitor used to determine MSC is screen 0 of <display>." which IMO
> means that there should be single MSC everywhere were target drawable
> can move. So correct fix would be making MSC value in-depend of CRTC
> where drawable is.

I agree there *should* be such a single MSC, the question is how it
should be calculated when the CRTCs don't all have the same vertical
refresh rate.

For the old intel DRI1 swap scheduling hack, I solved this by making the
MSC not correspond to any specific CRTC counter directly but making it a
'virtual' counter which increases at the same rate as the CRTC the
window is currently being synchronized to. Looking at the
GLX_OML_sync_control spec again, I think this solution should still be
feasible in general, as all the extension calls take a drawable
parameter.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-devel mailing list