Go Back   nV News Forums > Linux Support Forums > NVIDIA Linux

Newegg Daily Deals

Reply
 
Thread Tools
Old 06-19-12, 09:17 AM   #1
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default 320.17 can't detect video modes on Lenovo laptop

I have a Lenovo W520 laptop with the nVidia GF108 (Quadro 1000M) chipset running RedHat OpenClient 6. I installed the RedHat RPM of the 275.28 driver (all that is available) and all works - nvidia-settings has a choice of 17 video modes plus "auto", with the default panel resulution of 1920x1080.

This is ancient, and also, the ability to switch to the second output via hotkey does not work. The notes for 302.17 indicated better support in that regard, so I installed that driver from the .run file.

All works great, with one exception: The only video mode offered is 1920x1024, which makes this basically useless to me. To support external devices (projectors, etc.) I need to downres the on-board to match, and then overlay the two in twinview (or toggle with the hotkey, if it were to work . . .). Virtual machines on the box don't seem to tolerate a res change without hanging, so I need to be able to set this *before* I go to the second port.

As a lark, I also tried the 295.59 driver, and while I have not yet been able to test the hotkey functionality, the modes are all present in this driver.

The only interesting thing that may have some bearing on this is that the 275* and 295* drivers all get this message in the Xorg logfile:

[ 7769.449] (WW) NVIDIA(0): The EDID for LEN (DFP-0) contradicts itself: mode "1920x1080"
[ 7769.449] (WW) NVIDIA(0): is specified in the EDID; however, the EDID's valid
[ 7769.449] (WW) NVIDIA(0): HorizSync range (56.502-67.804 kHz) would exclude this
[ 7769.449] (WW) NVIDIA(0): mode's HorizSync (45.2 kHz); ignoring HorizSync check for
[ 7769.449] (WW) NVIDIA(0): mode "1920x1080".

The 302.17 driver does not - it appears to be enforcing the sync rate it gets from EDID. To this end, I disabled the use of sync rates from EDID with UseEdidFreqs 0 in the config, and verified that the driver log showed that it was being applied. Still no modes. I tried forcing "UseImplicitMetaModes" even though it should be default. Nada. I tried forcing the modes with a Modeline, and that is ignored as well - despite the same clock range as was in the prior config file (that works!) this driver will not allow even a forced mode to support one of these additional resolutions.

I have attached the output of nvidia-bug-report.sh for both the working and non working drivers (295* and 302*) named accordingly.

Oh, and the EDID info for this display, as captured by nvidia-settings, and expanded with edid-decode is:
Extracted contents:

header: 00 ff ff ff ff ff ff 00
serial number: 30 ae b2 40 00 00 00 00 01 13
version: 01 03
basic params: 80 22 13 78 ea
chroma info: 21 35 ad 50 37 aa 24 11 50 54
established: 00 00 00
standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1: 4c 36 80 82 70 38 32 40 3c 30 aa 00 58 c1 10 00 00 18
descriptor 2: 3f 2d 80 82 70 38 32 40 3c 30 aa 00 58 c1 10 00 00 18
descriptor 3: 00 00 00 0f 00 d1 09 32 d1 09 28 1b 19 00 06 af 56 34
descriptor 4: 00 00 00 fe 00 42 31 35 36 48 57 30 31 20 56 34 20 0a
extensions: 00
checksum: d6

Manufacturer: LEN Model 40b2 Serial Number 0
Made week 1 of 2009
EDID version: 1.3
Digital display
Maximum image size: 34 cm x 19 cm
Gamma: 2.20
DPMS levels: Standby Suspend Off
Supported color formats: RGB 4:4:4, YCrCb 4:2:2
First detailed timing is preferred timing
Established timings supported:
Standard timings supported:
Detailed mode: Clock 139.000 MHz, 344 mm x 193 mm
1920 1980 2028 2050 hborder 0
1080 1090 1100 1130 vborder 0
-hsync -vsync
Detailed mode: Clock 115.830 MHz, 344 mm x 193 mm
1920 1980 2028 2050 hborder 0
1080 1090 1100 1130 vborder 0
-hsync -vsync
Manufacturer-specified data, tag 15
ASCII string: B156HW01 V4
Checksum: 0xd6
EDID block does NOT conform to EDID 1.3!
Missing name descriptor
Missing monitor ranges

Thanks,

- Tim
Attached Files
File Type: gz nvidia-bug-report_WORKS_295.log.gz (144.2 KB, 83 views)
File Type: gz nvidia-bug-report_BAD_302.log.gz (104.3 KB, 81 views)

Last edited by tadawson; 06-19-12 at 09:31 AM. Reason: Clarity, added attachments.
tadawson is offline   Reply With Quote
Old 06-20-12, 07:31 AM   #2
sandipt
NVIDIA Corporation
 
sandipt's Avatar
 
Join Date: Dec 2010
Posts: 260
Default Re: 320.17 can't detect video modes on Lenovo laptop

Please run nvidia-xconfig --mode-debug , restart X and attach logs.
sandipt is offline   Reply With Quote
Old 06-20-12, 08:43 AM   #3
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default Re: 320.17 can't detect video modes on Lenovo laptop

Attached. I see the issue, I think . . . for some reason, 302.17 thinks it should invalidate anything that it didn't get from EDID, despite the fact that they work fine in older drivers. That, and I can't find an option that screams out at me to short circuit this seemingly ignorant behaviour . . .

File attached . . . Nope! It's too big for your uploader, it won't take it . . .

At any rate, I think I see the issue, and it would appear to be what I will call a "misfeature" that I have no idea how to disable - it thinks that it should *ONLY* use modes from the EDID, rather than all VESA modes as well. Log excerpt follows . . .

And thanks for the quick reply!

- Tim

[ 22820.488] (--) NVIDIA(0): --- EDID for Lenovo Group Limited (DFP-0) ---
[ 22820.488] (--) NVIDIA(0): EDID Version : 1.3
[ 22820.488] (--) NVIDIA(0): Manufacturer : LEN
[ 22820.488] (--) NVIDIA(0): Monitor Name : Lenovo Group Limited
[ 22820.488] (--) NVIDIA(0): Product ID : 0x40b2
[ 22820.488] (--) NVIDIA(0): 32-bit Serial Number : 0x00000000
[ 22820.488] (--) NVIDIA(0): Serial Number String :
[ 22820.488] (--) NVIDIA(0): Manufacture Date : 2009, week 1
[ 22820.489] (--) NVIDIA(0): DPMS Capabilities : Standby Suspend Active Off
[ 22820.489] (--) NVIDIA(0): Prefer first detailed timing : Yes
[ 22820.489] (--) NVIDIA(0): Supports GTF : No
[ 22820.489] (--) NVIDIA(0): Maximum Image Size : 340 mm x 190 mm
[ 22820.489] (--) NVIDIA(0): Valid HSync Range : 56.5 kHz - 67.8 kHz
[ 22820.489] (--) NVIDIA(0): Valid VRefresh Range : 50.0 Hz - 60.0 Hz
[ 22820.489] (--) NVIDIA(0): EDID maximum pixel clock : 139.0 MHz
[ 22820.489] (--) NVIDIA(0): EDID bits per component : 0
[ 22820.489] (--) NVIDIA(0):
[ 22820.489] (--) NVIDIA(0): Detailed Timings:
[ 22820.489] (--) NVIDIA(0): 1920 x 1080 @ 60 Hz
[ 22820.489] (--) NVIDIA(0): Pixel Clock : 139.00 MHz
[ 22820.489] (--) NVIDIA(0): HRes, HSyncStart : 1920, 1980
[ 22820.489] (--) NVIDIA(0): HSyncEnd, HTotal : 2028, 2050
[ 22820.489] (--) NVIDIA(0): VRes, VSyncStart : 1080, 1090
[ 22820.489] (--) NVIDIA(0): VSyncEnd, VTotal : 1100, 1130
[ 22820.489] (--) NVIDIA(0): H/V Polarity : -/-
[ 22820.489] (--) NVIDIA(0): Image Size : 344 mm x 193 mm
[ 22820.489] (--) NVIDIA(0): 1920 x 1080 @ 50 Hz
[ 22820.489] (--) NVIDIA(0): Pixel Clock : 115.83 MHz
[ 22820.489] (--) NVIDIA(0): HRes, HSyncStart : 1920, 1980
[ 22820.489] (--) NVIDIA(0): HSyncEnd, HTotal : 2028, 2050
[ 22820.489] (--) NVIDIA(0): VRes, VSyncStart : 1080, 1090
[ 22820.489] (--) NVIDIA(0): VSyncEnd, VTotal : 1100, 1130
[ 22820.489] (--) NVIDIA(0): H/V Polarity : -/-
[ 22820.490] (--) NVIDIA(0): Image Size : 344 mm x 193 mm
[ 22820.490] (--) NVIDIA(0):
[ 22820.490] (--) NVIDIA(0):
[ 22820.490] (--) NVIDIA(0): Raw EDID bytes:
[ 22820.490] (--) NVIDIA(0):
[ 22820.490] (--) NVIDIA(0): 00 ff ff ff ff ff ff 00 30 ae b2 40 00 00 00 00
[ 22820.490] (--) NVIDIA(0): 01 13 01 03 80 22 13 78 ea 21 35 ad 50 37 aa 24
[ 22820.490] (--) NVIDIA(0): 11 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
[ 22820.490] (--) NVIDIA(0): 01 01 01 01 01 01 4c 36 80 82 70 38 32 40 3c 30
[ 22820.490] (--) NVIDIA(0): aa 00 58 c1 10 00 00 18 3f 2d 80 82 70 38 32 40
[ 22820.490] (--) NVIDIA(0): 3c 30 aa 00 58 c1 10 00 00 18 00 00 00 0f 00 d1
[ 22820.490] (--) NVIDIA(0): 09 32 d1 09 28 1b 19 00 06 af 56 34 00 00 00 fe
[ 22820.490] (--) NVIDIA(0): 00 42 31 35 36 48 57 30 31 20 56 34 20 0a 00 d6
[ 22820.490] (--) NVIDIA(0):
[ 22820.490] (--) NVIDIA(0): --- End of EDID for Lenovo Group Limited (DFP-0) ---
[ 22820.490] (--) NVIDIA(0):
[ 22820.490] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[ 22820.490] (**) NVIDIA(0): device Lenovo Group Limited (DFP-0) (Using EDID
[ 22820.490] (**) NVIDIA(0): frequencies has been enabled on all display devices.)
[ 22820.490] (II) NVIDIA(0): Frequency information for Lenovo Group Limited (DFP-0):
[ 22820.490] (II) NVIDIA(0): HorizSync : 56.502-67.804 kHz
[ 22820.490] (II) NVIDIA(0): VertRefresh : 50.002-60.004 Hz
[ 22820.490] (II) NVIDIA(0): (HorizSync from EDID)
[ 22820.490] (II) NVIDIA(0): (VertRefresh from EDID)
[ 22820.491] (II) NVIDIA(GPU-0):
[ 22820.491] (II) NVIDIA(GPU-0): --- Building ModePool for Lenovo Group Limited (DFP-0) ---
[ 22820.491] (II) NVIDIA(GPU-0):
[ 22820.491] (II) NVIDIA(GPU-0): Native mode timings for Lenovo Group Limited (DFP-0):
[ 22820.491] (II) NVIDIA(GPU-0): 1920 x 1080 @ 60 Hz
[ 22820.491] (II) NVIDIA(GPU-0): Pixel Clock : 139.000 MHz
[ 22820.491] (II) NVIDIA(GPU-0): HRes, HSyncStart : 1920, 1980
[ 22820.491] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 2028, 2050
[ 22820.491] (II) NVIDIA(GPU-0): VRes, VSyncStart : 1080, 1090
[ 22820.491] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 1100, 1130
[ 22820.491] (II) NVIDIA(GPU-0): H/V Polarity : -/-
[ 22820.492] (II) NVIDIA(GPU-0): Viewport 1920x1080+65+25
[ 22820.492] (II) NVIDIA(GPU-0): Horizontal Taps 0
[ 22820.492] (II) NVIDIA(GPU-0): Vertical Taps 0
[ 22820.492] (II) NVIDIA(GPU-0): Base SuperSample x4
[ 22820.492] (II) NVIDIA(GPU-0): Base Depth 32
[ 22820.492] (II) NVIDIA(GPU-0): Distributed Rendering 1
[ 22820.492] (II) NVIDIA(GPU-0): Overlay Depth 32
[ 22820.492] (II) NVIDIA(GPU-0): Mode is valid.
[ 22820.492] (II) NVIDIA(GPU-0):
[ 22820.492] (II) NVIDIA(GPU-0): Validating Mode "1920x1080":
[ 22820.492] (II) NVIDIA(GPU-0): 1920 x 1080 @ 50 Hz
[ 22820.492] (II) NVIDIA(GPU-0): Mode Source: EDID
[ 22820.492] (II) NVIDIA(GPU-0): Pixel Clock : 115.83 MHz
[ 22820.492] (II) NVIDIA(GPU-0): HRes, HSyncStart : 1920, 1980
[ 22820.492] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 2028, 2050
[ 22820.492] (II) NVIDIA(GPU-0): VRes, VSyncStart : 1080, 1090
[ 22820.492] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 1100, 1130
[ 22820.492] (II) NVIDIA(GPU-0): H/V Polarity : -/-
[ 22820.492] (II) NVIDIA(GPU-0): Viewport 1920x1080+65+25
[ 22820.493] (II) NVIDIA(GPU-0): Horizontal Taps 0
[ 22820.493] (II) NVIDIA(GPU-0): Vertical Taps 0
[ 22820.493] (II) NVIDIA(GPU-0): Base SuperSample x4
[ 22820.493] (II) NVIDIA(GPU-0): Base Depth 32
[ 22820.493] (II) NVIDIA(GPU-0): Distributed Rendering 1
[ 22820.493] (II) NVIDIA(GPU-0): Overlay Depth 32
[ 22820.493] (II) NVIDIA(GPU-0): Mode is valid.
[ 22820.493] (II) NVIDIA(GPU-0):
[ 22820.493] (II) NVIDIA(GPU-0): Validating Mode "640x350":
[ 22820.493] (II) NVIDIA(GPU-0): 640 x 350 @ 85 Hz
[ 22820.493] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.493] (II) NVIDIA(GPU-0): Pixel Clock : 31.50 MHz
[ 22820.493] (II) NVIDIA(GPU-0): HRes, HSyncStart : 640, 672
[ 22820.493] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 736, 832
[ 22820.493] (II) NVIDIA(GPU-0): VRes, VSyncStart : 350, 382
[ 22820.493] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 385, 445
[ 22820.493] (II) NVIDIA(GPU-0): H/V Polarity : +/-
[ 22820.493] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.493] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
[ 22820.493] (II) NVIDIA(GPU-0):
[ 22820.493] (II) NVIDIA(GPU-0): Validating Mode "640x400":
[ 22820.493] (II) NVIDIA(GPU-0): 640 x 400 @ 85 Hz
[ 22820.493] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.493] (II) NVIDIA(GPU-0): Pixel Clock : 31.50 MHz
[ 22820.493] (II) NVIDIA(GPU-0): HRes, HSyncStart : 640, 672
[ 22820.493] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 736, 832
[ 22820.494] (II) NVIDIA(GPU-0): VRes, VSyncStart : 400, 401
[ 22820.494] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 404, 445
[ 22820.494] (II) NVIDIA(GPU-0): H/V Polarity : -/+
[ 22820.494] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.494] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
[ 22820.494] (II) NVIDIA(GPU-0):
[ 22820.494] (II) NVIDIA(GPU-0): Validating Mode "720x400":
[ 22820.494] (II) NVIDIA(GPU-0): 720 x 400 @ 85 Hz
[ 22820.494] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.494] (II) NVIDIA(GPU-0): Pixel Clock : 35.50 MHz
[ 22820.494] (II) NVIDIA(GPU-0): HRes, HSyncStart : 720, 756
[ 22820.494] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 828, 936
[ 22820.494] (II) NVIDIA(GPU-0): VRes, VSyncStart : 400, 401
[ 22820.494] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 404, 446
[ 22820.494] (II) NVIDIA(GPU-0): H/V Polarity : -/+
[ 22820.494] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.494] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
[ 22820.494] (II) NVIDIA(GPU-0):
[ 22820.494] (II) NVIDIA(GPU-0): Validating Mode "640x480":
[ 22820.494] (II) NVIDIA(GPU-0): 640 x 480 @ 60 Hz
[ 22820.494] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.494] (II) NVIDIA(GPU-0): Pixel Clock : 25.18 MHz
[ 22820.494] (II) NVIDIA(GPU-0): HRes, HSyncStart : 640, 656
[ 22820.494] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 752, 800
[ 22820.494] (II) NVIDIA(GPU-0): VRes, VSyncStart : 480, 490
[ 22820.495] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 492, 525
[ 22820.495] (II) NVIDIA(GPU-0): H/V Polarity : -/-
[ 22820.495] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.495] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
[ 22820.495] (II) NVIDIA(GPU-0):
[ 22820.495] (II) NVIDIA(GPU-0): Validating Mode "640x480":
[ 22820.495] (II) NVIDIA(GPU-0): 640 x 480 @ 73 Hz
[ 22820.495] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.495] (II) NVIDIA(GPU-0): Pixel Clock : 31.50 MHz
[ 22820.495] (II) NVIDIA(GPU-0): HRes, HSyncStart : 640, 664
[ 22820.495] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 704, 832
[ 22820.495] (II) NVIDIA(GPU-0): VRes, VSyncStart : 480, 489
[ 22820.495] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 492, 520
[ 22820.495] (II) NVIDIA(GPU-0): H/V Polarity : -/-
[ 22820.495] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.495] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
[ 22820.495] (II) NVIDIA(GPU-0):
[ 22820.495] (II) NVIDIA(GPU-0): Validating Mode "640x480":
[ 22820.495] (II) NVIDIA(GPU-0): 640 x 480 @ 75 Hz
[ 22820.495] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.495] (II) NVIDIA(GPU-0): Pixel Clock : 31.50 MHz
[ 22820.495] (II) NVIDIA(GPU-0): HRes, HSyncStart : 640, 656
[ 22820.495] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 720, 840
[ 22820.495] (II) NVIDIA(GPU-0): VRes, VSyncStart : 480, 481
[ 22820.495] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 484, 500
[ 22820.495] (II) NVIDIA(GPU-0): H/V Polarity : -/-
[ 22820.496] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.496] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
[ 22820.496] (II) NVIDIA(GPU-0):
[ 22820.496] (II) NVIDIA(GPU-0): Validating Mode "640x480":
[ 22820.496] (II) NVIDIA(GPU-0): 640 x 480 @ 85 Hz
[ 22820.496] (II) NVIDIA(GPU-0): Mode Source: X Server
[ 22820.496] (II) NVIDIA(GPU-0): Pixel Clock : 36.00 MHz
[ 22820.496] (II) NVIDIA(GPU-0): HRes, HSyncStart : 640, 696
[ 22820.496] (II) NVIDIA(GPU-0): HSyncEnd, HTotal : 752, 832
[ 22820.496] (II) NVIDIA(GPU-0): VRes, VSyncStart : 480, 481
[ 22820.496] (II) NVIDIA(GPU-0): VSyncEnd, VTotal : 484, 509
[ 22820.496] (II) NVIDIA(GPU-0): H/V Polarity : -/-
[ 22820.496] (WW) NVIDIA(GPU-0): Mode is rejected: Only EDID-provided modes are allowed on
[ 22820.496] (WW) NVIDIA(GPU-0): Lenovo Group Limited (DFP-0).
tadawson is offline   Reply With Quote
Old 06-20-12, 10:54 AM   #4
aritger
NVIDIA Corporation
 
aritger's Avatar
 
Join Date: Oct 2002
Posts: 53
Default Re: 320.17 can't detect video modes on Lenovo laptop

Hi Tim,

Sorry this change in behavior caught you off guard; the change is intentional, but there will be some growing pains while tools evolve to accomodate the new behavior.

For digital display devices, such as your laptop panel, the driver only sends it modetimings that the display device claims to support in its EDID. In drivers before 302.xx, the driver would lie and tell the X server and the rest of the system that it was driving whatever mode you asked for, even though under the hood the driver was sending one of the EDID modes to the display device. This discrepancy caused a variety problems and confusion (e.g., the mode advertised to the system could have a different refresh rate than what was actually being sent to the display device).

To make things more explicit, we altered the driver in 302.xx such that:

(a) The list of modes, advertised through nvidia-settings, the MetaMode syntax, RandR, etc, that can be driven to any display device is limited to what the driver will really send to the display device; in your example, this means the mode list will only contain 1920x1080.

(b) The MetaMode syntax is extended, such that you can separately configure the "ViewPortIn" and "ViewPortOut" to use in combination with any mode (we hope to eventually add RandR output properties for this, too).

With the display engine in NVIDIA GPUs, there are actually three different resolutions that are interesting: the resolution of the mode being sent to the display device, the resolution (and position) of the region within the mode in which to display pixels (this is "ViewPortOut"), and the resolution of the region within the X screen from which to fetch pixels (this is "ViewPortIn"). "ViewPortOut" would be used if you wanted your image to be smaller than the 1920x1080 mode (e.g., if you wanted a black border around your image, to do overscan compensation); that is probably not too interesting in your case. "ViewPortIn" can be used to configure a resolution smaller (or larger) than your mode and I think is what you want in your case.

E.g., if you want to display a 1024x768 resolution, scaled, on your 1920x1080 laptop panel:

"1920x1080 { ViewPortIn=1024x768 }"

If you want to aspect scale 1024x7868 (put black pillars on the left and right sides, so that the 1024x768 image keeps its aspect ratio):

"1920x1080 { ViewPortIn=1024x768, ViewPortOut=1440x1080+240+0 }"

If you want to center, rather than scale, the 1024x768 image within the 1920x1080 mode:

"1920x1080 { ViewPortIn=1024x768, ViewPortOut=1024x768+448+156 }"

The MetaMode syntax can have display device qualifiers and describe what you want on each display device. E.g., if you are connected to a VGA projector:

"DFP: 1920x1080 { ViewPortIn=1024x768 }, CRT: 1024x768"

Or have a 1920x1080 image scaled to fit the VGA projector:

"DFP: 1920x1080, CRT: 1024x768 { ViewPortIn=1920x1080 } "

Note that all of the above MetaModes can be specified on the nvidia-settings commandline, starting in 302.xx; e.g.,

nvidia-settings --assign CurrentMetaMode="DFP: 1920x1080, CRT: 1024x768 { ViewPortIn=1920x1080 }"

The syntax is pretty powerful and flexible, but it requires a little getting used to. We also have work to do to update the nvidia-settings GUI to be aware of all of this. We also hope to update nvidia-settings such that it presents more resolutions to the user, by automatically creating MetaModes such as the above. There is also some work to be done to make the above work better with Wine and SDL-based fullscreen games.

For more details, search for "ViewPortIn" in the README:

ftp://download.nvidia.com/XFree86/Li...DME/README.txt

I hope that helps,
- Andy
__________________
Andy Ritger
NVIDIA Linux Graphics Driver Engineer
aritger is offline   Reply With Quote
Old 06-20-12, 09:29 PM   #5
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default Re: 320.17 can't detect video modes on Lenovo laptop

I found (and tried) that and have had zero success - any of the MetaModes I attempt to define are also ignored. Part of the issue is that the README gives snippets of the commands, but very few complete examples in an xorg.conf file structure.

I tried this in the Screen section of xorg.conf:

Option "metamodes" "nvidia-auto-select +0+0; 1920x1080 +0+0; 1920x1080 { ViewPortIn=1024x768 }"

The log showed it to have been cleanly parsed, but as far as the modes and ability to use them, I could find no evidence anywhere that the 1024x768 metamode was available.

In nvidia-settings, in 295 and below, the Server Display Config section has a tab "X Screen" on which modes can be seen and selected. With 302, that tab does not exist, and there are no choices in the Resolution drop down either (which makes sense - it's a mode, not a resolution) so I am at a loss as to how to actually use these modes with this version?

UPDATE: I have made some progress on this . . . I noted that the case on my "MetaModes" line was incorrect, and altered. I now have the line:

Option "MetaModes" "1920x1080 +0+0; 1920x1080 { ViewPortIn=1024x768 +0+0 }; 1920x1080 { ViewPortIn=1280x1024 +0+0 }; 1920x1080 { ViewPortIn=800x600 +0+0 }"

Which should give me the basic modes I need. I also note that the "X Screens" tab moved to be selectable in the dropdown.

And, some new mode information shows up based on the above line . . . but, it's not what I asked for. From the above line, it appears to ignore the horizontal resolution . . . I get:

1920x1080 @ 1920x768 +0+0
1920x1080 @ 1920x1024 +0+0
1920x1080 @ 1920x800 +0+0

And when you hit apply to enable any of these modes, nvidia-settings seems happy (shows the new boundaries of the mode on the graphic, etc.), but nothing on the screen actually changes.

I believe that I have the syntax correct based on what you sent, but no-joy.

I note that if I save the config file, it writes a different syntax for the metamodes - 1920x1080@1024x268 . . . with the incorrect value as seen above. I'll try that option line and see what gives . . .

It really would be nice to just have a setting that enables the old behaviour. While I don't deny that this fixes some bugs, for those of us with no bugs, it severely overcomplicates things by requiring a lot of "heavy lifting' in the xorg.conf file that was not needed before. That, or have the driver offer the VESA modes that were there in older versions as MetaModes - the bottom line is that I feel that it is not realistic to require this level of work by the end user to get back to the same behaviour that the driver has had for years . . . (I note later that you said that would be coming - any idea of timeline? As it stands, it's not exactly user friendly . . . )

And any additional suggestions *OTHER* than the README (which has failed me badly on this) as to specific useage and syntax would be great . .

- Tim
tadawson is offline   Reply With Quote
Old 06-20-12, 10:02 PM   #6
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default Re: 320.17 can't detect video modes on Lenovo laptop

Ironically, use of the syntax provided by nvidia-settings to set modes is ignored totally . . . all modes show up as 1920x1080 +0+0

So, I am at the point where:

The syntax in the README for MetaModes gives incorrectly processed definitions that don't apply

The syntax written by nvidia-settings is ignored totally, but modes do appear in the list.

I guess the good thing is that I have modes appearing in the list. Now to get them to actually parse correctly, and apply, and I'll be good.

Suggestions at this point?

- Tim
tadawson is offline   Reply With Quote
Old 06-20-12, 10:14 PM   #7
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default Re: 320.17 can't detect video modes on Lenovo laptop

One more update . . . The logs appear to show the modes correctly with the "ViewPortIn" syntax -

[ 69952.467] (**) NVIDIA(0): Option "MetaModes" "1920x1080 +0+0; 1920x1080 { ViewPortIn = 1024x768 +0+0 }; 1920x1080 { ViewPortIn=1280x1024 +0+0 }; 1920x1080 { ViewPortIn=800x600 +0+0 }"
[ 69952.467] (**) NVIDIA(0): Enabling 2D acceleration

.
.
.
[ 69954.196] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[ 69954.196] (**) NVIDIA(0): device Lenovo Group Limited (DFP-0) (Using EDID
[ 69954.196] (**) NVIDIA(0): frequencies has been enabled on all display devices.)
[ 69954.198] (II) NVIDIA(0): Validated modes:
[ 69954.198] (II) NVIDIA(0): "1920x1080+0+0"
[ 69954.198] (II) NVIDIA(0): "1920x1080{ViewPortIn=1024x768+0+0}"
[ 69954.198] (II) NVIDIA(0): "1920x1080{ViewPortIn=1280x1024+0+0}"
[ 69954.198] (II) NVIDIA(0): "1920x1080{ViewPortIn=800x600+0+0}"
[ 69954.198] (II) NVIDIA(0): Virtual screen size determined to be 1920 x 1080
[ 69955.259] (--) NVIDIA(0): DPI set to (143, 144); computed from "UseEdidDpi" X config

Which indicated that what I entered was correct. nvidia-settings still shows the mangled values, and does not facilitate a change of modes.

The good news is that nvidia-settings --assign CurrentMetaMode *IS* now setting things correctly, so I have *FINALLY* gotten the 302 driver to at least admit to being able to do what I need.

The issue now is getting the toolset such that when I need to reres to match a projector to make a presentation, it isn't a 10 minute science project to get the main display down to projector resolution so that things fit, and to do it in under an hour . . . .

- Tim
tadawson is offline   Reply With Quote
Old 06-20-12, 10:22 PM   #8
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default Re: 320.17 can't detect video modes on Lenovo laptop

From the output of nvidia-settings -V all, with the config documented in the above Xorg.0.log file (and the addition of a mode for 1400x900 . . .), when I attempt to make a mode change:

tadawson @ oc3235572618.ibm.com /home/tadawson <3>: nvidia-settings -V all
Updating Screen 0's MetaModes:
Added > DFP-0: 1920x1080 @1920x900 +0+0
Added > DFP-0: 1920x1080 @1920x1024 +0+0
Added > DFP-0: 1920x1080 @1920x768 +0+0
Added > DFP-0: 1920x1080 @1920x600 +0+0
Current mode (id: 50)
Switching to mode: 1920x768 (id: 58)...
Switching back to mode (id: 50)...
Moved > DFP-0: 1920x1080 @1920x900 +0+0
Moved > DFP-0: 1920x1080 @1920x1024 +0+0
Moved > DFP-0: 1920x1080 @1920x768 +0+0
Moved > DFP-0: 1920x1080 @1920x600 +0+0

This one, I am pretty certain, *IS* a bug . . . . although it does not appear to be in the actual driver . . .

- Tim
tadawson is offline   Reply With Quote

Old 06-21-12, 03:28 AM   #9
aritger
NVIDIA Corporation
 
aritger's Avatar
 
Join Date: Oct 2002
Posts: 53
Default Re: 320.17 can't detect video modes on Lenovo laptop

Hi again Tim.

Unfortunately the nvidia-settings display configuration page hasn't been updated yet to be aware of ViewPortIn, so it isn't going to be helpful in this case. We hope to address that soon. Also, we hope to update the display configuration page such that it offers a list of common resolutions, supplementing the current list of resolutions in the "Resolution" drop down. When those fake resolutions are selected, nvidia-settings will generate a MetaMode with the correct ViewPortIn configuration. I'm sorry we don't have that, yet.

I think one thing that is causing confusion is the distinction between "mode" and MetaMode. The X driver's log messages are a bit sloppy about this, which doesn't help (I'll try to get that cleaned up, too). Anyway:

* A "mode" is the set of timings to drive to the monitor; this contains size, refresh rate, blanking periods, etc. With current 302.xx drivers, the "Resolution" drop down is giving the list of available modes.

* A "MetaMode" defines what mode should be used on each monitor, where each monitor should be positioned in the desktop, the ViewPortIn to use with each mode on each monitor, etc.

It kind of sounds like you were expecting that when you put multiple MetaModes in your MetaModes X configuration option, each would be listed as an option in the Resolution drop down of nvidia-settings. A MetaMode has wider scope than that; it won't affect the list of resolutions per monitor in nvidia-settings. Sorry that was unclear.

The MetaModes X configuration option is a semi-colon separated list of MetaModes. You can switch between MetaModes through the old-school XF86VidMode X extension (e.g., `xvidtune -prev` or `xvidtune -next`) or through the key combination ctrl-alt-plus or ctrl-alt-minus. Further, the nvidia-settings display configuration page, or `nvidia-settings --assign CurrentMetaMode="foo"`, overwrites the current MetaMode in the list of MetaModes that you specified in your X configuration file.

Anyway, putting multiple MetaModes in your X configuration file is probably not the easiest method. For what you're trying to do, for right now probably the simplest solution is to write a few scripts that invoke nvidia-settings with canned CurrentMetaModes values. E.g.,

$ cat projector-1024x786.sh
#!/bin/sh
nvidia-settings --assign CurrentMetaMode="DFP:nvidia-auto-select {ViewPortIn=1024x768}, CRT:1024x768"

I realize that is far from ideal; hopefully we can update the nvidia-settings display configuration page in the near future.

Please let me know if you continue to have problems.

- Andy
__________________
Andy Ritger
NVIDIA Linux Graphics Driver Engineer
aritger is offline   Reply With Quote
Old 06-21-12, 07:32 AM   #10
tadawson
Registered User
 
Join Date: May 2009
Posts: 44
Default Re: 320.17 can't detect video modes on Lenovo laptop

Andy -

Thanks again for the attention. I was not expecting the modes to appear in the resolution drop down, but rather in the X Screen advanced window list of modes, where they can be selected and applied, and that is where they are appearing mangled. As noted, the reported modes with ViewPortIn settings log correctly in the Xorg log file, so I think my entries are correct . . . it's just that the easiest tool to use to manipulate them at this point (nvidia-settings) gets them wrong graphically, and will not apply a mode when selected, again graphically. Nvidia-settings from the cli works fine . . . .

At any rate, I can now make this work. I still question the change of a behaviour that likely very few folks ever had much trouble with, for one which, at present, is a PITA. At least consider a flag in the drive config to release the restriction, and allow the VESA modes to also be used - it is apparent from viewing the mode debug data that the driver is still polling those modes . . .

At any rate, for now, I think I'll just stay on the 295 builds, and wait for progress in the 302 series . . . the benefits are almost undetectable compared to the liabilities of upgrading at this point in the 302 driver and tooset's maturity.

- Tim



- Tim
tadawson is offline   Reply With Quote
Old 07-13-12, 05:20 PM   #11
NvFuchs
Registered Fox
 
NvFuchs's Avatar
 
Join Date: Oct 2007
Location: Confoederatio Helvetica
Posts: 530
Default Re: 320.17 can't detect video modes on Lenovo laptop

Hello,

what is the state on this? In 304.22 I can work with

Option "MetaModes" "LVDS-0: 1440x900 { ViewPortIn=1440x900 }; LVDS-0: 1440x900 { ViewPortIn=1024x768 }; LVDS-0: 1440x900 { ViewPortIn=800x600 }; LVDS-0: 1440x900 { ViewPortIn=640x480 }; "

but these modes do not show up in nvidia-settings neither in xrandr (or, therefore, in any xrandr based tools).

Is there a possibility to get these to show up as modes in xrandr? This solution would work for all xrandr based tools, such as the ones from gnome or KDE, and therefore be the proper solution.

Kind regards, and thanks for fixing other things (like the resume bug)

Fuchs
NvFuchs is offline   Reply With Quote
Old 07-13-12, 05:56 PM   #12
aritger
NVIDIA Corporation
 
aritger's Avatar
 
Join Date: Oct 2002
Posts: 53
Default Re: 320.17 can't detect video modes on Lenovo laptop

Hi NvFuchs,

RandR 1.x (x >= 2) works in terms of modes on individual outputs, whereas a MetaMode defines the configuration of all outputs on the X screen including "meta" information like viewport configuration to use with a mode.

With 304.22, MetaModes are selectable through RandR 1.1 protocol. So, if you run `xrandr -q --q1` you should see the MetaModes you configured (well, RandR 1.1 only sees the size of the MetaMode, so I expect you'd see 1440x900, 1024x768, 800x600, 640x480), and you can set those with the RandR 1.1 `xrandr -s SIZE`. SDL/Wine generally use either RandR 1.1 or XF86Vidmode to set the mode for a fullscreen game, so 304.22 should give more resolution options to fullscreen games.

We also enhanced the "IncludeImplicitMetaModes" X configuration option in 304.22 to make additional MetaModes available to RandR1.1/XF86Vidmode clients.

But, yes: we still need to make nvidia-settings aware of viewport configuration.
__________________
Andy Ritger
NVIDIA Linux Graphics Driver Engineer
aritger is offline   Reply With Quote
Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 10:45 AM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.