Drivers from 352 series making redundant mode changes.

Since the 352 series drivers have been introduced, changing between metamodes that output with the same mode triggers a unnecessary mode change (monitor goes blank for a few seconds, wheres before, it would be instantly).

For example, if you have the first metamode with a viewport of 1920x1080 outputting to 1920x1080@60hz, and a second metamode with a viewport of 1280x720 “upscaled” to 1920x1080 and outputting to 1920x1080@60hz, changing between then will trigger a completely unnecessary mode change (1920x1080 to 1920x1080 !) wheres previous drivers would not interrupt the monitor signal and thus instantly display the new metamode.

Here is a sample of my nvidia drivers X11 config rules, notice how it’s setup in such a way that all available metamodes will only output to the LCD panel native resolution/mode:

Section "Device"
    Identifier  "Default nvidia Device"
    Driver  	"nvidia"
    Option 	"NoLogo" "True"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Option         "IncludeImplicitMetaModes" "off"
    Option         "ModeValidation" "NoPredefinedModes, NoVesaModes, NoXServerModes"
    Option         "metamodes" "nvidia-auto-select +0+0; 1920x1080 +0+0 {viewportin=320x240,viewportout=1280x960+320+60}; 1920x1080 +0+0 {viewportin=400x300,viewportout=1200x900+360+90}; 1920x1080 +0+0 {viewportin=640x480,viewportout=1280x960+320+60}; 1920x1080 +0+0 {viewportin=720x480,viewportout=1440x960+240+60}; 1920x1080 +0+0 {viewportin=720x576,viewportout=1350x1080+285+0}; 1920x1080 +0+0 {viewportin=800x600,viewportout=1440x1080+240+0}; 1920x1080 +0+0 {viewportin=1024x768,viewportout=1440x1080+240+0}; 1920x1080 +0+0 {viewportin=1152x864,viewportout=1440x1080+240+0}; 1920x1080 +0+0 {viewportin=1280x720}; 1920x1080 +0+0 {viewportout=1280x960+320+60}; 1920x1080 +0+0 {viewportout=1280x1024+320+28}; 1920x1080 +0+0 {viewportout=1440x900+240+90}; 1920x1080 +0+0 {viewportout=1440x1080+240+0}; 1920x1080 +0+0 {viewportout=1600x900+160+90}; 1920x1080 +0+0 {viewportout=1680x945+120+68}; 1920x1080 +0+0 {viewportout=1680x1050+120+15}; 1920x1080 +0+0"
EndSection

The new drivers makes this completely pointless. I hope you guys can look into it!

Is this a DisplayPort monitor, or something else? We’re in the middle of a complete rewrite of the display code, and the new design at the moment requires DisplayPort monitors to be shut down and reinitialized at modeset time. There’s a bug filed to add code to try to avoid that when possible.

It’s an HDMI monitor. Happens with both geforce 450 and 970. I might give it a try with DVI later.

Sorry for taking so long, but I couldn’t find my DVI cable. Finally got it back from someone I had lent it to.

DVI works perfectly fine, no redundant mode changes. But whoever designed my monitor deserves a big facepalm, the dvi connecter is right in the middle of the panel and is blocked by the support, unless I raise it’s angle to an unusable point…