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