Hello,
I am very experienced regarding dual/multi-monitor setups under
Linux/Xorg and configuring the native nvidia-driver for Linux.
SETUP:
-
(Linux/Xorg)
-
First monitor set to 1024x768@60Hz
-
Second Monitor set to 1920x1080@24, 25 or 30Hz and more
-
One big screen with Xinerama
-
__GL_SYNC_TO_VBLANK=1
-
__GL_SYNC_DISPLAY_DEVICE=DFP-1
-
Sync to vblank enabled with:
XNVCTRLSetAttribute(dpy, screen, 0, NV_CTRL_SYNC_TO_VBLANK, 1);
(This is the same as nvidia-settings sets) -
No window manager active, just plain X/xinit
-
Option “Composite” “Disable”
-
Option “TripleBuffer” “off” (“on” tears like hell)
-
Current gentoo installation with Kernel 3.8.2
APPLICATION:
Qt/OpenGL-based (proprietary) video-recorder/player
that’s used on professional film sets in ~100 systems.
Same video is shown synchronous on both monitors in one window.
PROBLEM:
At least until nvidi-driver version 270.41.19 there was
NO TEARING on BOTH screens with any combination of resolution or refresh rate!
(I can prove it, just come over here :-) )
I recently had to upgrade the system to support newer Quadro cards
(2000D, K2000) and used driver version 310.44 and 313.30
and NOW the TEARING is BACK on the one screen
which is not the GL_SYNC_DISPLAY_DEVICE, that means it gets only
synced to one monitor (again).
A long time ago it was possible to get tearing free opengl-video-playback on two (different) monitors at the same time by using quadro cards and twinview. That stopped silently maybe three years ago and I
had to use Xinerama + NV_CTRL_SYNC_TO_VBLANK.
(That, by the way, killed XRandR-Support and cost a lot more
CPU-performance than Twinview!)
Now I am again thrown back to this f****** problem that was solved years ago.
I suppose this maybe is related to the recently (one year ago)
introduced "Adaptive VSync"feature.
But there is no possibilty to disable Adaptive Vsync with
nvidia-settings, as far as I can see.
I tried to disable it with glXSwapIntervalEXT(dpy, drawable, 1),
but that simply had no effect whatever interval I tried.
(Also removed the __GL_SYNC… variables from the environment,
disabled nvidia-settings --load-config run when starting X and
removed XNVCTRLSetAttribute-call).
I would be very thankful for any hints to bring me back
the “old” sync behaviour, i.e. tearing free playbacks on both monitors
under all circumstances.
Thank you and kind regards,
Bernhard
nvidia-bug-report.log.gz (86.4 KB)