Cannot change screen resolution in multi-monitor setups

Bug #227563 reported by Connor Imes
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Wine
Confirmed
Low
wine1.4 (Ubuntu)
Triaged
Wishlist
Unassigned

Bug Description

Running 64 bit Hardy Heron, dual head NVIDIA with TwinView. Problem exists regardless if Compiz Fusion is enabled. I am using restricted NVIDIA drivers installed with EnvyNG.
Cannot get counter-strike 1.6 to open with correct screen resolution, it is stuck at 640x480
Have tried different launch options for cs including
"-gl -width 1024 -height 768"
Have also tried different settings for NVIDIA, including single screen setup and Xinerama.

connor@compy686:~$ uname -a
Linux compy686 2.6.24-16-generic #1 SMP Thu Apr 10 12:47:45 UTC 2008 x86_64 GNU/Linux

connor@compy686:~$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)

connor@compy686:~$ lsmod | grep nvidia
nvidia 8857924 48
i2c_core 28544 1 nvidia

connor@compy686:~$ cat /etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildd@yellow) Tue Mar 4 20:28:57 UTC 2008

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

Section "Files"
    RgbPath "/usr/X11R6/lib/X11/rgb"
EndSection

Section "Module"
    Load "dbe"
    Load "extmod"
    Load "type1"
    Load "freetype"
    Load "glx"
EndSection

Section "ServerFlags"
    Option "Xinerama" "0"
EndSection

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

Section "InputDevice"
    # generated from default
    Identifier "Keyboard0"
    Driver "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier "Monitor0"
    VendorName "Unknown"
    ModelName "DellSP2008WFP"
    HorizSync 30.0 - 83.0
    VertRefresh 56.0 - 76.0
    Option "DPMS"
EndSection

Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce 8600 GT"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    Option "TwinView" "1"
    Option "TwinViewXineramaInfoOrder" "DFP-0"
    Option "metamodes" "DFP-0: nvidia-auto-select +0+0, DFP-1: nvidia-auto-select +1680+0"
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Tags: nvidia wine
Revision history for this message
Connor Imes (ckimes) wrote :
Revision history for this message
Connor Imes (ckimes) wrote :
Revision history for this message
Connor Imes (ckimes) wrote :
Revision history for this message
Connor Imes (ckimes) wrote :

Almost forgot, I also tried purging wine from my system then compiling wine myself following the directions at http://wiki.winehq.org/WineOn64bit
The build was successful, but the same problem occurred.
I then removed that wine, disabled the winehq repositories and tried using wine from the Hardy repositories instead, but the problem is still there. I am currently using wine-0.9.59
Again, the problem still existed in the latest wine, 0.9.61

Revision history for this message
Connor Imes (ckimes) wrote :

OK, I reinstalled with the i386 version of Ubuntu Hardy and the problem still exists, so it must be that wine does not like the hardware.
Using an NVIDIA GeForce 8600 GT. Even with a fresh install, no nvidia restricted driver, the same problem occurs.

Can somebody please confirm this bug?

connor@compy686:~$ uname -a
Linux compy686 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux

connor@compy686:~$ sudo lshw -C video
  *-display
       description: VGA compatible controller
       product: GeForce 8600 GT
       vendor: nVidia Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list
       configuration: driver=nvidia latency=0 module=nvidia

Revision history for this message
Connor Imes (ckimes) wrote :

Just tried nvidia restricted driver version 100.14.19, did not fix the problem.

Revision history for this message
Connor Imes (ckimes) wrote :

Now using a new kernel, new wine version, and had to reinstall the restricted nvidia drivers, but the problem still exists. Does anybody have any ideas at all?

connor@compy686:~$ uname -a
Linux compy686 2.6.24-19-generic #1 SMP Wed Jun 18 14:43:41 UTC 2008 i686 GNU/Linux

connor@compy686:~$ wine --version
wine-1.1.0

Revision history for this message
Connor Imes (ckimes) wrote : Re: cannot change screen resolution in counter-strike 1.6 under wine

Problem still exists. At this time I am only using 1 monitor.

connor@compy686:~$ uname -a
Linux compy686 2.6.24-20-generic #1 SMP Mon Jul 28 13:49:52 UTC 2008 i686 GNU/Linux

connor@compy686:~$ wine --version
wine-1.1.2

Revision history for this message
Connor Imes (ckimes) wrote :

OK, so a workaround has been discovered.

1) * TwinView must be disabled *
2) Load the game and disable windowed mode (which means full screen is enabled).
3) Restart the game - you can now select a resolution. Do it and restart the game.
4) You can now re-enable windowed mode and choose a screen resolution to better match.

The kicker is that TwinView has to be disabled. Right now I only have one monitor plugged in, so I will have to see if the fix continues to work when both monitors are plugged in and TwinView is re-enabled. I will post the results of that back in a few weeks.

Revision history for this message
regnuh (hungerregnuh) wrote :

I found a work around where you can have BOTH dual screen AND you can change your resolution. Your post helped me figure this out so thanks!

Here's what I did in the nvidia-settings (took several iterations to get this correct),

1. Load the Nvidia-Settings
2. Detect Displays
3. In the configure screen, turn TwinView off like you mentioned above.
4. Select "Use separate X windows" I think is the option.
5. Check the xinerama, this is required if you want to be able to move your windows from one screen to the next otherwise X treats this as two different windows (per the option above).

Then I restarted X, I now have dual monitoring working AND was able to play counter-strike @ 1024x768.

Revision history for this message
Scott Ritchie (scottritchie) wrote :

I'm not sure if this is a Wine bug or an nvidia bug. Is there a non Wine-related application that makes similar resolution changes?

Revision history for this message
Connor Imes (ckimes) wrote :

Hi Scott,

I only experience the problem with dual head, I thought that Wine may be having trouble talking with the drivers correctly in this setup. Since the game works fine with one monitor (no TwinView) and restricted drivers, Wine seemed like the best package to assign this bug to.

I have not had the problem with any other programs outside of Wine - the problem only occurs with these Steam games in Wine (Counter-Strike and Day of Defeat act the same - both are based on the Half Life engine). I don't use Wine very much, but programs that I do use (or have used) in Wine work fine. If you need anything else, let me know. Thanks.

Revision history for this message
Julian Lam (julian-lam) wrote :

Please note that a workaround has been detailed under the following two links. They both contain the same information:
http://www.ltyer.com/wordpress/tutorial-xorg-metamodes-running-fullscreen-games-on-1-monitor-in-a-dual-display
http://www.kareeser.com/ubuntu/metamodes.php

The problem is due to TwinView merging both displays into a single resolution, which confuses games.

Revision history for this message
Julian Lam (julian-lam) wrote :

Unfortunately, because wine is designed to work with one monitor, and not a dual (or triple) head setup with Twinview, this is most likely better to be categorized as "wishlist".

However, the workaround listed above works perfectly. Wine should automatically interface with nvidia-settings and setup metamodes properly. Alternatively, nvidia-settings should set up metamodes automatically.

Changed in wine (Ubuntu):
status: New → Confirmed
Revision history for this message
In , Scott Ritchie (scottritchie) wrote :

From Launchpad: https://bugs.launchpad.net/ubuntu/+source/wine/+bug/227563

Dual head, twinview, and similar setups don't work very well when the application attempts to set the resolution. Some more description and a few workarounds are at the Launchpad link.

Revision history for this message
In , Stefan Dösinger (stefandoesinger) wrote :

I talked to Scott on Wineconf

Basically there are two issues

1) A X server setup issue. Some X server setups with multihead support only one
resolution. Wine can't change it until the user fixes the X setup. As far as I
know this is just a config bug, not a code bug.

2) Wined3d doesn't support multihead. The lower layers of Wine do support
Xinerama and report multi-head setups to the apps and other wine dlls, but our
d3d code doesn't support it yet.

I think in order to support one screen in a multihead setup properly we need
all the infrastructure that is needed to support a full dual-screen D3D
setup(e.g. like Supreme Commander supports). If the app doesn't use that
feature the second screen will stay black, but the first one should be set up
properly.

Changed in wine:
status: Unknown → Confirmed
Revision history for this message
In , Hverbeet (hverbeet) wrote :

(In reply to comment #1)
> I talked to Scott on Wineconf
>
> Basically there are two issues
>
> 1) A X server setup issue. Some X server setups with multihead support only one
> resolution. Wine can't change it until the user fixes the X setup. As far as I
> know this is just a config bug, not a code bug.
>
> 2) Wined3d doesn't support multihead. The lower layers of Wine do support
> Xinerama and report multi-head setups to the apps and other wine dlls, but our
> d3d code doesn't support it yet.
>
> I think in order to support one screen in a multihead setup properly we need
> all the infrastructure that is needed to support a full dual-screen D3D
> setup(e.g. like Supreme Commander supports). If the app doesn't use that
> feature the second screen will stay black, but the first one should be set up
> properly.

No, changing display resolution with a multihead setup works, provided X is properly configured. What doesn't work is multihead D3D (i.e. what Supreme Commander uses when available) or changing the resolution of the screen independently from eachother. The latter needs XRandR support in the driver first in case of nvidia.

Revision history for this message
rusivi2 (rusivi2-deactivatedaccount) wrote : Re: cannot change screen resolution in counter-strike 1.6 under wine

Thank you for posting this bug.

As per upstream, this functionality is duly noted but not implemented yet.

Hence, I agree with Julian Lam, this is a wishlist bug. This should be marked as such.

Revision history for this message
Philip Muškovac (yofel) wrote :

Setting Wishlist on rusivi1s request.

Changed in wine (Ubuntu):
importance: Undecided → Wishlist
Changed in wine:
importance: Unknown → Low
Revision history for this message
In , HX_unbanned (linards-liepins) wrote :
summary: - cannot change screen resolution in counter-strike 1.6 under wine
+ Cannot change screen resolution in multi-monitor setups
affects: wine (Ubuntu) → wine1.4 (Ubuntu)
Changed in wine1.4 (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
In , Butraxz (butraxz) wrote :

This ticket has not been updated for over 900 days.

Is this still an issue in wine version 1.6-rc3 or higher or is this to be closed as abandoned ?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.