Forums » Linux

major problem with dualscreen. suggestion to dev!

«12
Sep 18, 2009 raybondo link
There's a hack to disable the use of xf86 vidmode extension in VO.

Edit the config.ini file and add or change the [refgl] section entry called xf86vidmode to 0.

[refgl]
xf86vidmode=0

That will cause only 1024x768 and 800x600 modes to be available.
Sep 18, 2009 mr_spuck link
Doh.. I think I saw that option before but never checked what effect it has.

These days it'd probably be a good idea to add higher resolutions too.. like 1280x1024, 1600x1200 and a couple of wide screen modes.
Sep 18, 2009 raybondo link
Heh, well, that's what the xf86vidmode extension is supposed to do for us. It reads all available resolutions from the X11 config file and discards resolutions that less than 800x600. However, it looks like there may be a bug where it doesn't properly discard those resolutions.
Sep 18, 2009 raybondo link
Can someone post their entire xorg.conf file here? I've never heard of the metamodes screen option before. That is something new and apparently isn't compatible to older ways of doing it.
Sep 18, 2009 mr_spuck link
Yea .. but in this case the vidmode extension only seems to provide one mode and ignores modes specified in the config file.

That's why I asked for the xrandr output in the other thread. With ATI the xrandr and vidmode lists are identical .. maybe it's different with nvidia. Somehow other games don't have this problem.
Sep 19, 2009 Adriel link
well 800x600 works when I do that, but when I try to switch to 1024x768 the game crashes with no feedback (It just goes away from the screen, yet continues to run and burn cpu till I kill it)

This was in the openglerr.log

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x27 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
../../../gk/gkgl/refgl/texmanage.cpp(92) : glGetError() returned 'invalid enumerant'
visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x27 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
../../../gk/gkgl/refgl/texmanage.cpp(92) : glGetError() returned 'invalid enumerant'

and the errors.log

[Fri Sep 18 23:58:29 2009] Here are the available modes:
[Fri Sep 18 23:58:29 2009] 0) 800x600x24
[Fri Sep 18 23:58:29 2009] 1) 1024x768x24
[Fri Sep 18 23:58:29 2009] and it picked mode 0

I run 1920x1080 on my primary monitor so if I could get it at least in 1024x768 that would be better.
Sep 19, 2009 Adriel link
my xorg.conf (hopefully I didnt make any copy/paste errors, it is 144 lines long).

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildd@crested) Sun Feb 1 20:25:37 UTC 2009
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder62) Tue Mar 24 06:15:32 PST 2009
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "Monitor"
Identifier "Configured Monitor"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "HSD AH191"
HorizSync 30.0 - 83.0
VertRefresh 55.0 - 75.0
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "HSD AH191"
HorizSync 30.0 - 83.0
VertRefresh 55.0 - 75.0
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Configured Video Device"
Monitor "Configured Monitor"
DefaultDepth 24
Option "NoLogo" "True"
Option "RandRRotation" "on"
SubSection "Display" Depth 24
Modes "nvidia-auto-select"
EndSubSection
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "RandRRotation" "on"
Option "TwinView" "1"
Option "TwinViewXineramaInfoOrder" "CRT-1"
Option "metamodes" "CRT-0: nvidia-auto-select +0+0, CRT-1: nvidia-auto-select +1440+0; CRT-0: nvidia-auto-select +1440+0, CRT-1: 1440x900 +0+90"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "RandRRotation" "on"
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-1"
Option "metamodes" "CRT-1: nvidia-auto-select +0+0"
# Removed Option "metamodes" "CRT-1: nvidia-auto-select +0+0"
# Removed Option "metamodes" "CRT-1: 1920x1080 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Module"
Load "glx"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
# generated from default
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Device"
Identifier "Configured Video Device"
Driver "nvidia"
Option "RandRRotation" "on"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 7300 GS"
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 7300 GS"
BusID "PCI:2:0:0"
Screen 1
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
Option "DontZap" "False"
# Removed Option "Xinerama" "0"
# Removed Option "Xinerama" "1"
# Removed Option "Xinerama" "0"
# Removed Option "Xinerama" "1"
EndSection
Sep 19, 2009 raybondo link
Thanks.

I just released an update that fixes a bug with the VO opengl driver. It was not properly using the enumerated resolutions if there were resolutions less than a height of 600 and then resolutions greater than or equal to height of 600.

I also added the ability to override the resolution via the config.ini file.

[refgl]
xsize=1000
ysize=1000
xf86vidmode=0

also if you want to change the location of the fullscreen window:
xpos=1440
ypos=0
(or whatever position you want, they default to 0,0)

I hope that will help.

Before you try the hack, try to select the res normally to see if the enumeration fix fixed it.
Sep 19, 2009 Adriel link
ok

I tried normally and no luck, it only finds the combined dual resolutions.

then I tried:

window_xsize=1850
window_ysize=1020
xf86vidmode=0

and now 1024x768 works without crashing, I only see 3 modes, 800x600, 1024x768 and 1280x1024. The 1850x1020 res does not show up at all in the list.

1280x1024 does not size correctly, it creates a 1280x1024 screen inside a 1024x768 window.

At least I can play in 1024x768 for a while.

Thanks.
Sep 19, 2009 Adriel link
when I try to switch to 1280x1024, I get this error in openglerror.log

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x27 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None
texmanage.cpp(92) : glGetError() returned 'invalid enumerant'
Sep 19, 2009 raybondo link
Adriel, Sorry about the error, I meant to say xsize, ysize, xpos, ypos with no window_

I edited my post to reflect the correction.
Sep 19, 2009 Adriel link
That worked!

Thank you.
Oct 21, 2009 mr_spuck link
I just noticed a sideeffect of this. It makes it possible to run the game at resolutions below 800x600.

Please don't disable that again! I've wanted that for a while.
Oct 22, 2009 raybondo link
Heh. No guarantee whether the interface fits on res < 800x600 though.
Dec 03, 2009 Ahzzmandius link
Good thing this was fixed. Now I can actually see buttons since my dual monitor setup is an unequal pair. 1900x1200 and 1280x1024. :)

I can confirm that the default mode only sees the "virtual" desktop size which includes some undisplayable space under the second 1280x1024 monitor.

Interestingly enough glxinfo does tell me about other resolutions. Maybe you should see how glxinfo get's it's details correct to pick your resolution offerings in the menu.
Jun 28, 2010 CrazySpence link
I just had this issue and needed to use the hack described here

linuuuux *shakes fist*
Jul 03, 2010 valenfor link
One thing I notice when I use the hack (xf86vidmode=0) is that the performance drops. I get lower performance using 800x600 relative to when its in 3200x900. Which is just seems crazy to me. Is there some optimization with the xf86vidmode that gets disabled using this hack?

V.