|10-06-11, 08:50 AM||#1|
Join Date: Oct 2011
Virtual Screen Size and Metamodes
I have a bit of an issue with the NVidia driver and defining modes. What I'd like to do is set a PC up to try several different resolutions in order, and choose the first one that works with the connected monitor (but NOT the monitor's native res, as it makes everything run too slowly if it is 1080p), so I try this:
Option "MetaModes" "1280x720;720x480;720x450;680x384;800x600;640x 480"
On one monitor I have it chooses the 720x450 mode, but it creates a virtual screen of 800x600 so I end up panning around with the mouse!
[ 19.101] (WW) NVIDIA(0): No valid modes for "1280x720@1280x720"; removing.
[ 19.101] (WW) NVIDIA(0): No valid modes for "720x480@720x480"; removing.
[ 19.101] (II) NVIDIA(0): Validated modes:
[ 19.101] (II) NVIDIA(0): "720x450@720x450"
[ 19.101] (II) NVIDIA(0): "680x384@680x384"
[ 19.101] (II) NVIDIA(0): "800x600@800x600"
[ 19.101] (II) NVIDIA(0): "640x480@640x480"
[ 19.101] (II) NVIDIA(0): Virtual screen size determined to be 800 x 600
The documentation does say this - it takes the bounding box of all remaining modes as the virtual desktop. However it doesn't say how to avoid it!:
See 'How are virtual screen dimensions determined in TwinView?'
Which means I have to put my modes in order such that a mode is bigger in width and height than all modes to the right of it. That's not what I want, as I'd like to use a 16:9 mode in preference to a 4:3 one, even if it is lower resolution.
Is there a way around this? I have tried without TwinView but it seems to have the same effect.
thanks for your help!
|10-07-11, 02:44 AM||#2|
Join Date: Oct 2011
Re: Virtual Screen Size and Metamodes
I just got a reply back from Andy Ritger about this, in case anyone else has this question:
I cannot think of a good way to automatically acheive what you describe
with the driver as-is today.
The best I can think to suggest at the moment is to omit the 4:3 modes
from the MetaModes list, so that they do not perturb the virtual screen
size. You could possibly setup your X configuration file with two
Layout sections, such that each Layout section points to a different
Screen section, and one Screen section lists the 16:9 modes and the
other Screen section lists the 4:3 modes. It would require a manual
step of invoking X with the '-layout' option to select the desired layout.
Another possibility would be to write a custom NV-CONTROL application
that queries what modes were validated, constructs a MetaMode
based on your search criteria, and then switches to that MetaMode.
samples/nv-control-dpy.c in the nvidia-settings source may be a good
example for that sort of approach: