View previous topic :: View next topic |
Author |
Message |
krinn Watchman
Joined: 02 May 2003 Posts: 7470
|
Posted: Sun Sep 18, 2011 5:58 pm Post subject: Howto setup a 120Hz SM22R33RZ with nvidia drivers |
|
|
Hi, as i have just brought this monitor and as it was a misery to make it run like at 120Hz, here's an howto do it with all steps i've done to achieve it (so someone with another monitor model might follow them to achieve that with his monitor too)
I won't speak about 3D output, as i don't brought it for that, but just to get a monitor that refresh closer to what my poor old Vision Master Pro was doing and saved my eyes, so i don't own 3D glasses.
step1: Finding the monitor EDID infos
Actually this step is not really necessary, because just forcing the 120Hz is enough to make it work as nvidia drivers will query EDID to get that value, but i like to know what are these settings to know what i could try for other modeline in non-native resolution. You can just skip to step 2 without setting any modeline infos and this should work.
I've found a program in the tree (emerge -a read-edid) that should read EDID infos from the monitor and tell me what i need to configure xorg, great !
But for some reason, the program wasn't able to read the infos Code: | get-edid
get-edid: get-edid version 2.0.0
Performing real mode VBE call
Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
Function supported
Call successful
VBE version 300
VBE string at 0x2110 "NVIDIA"
VBE/DDC service about to be called
Report DDC capabilities
Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
Function supported
Call successful
Monitor and video card combination does not support DDC1 transfers
Monitor and video card combination does not support DDC2 transfers
0 seconds per 128 byte EDID block transfer
Screen is not blanked during DDC transfer
Reading next EDID block
VBE/DDC service about to be called
Read EDID
Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function supported
Call failed
The EDID data should not be trusted as the VBE call failed
Error: output block unchanged
|
After (hours) of search in google, and testing, i've found a simple solve, nvidia-settings have an option to save the edid infos it get from the monitor.
Here's where to get it (i will gave it anyway, but it's for people with a different monitor that wish get it the same way i did)
- Goto GPU0 (well the gpu where the monitor is attach to)
- Select the monitor (should be DFP-0 or DFP-1, monitor name is show there)
- And hit the "Acquire EDID" button
Now select binary format to save the EDID infos (because if you choose the text format, you'll get an hex dump of the edid, not something useful for human, and this text format also cannot be use with parse-edid that comes with get-edid program).
Now that we have the good edid infos in binary format, parse-edid is able to tell us the infos we are seeking (show for ones that don't own an nvidia but still need the EDID infos) :
Code: | parse-edid < edid.bin
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.
# EDID version 1 revision 3
Section "Monitor"
# Block type: 2:0 3:fd
# Block type: 2:0 3:fc
Identifier "SyncMaster"
VendorName "SAM"
ModelName "SyncMaster"
# Block type: 2:0 3:fd
HorizSync 30-190
VertRefresh 56-125
# Max dot clock (video bandwidth) 330 MHz
# Block type: 2:0 3:fc
# Block type: 2:0 3:ff
# DPMS capabilities: Active off:yes Suspend:no Standby:no
Mode "1680x1050" # vfreq 59.883Hz, hfreq 64.674kHz
DotClock 119.000000
HTimings 1680 1728 1760 1840
VTimings 1050 1053 1059 1080
Flags "-HSync" "+VSync"
EndMode
# Block type: 2:0 3:fd
# Block type: 2:0 3:fc
# Block type: 2:0 3:ff
EndSection
|
Finally we get the infos we need now
Step 2: Setting your xorg.conf
I'll show you only the part that are need, other settings are upto you, the only thing important is to use 1680x1050_120 (because if you notice i've change the modeline name to 1680x1050_120 in it)
Code: |
Section "Monitor"
Identifier "Monitor0"
VendorName "Samsung"
ModelName "SM2233RZ"
HorizSync 30.0 - 190.0
VertRefresh 56.0 - 125.0
Option "dpms"
# SM2233RZ 1680x1050 vfreq 59.883Hz, hfreq 64.674kHz
Modeline "1680x1050_120" 119.00 1680 1728 1760 1840 1050 1053 1059 1080 -HSync +VSync
EndSection
Section "Screen"
Option "MetaModes" "1680x1050_120"
SubSection "Display"
Depth 24
EndSubSection
EndSection |
Note to ones using multi-display as me, the correct option is :
Code: | Option "MetaModes" "1680x1050_120,1680x1050_120; NULL, 1680x1050_120; 1680x1050_120, NULL" |
Step 3: Restart the server with the new config
And check current monitor settings.... Code: | nvidia-settings --query [gpu:0]/RefreshRate[DFP-0]
Attribute 'RefreshRate' (beleg:0[gpu:0]; display device: DFP-0): 59,88 Hz.
'RefreshRate' is an integer attribute.
'RefreshRate' is a read-only attribute.
'RefreshRate' is display device specific.
'RefreshRate' can use the following target types: X Screen, GPU, Display
Device.
|
LOL it still doesn't work.
This time google gave me the answer, it's because nvidia drivers always start with GPU scaling enable for each monitor, and this prevent the monitor to work by itself.
All google answers says you need to load the nvidia-settings config file while booting : ie make the config file without the GPU scaling enable, quit (it autosave it), and use nvidia-settings -l
But because on my computer the nvidia-settings bug when using the -l switch, it try to use the display from my host:display instead of using the DISPLAY env return value
Code: | ERROR: Cannot open display 'beleg:0.0'.
cat ~/.nvidia-settings-rc | grep GPUScaling
beleg:0.0/GPUScaling[DFP-0]=65537
beleg:0.0/GPUScaling[DFP-1]=131073
env | grep DISPLAY
DISPLAY=:0.0
| So because of that and because i frankly don't care to check everytime i run the nvidia-settings GUI if it reenable the GPU scaling shit everytime, i will use the direct query instead (and it's possible hopefuly !).
This will do what we need, and specially without that bug.
Step 4: Disabling GPU Scaling
You will have to run that evertime X is run, so find where you wish add it, for me i simply add it as a start program in gnome.
And you will have to do that for each monitors (DFP-0 and DFP-1 if you have two)
Code: | nvidia-settings -a [gpu:0]/GPUScaling[DFP-0]=1,1
Attribute 'GPUScaling' (beleg:0[gpu:0], display device: DFP-0) assigned value
1,1. |
And now we can re-check again the monitors settings (or use your monitor info panel)
Code: | nvidia-settings --query [gpu:0]/RefreshRate[DFP-0]
Attribute 'RefreshRate' (beleg:0[gpu:0]; display device: DFP-0): 120,00 Hz.
'RefreshRate' is an integer attribute.
'RefreshRate' is a read-only attribute.
'RefreshRate' is display device specific.
'RefreshRate' can use the following target types: X Screen, GPU, Display
Device.
|
And now xrandr and xvidtune output to show how X see that. xvidtune show twice Dot Clock speed, but it could just be because i use two monitors, and xrandr is lost, gnome screen size use the xrandr info, and will then only allow you to get frequencies report by xrandr.
Code: | xvidtune -show
"3360x1050" 238.46 3360 1728 1760 1840 1050 1053 1059 1080 +hsync +vsync
xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 3360 x 1050, maximum 3360 x 1050
default connected 3360x1050+0+0 0mm x 0mm
3360x1050 50.0*
1680x1050 51.0
1024x768 52.0
|
And actual results from xorg.log (with my current settings, but it should gave you an idea of the result)
Code: | [ 57603.706] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[ 57603.706] (**) NVIDIA(0): Option "HWcursor" "true"
[ 57603.706] (**) NVIDIA(0): Option "TVStandard" "PAL-N"
[ 57603.706] (**) NVIDIA(0): Option "RenderAccel" "true"
[ 57603.706] (**) NVIDIA(0): Option "TwinView" "true"
[ 57603.706] (**) NVIDIA(0): Option "TwinViewOrientation" "LeftOf"
[ 57603.706] (**) NVIDIA(0): Option "MetaModes" "1680x1050_120,1680x1050_120; NULL, 1680x1050_120; 1024x768, NULL"
[ 57603.706] (**) NVIDIA(0): Option "AllowGLXWithComposite" "1"
[ 57603.706] (**) NVIDIA(0): Option "AddARGBGLXVisuals" "True"
[ 57603.706] (**) NVIDIA(0): Enabling RENDER acceleration
[ 57603.706] (**) NVIDIA(0): TV Standard string: "PAL-N"
[ 57604.873] (II) NVIDIA(GPU-0): Display (Samsung SyncMaster (DFP-0)) supports NVIDIA 3D Vision
[ 57604.873] (II) NVIDIA(GPU-0): stereo.
[ 57605.000] (II) NVIDIA(GPU-0): Display (Samsung SyncMaster (DFP-1)) supports NVIDIA 3D Vision
[ 57605.000] (II) NVIDIA(GPU-0): stereo.
[ 57605.001] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 260 (GT200) at PCI:2:0:0 (GPU-0)
[ 57605.001] (--) NVIDIA(0): Memory: 917504 kBytes
[ 57605.001] (--) NVIDIA(0): VideoBIOS: 62.00.4c.00.01
[ 57605.001] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[ 57605.001] (--) NVIDIA(0): Interlaced video modes are supported on this GPU
[ 57605.001] (--) NVIDIA(0): Connected display device(s) on GeForce GTX 260 at PCI:2:0:0
[ 57605.001] (--) NVIDIA(0): Samsung SyncMaster (DFP-0)
[ 57605.001] (--) NVIDIA(0): Samsung SyncMaster (DFP-1)
[ 57605.001] (--) NVIDIA(0): Samsung SyncMaster (DFP-0): 330.0 MHz maximum pixel clock
[ 57605.001] (--) NVIDIA(0): Samsung SyncMaster (DFP-0): Internal Dual Link TMDS
[ 57605.001] (--) NVIDIA(0): Samsung SyncMaster (DFP-1): 330.0 MHz maximum pixel clock
[ 57605.001] (--) NVIDIA(0): Samsung SyncMaster (DFP-1): Internal Dual Link TMDS
[ 57605.005] (**) NVIDIA(0): TwinView enabled
[ 57605.206] (II) NVIDIA(0): Assigned Display Devices: DFP-0, DFP-1
[ 57605.207] (II) NVIDIA(0): Validated modes:
[ 57605.207] (II) NVIDIA(0): "1680x1050_120,1680x1050_120"
[ 57605.207] (II) NVIDIA(0): "NULL,1680x1050_120"
[ 57605.207] (II) NVIDIA(0): "1024x768,NULL"
[ 57605.207] (II) NVIDIA(0): Virtual screen size determined to be 3360 x 1050
[ 57605.244] (--) NVIDIA(0): DPI set to (88, 88); computed from "UseEdidDpi" X config
[ 57605.244] (--) NVIDIA(0): option
[ 57605.244] (**) NVIDIA(0): Enabling 32-bit ARGB GLX visuals.
[ 57605.244] (--) Depth 24 pixmap format is 32 bpp
[ 57605.244] (II) NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
[ 57605.255] (II) NVIDIA(0): Setting mode "1680x1050_120,1680x1050_120"
[ 57605.342] (II) Loading extension NV-GLX
[ 57605.393] (==) NVIDIA(0): Disabling shared memory pixmaps
[ 57605.393] (==) NVIDIA(0): Backing store disabled
[ 57605.393] (==) NVIDIA(0): Silken mouse enabled
[ 57605.394] (==) NVIDIA(0): DPMS enabled
|
I hope this will help you setup your monitor easier.
Last edited by krinn on Wed Jan 25, 2012 7:30 pm; edited 1 time in total |
|
Back to top |
|
|
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1877 Location: Switzerland (Romandie)
|
Posted: Mon Jan 02, 2012 11:35 am Post subject: |
|
|
Thanks for that.
It is another tool in portage, hwinfo, the Suse hardware recognition tool. It doesn't show the same informations: I get only one mode with nvidia-settings and several with hwinfo. The plus with nvidia-settings and parse-edid is than the info is formatted for inclusion in xorg.conf.
Also, a strange result of both ways is than I don't get the current screen mode:
Code: | hwinfo --monitor
40: None 00.1: 10000 Monitor
[Created at monitor.95]
Unique ID: jyhG.TzX2mv4fahF
Hardware Class: monitor
Model: "SAMSUNG SyncMaster"
Vendor: SAM "SAMSUNG"
Device: eisa 0x0109 "SyncMaster"
Serial ID: "HVAX712516"
Resolution: 720x400@70Hz
Resolution: 640x480@60Hz
Resolution: 640x480@67Hz
Resolution: 640x480@72Hz
Resolution: 640x480@75Hz
Resolution: 800x600@56Hz
Resolution: 800x600@60Hz
Resolution: 800x600@72Hz
Resolution: 800x600@75Hz
Resolution: 832x624@75Hz
Resolution: 1024x768@60Hz
Resolution: 1024x768@70Hz
Resolution: 1024x768@75Hz
Resolution: 1280x1024@75Hz
Resolution: 1280x1024@85Hz
Resolution: 1024x768@85Hz
Resolution: 800x600@85Hz
Resolution: 640x480@85Hz
Size: 352x264 mm
Detailed Timings #0:
Resolution: 1280x1024
Horizontal: 1280 1344 1504 1728 (+64 +224 +448) +hsync
Vertical: 1024 1025 1028 1072 (+1 +4 +48) +vsync
Frequencies: 157.50 MHz, 91.15 kHz, 85.02 Hz
Driver Info #0:
Max. Resolution: 1280x1024
Vert. Sync Range: 50-160 Hz
Hor. Sync Range: 30-96 kHz
Bandwidth: 157 MHz
Config Status: cfg=new, avail=yes, need=no, active=unknown |
Code: | parse-edid < edid.bin
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.
# EDID version 1 revision 3
Section "Monitor"
# Block type: 2:0 3:fd
# Block type: 2:0 3:fc
Identifier "SyncMaster"
VendorName "SAM"
ModelName "SyncMaster"
# Block type: 2:0 3:fd
HorizSync 30-96
VertRefresh 50-160
# Max dot clock (video bandwidth) 250 MHz
# Block type: 2:0 3:fc
# Block type: 2:0 3:ff
# DPMS capabilities: Active off:yes Suspend:no Standby:no
Mode "1280x1024" # vfreq 85.024Hz, hfreq 91.146kHz
DotClock 157.500000
HTimings 1280 1344 1504 1728
VTimings 1024 1025 1028 1072
Flags "+HSync" "+VSync"
EndMode
# Block type: 2:0 3:fd
# Block type: 2:0 3:fc
# Block type: 2:0 3:ff
EndSection
|
My current mode is 1600x1200@75Hz. I get it with another Suse tool: during a Suse installation, one of the final steps is to optionally read the monitor installation CD. That way, Yast is able to retrieve all the mode informations supported by the monitor and will write them into xorg.conf. This is a huge list of modes including a 1280x1024@88Hz mode. _________________ "Confirm You are a robot." - the singularity |
|
Back to top |
|
|
krinn Watchman
Joined: 02 May 2003 Posts: 7470
|
Posted: Mon Jan 02, 2012 12:04 pm Post subject: |
|
|
tried hwinfo to see, here's what i get
Code: | hwinfo --monitor
35: None 00.0: 10002 LCD Monitor
[Created at monitor.95]
Unique ID: rdCR.rQl8NIf_F_2
Hardware Class: monitor
Model: "SAMSUNG SyncMaster"
Vendor: SAM "SAMSUNG"
Device: eisa 0x04ea "SyncMaster"
Serial ID: "HVNZA00879"
Resolution: 1680x1050@60Hz
Size: 478x300 mm
Detailed Timings #0:
Resolution: 1680x1050
Horizontal: 1680 1728 1760 1840 (+48 +80 +160) -hsync
Vertical: 1050 1053 1059 1080 (+3 +9 +30) +vsync
Frequencies: 119.00 MHz, 64.67 kHz, 59.88 Hz
Driver Info #0:
Max. Resolution: 1680x1050
Vert. Sync Range: 56-125 Hz
Hor. Sync Range: 30-190 kHz
Bandwidth: 119 MHz
Config Status: cfg=new, avail=yes, need=no, active=unknown
|
I cannot get my resolution too.
But now xrandr output it correctly, i didn't think to note the xrandr previous version i was using, but this one, now output it as it should. Check xrandr output.
Code: | xrandr --version
xrandr program version 1.3.5
Server reports RandR version 1.3
xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 3360 x 1050, maximum 3360 x 1050
default connected 3360x1050+0+0 0mm x 0mm
3360x1050 120.0*
1680x1050 120.0
1024x768 85.0
|
|
|
Back to top |
|
|
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1877 Location: Switzerland (Romandie)
|
Posted: Mon Jan 02, 2012 12:40 pm Post subject: |
|
|
Here, xrandr is failing to report the correct modes. It is the same version as yours:
Code: | xrandr -v
xrandr program version 1.3.5
Server reports RandR version 1.3
xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 320 x 175, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
1600x1200 50.0* 51.0 57.0 58.0 59.0 60.0
1280x1024 52.0 56.0 63.0 64.0
... |
According to nvidia-settings, my monitor can do 1600x1024@75, 70, 68, 65 and 60Hz. It is no 50Hz mode for that resolution. Also, it is no 1280x1024#52Hz mode. Even 2048x1536 is at 60Hz. I will soon try with another one monitor, a LCD screen.
What would be great with nvidia-settings and parse-edid is that they would be able to output all the modes that show nvidia-settings. _________________ "Confirm You are a robot." - the singularity |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|