[Bug 39696] dual head: different vert refresh freq, applications sync to the wrong one

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Aug 9 05:47:04 PDT 2011


--- Comment #3 from Klaus Kusche <klaus.kusche at computerix.info> 2011-08-09 05:47:04 PDT ---
(In reply to comment #1)
> (In reply to comment #1)
> > KMS always sets sligthly different vertical refresh frequencies: 
> > The internal display runs at 60 Hz, the external monitor runs at 59.9 Hz.
> Please attach the Xorg.0.log file, but most likely the external monitor's
> timing is what it specifies as preferred in its EDID.

Yes, EDID modes used for both outputs.

> > However, although I only look at the external monitor,
> Then you could switch off the internal display?

Tried that. Works (tearing gone, obviously now syncs to ext monitor).
Could be done when I'm working at my desk,
but is impractical when using a beamer in class 
(in this case, I need the internal display).

> > 1.) Is there a way to run both displays at exactly the same vert frequency
> You could try manually setting the internal display's mode on the external
> monitor (or the other way around, but internal panels are typically pickier).

To my surprise, this *doesn't* work:
I defined a new mode (tried both the external and internal modeline) in xrandr,
assigned it to both outputs, switched both outputs to the new mode
(both LVDS and ext display seem to accept both modelines),
but the tearing is still there.
The sync offset line now moves at a different speed and direction,
but is still clearly visible.

Either the actual settings are not what xrandr believes,
or the base clocks of the CRTC's are different.

By the way, is there an easy way to "take mode 1920x1200" from output X
and assign it to output Y" in xrandr? Or do I have to manually define
a new modeline by cut & paste from Xorg.log and assign it to both?

> > and with synchronized vertical retrace?
> There's no mechanism for that yet in general. However, if you manage to use the
> same mode for both displays, you might be able to source both of them off the
> same CRTC, in which case they should be perfectly synchronized.

Can this be set using xrandr or something else?

> > 2.) Is there a way to switch 3D and video application sync
> > from the internal to the external vsync rate?
> For video, you can use the XV_CRTC attribute to choose which CRTC to sync to
> (see the radeon manpage).

Works using xvattr: The sync offset line is now moving on the internal display.

> There's no such mechanism for 3D yet.

More information about the dri-devel mailing list