PDA

View Full Version : Applications have wierd problem with screen resolution



dave370
6th March 2008, 10:07 AM
I have noticed recently that 3 games that I play are having problems with the screen resolution. My monitor is a 1680x1050 widescreen monitor and I currently run KDE 3.5.9 on Fedora 8. The video card is a Nvidia Geforce PCI Express 7600GS. I had setup the propriety Nvidia driver a long time ago and didn't have this problem but recently I downloaded a number of updates to system via pup including a Kernel upgrade and upgrading the propriety driver (Upgrading the Nvidia driver took a little bit more work than just downloading it as it usually does but I got it working). Since roughly about this time the problems began to occur.

I first noticed the issue when I installed Need for Speed: Hot Pursuit 2 on Cedega 6. When I went to the main menu I couldn't see the bottom of the screen (It was like the menu was attempting to display at 4:3 resolution, displayed the width correctly then cut off the bottom). I then checked the screen resolution on the monitor and it was displaying at 1680x1050 (NFS: Hot Pursuit 2 is widescreen capable surprisingly even though it is dated but I was really surprised that the menu was displaying at a widescreen resolution). When I began to play the game the bottom part was not cut off and it played natively at my resolution perfectly.

Originally I thought that this issue was only related to NFS: Hot Pursuit 2 and did not think much of it as the Menu's were still navigational (Once I found out where the buttons on the bottom were blindly with the keyboard). But then I began to play Star Trek: Armada 2 (Installed with regular Wine) which is not widescreen and this issue occurs with the Intro Movies and the menu. I have not even attempted to play the game as I most likely won't even be able to get there with this problem and it will most likely be the same anyway as the entire game is 4:3.

I then went back to NFS: Hot Pursuit 2 and changed the settings from XVidMode to XRandR (As this is how Cedega changes the Screen Resolution) and this didn't change anything.

I believe this problem has something to do with my X Server and so I have pasted my xorg.conf information below:

# Xorg configuration created by livna-config-display

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

Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
EndSection

Section "ServerFlags"
Option "AIGLX" "on"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us+inet"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

dave370
7th March 2008, 02:19 AM
I have just removed xorg-x11-drv-nvidia 169.09 with the package manager and rebooted. I then ran Star Trek: Armada 2 and everything was 1680x1050 (But dead slow without proprietary driver) it stretched correctly and there was no missing part at the bottom. I can't remember if the driver I had installed previously was 169.09-5 or 169.09-6 as I now see both of these in pirut so I'm going to try both of them and if they don't fix the problem I'll use the older 96 version driver.

I can live with this weird new behavior of games which are supposed to display at a 4:3 resolution stretching to my 1680x1050 monitor but it is very annoying when it cuts off the bottom part. Can someone please tell me how to fix this problem!!!???

dave370
7th March 2008, 02:34 AM
After I tested Armada 2 without the Proprietary driver I attempted to install 169.09-5 but it had dependency problems (probably because it is older and wasn't designed for my up to date kernel) so then I installed 169.09.6 and rebooted the system. I then attempted to play Star Trek: Armada 2 but it has the same problem as before. The bottom part of the screen is missing and it is stretched. I am now going to attempt the 96 driver.

dave370
7th March 2008, 02:56 AM
96xx driver after reboot doesn't even start X. A number of errors popped up during boot and then it goes to a console screen. I then removed the driver via yum and rebooted and this allowed it to start the Window Manager. CAN SOMEONE PLEASE TELL ME WHAT TO DO TO SOLVE THIS ISSUE!!!

Hlingler
7th March 2008, 03:22 AM
Hello:

There is an nvidia-settings utility that comes with all versions/releases of the proprietary driver, no matter where you got it. Did you ever try running it? Also, there seems to be some problem with the display not being auto-detected after installing the proprietary driver. You may need to also run system-config-display and manually select either your brand/model or a generic monitor after installing the nvidia driver- I did. But beware! system-config-display and nvidia-settings overwrite each other's changes to xorg.conf, so BACK UP XORG.CONF before you run either utility. You will probably have to manually edit xorg.conf either way, to make sure all necessary entries are present.

Hope that helps.

Regards,
V

dave370
7th March 2008, 04:34 AM
I should have mentioned that I have already been playing around with the nvidia-settings utility since the problem started. Changing the resolution in KDE or the Nvidia Utility does not effect at all the resolution in game (It switches back to 1680x1050 straight away when I start them no matter what resolution the desktop is set to). I just tried the system-config-display utility and there appears to be nothing useful in there. You can change the resolution (which I know won't solve the problem already), change Monitor Type (I think I changed this from Unknown to LCD Panel 1680x1050) then rebooted so the X Server settings would come into effect but this changed nothing either and you can change the Video Card Driver option (It says Unknown Video Card but I think this is because it is using the proprietary driver because if I click on "Configure" the proprietary driver is selected).

What I haven't attempted is changing the resolution in X to 4:3, restarting X, and then seeing what happens when I attempt to play the games. But I think the issue has to do with xorg.conf restricting certain applications (Such as Wine and Cedega) to only use the resolution that xorg.conf is configured to use. As none of the GUI utilities has (Nvidia, KDE, system-config-display) have any way to change the resolutions that xorg.conf says it can support (You can change the resolution but not the supported resolutions) it would be good if someone could show me what changes I have to make to my xorg.conf file (My xorg.conf file is in 1st post).

dave370
7th March 2008, 04:48 AM
I switched the resolution to 1024x768 in the Nvidia Utility, saved the settings to X and rebooted. The desktop when I started it up was at 1024x768 but as soon as I entered the game it was at 1680x1050. After this happened I switched back to 1680x1050 and rebooted. I've now decided I'll have a look at the xorg.conf file to see what changes the Nvidia Utility makes when changing a resolution (I'll display it in the next post).

dave370
7th March 2008, 05:08 AM
Here is my xorg.conf file when I'm in 1024x768:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder3) Fri Jan 11 15:06:57 PST 2008

# Xorg configuration created by system-config-display

Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
EndSection

Section "Module"
EndSection

Section "ServerFlags"
Option "AIGLX" "on"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us+inet"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "dpms"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 7600 GS"
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Screen"

# Removed Option "metamodes" "1024x768 +0+0"
# Removed Option "metamodes" "1680x1050 +0+0"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "1024x768 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

and here is it when I'm in 1680x1050:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder3) Fri Jan 11 15:06:57 PST 2008

# Xorg configuration created by system-config-display

Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
EndSection

Section "Module"
EndSection

Section "ServerFlags"
Option "AIGLX" "on"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us+inet"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "dpms"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 7600 GS"
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Screen"

# Removed Option "metamodes" "1024x768 +0+0"
# Removed Option "metamodes" "1680x1050 +0+0"
# Removed Option "metamodes" "1024x768 +0+0"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "1680x1050 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

I first tried 1024x768 and then went back to widescreen. What appears to have happened is whenever the Nvidia utility changes resolution it adds the resolution to xorg.conf and then comments out (# Removed) the old resolution. I am now about to the following changes to my xorg.conf section Screen

Section "Screen"

Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "640x480 +0+0"
Option "metamodes" "800x600 +0+0"
Option "metamodes" "1024x768 +0+0"
Option "metamodes" "1680x1050 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Hopefully this will allow applications to switch to the above resolutions.

Hlingler
7th March 2008, 05:13 AM
I think you might need to add a 'Section "Modes" ' to xorg.conf. See man xorg.conf and post #3 here: http://www.linuxforums.org/forum/linux-laptops/16606-wide-screen-issues.html

Regards,
V

dave370
7th March 2008, 05:54 AM
I just tried that a few minutes ago. What I found strange originally about how the Nvidia Utility changes the xorg.conf file was this "Metadata" which doesn't appear to change the resolution half the time (If I have . Where as on other xorg.conf files I have seen this is not there and there is a modes in the Screen section.

When I made the changes below a number of errors occurred and it went to a console screen.

Section "Screen"

Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Modes "1680x1050" "1024x768" "800x600" "640x480"
SubSection "Display"
Depth 24
EndSubSection
EndSection

But as you can see I placed the Modes in the Screen section and not the subsection display which I will attempt now.

dave370
7th March 2008, 06:08 AM
Moving Modes to the subsection allowed system to boot but did not appear to solve problem but I only did it with a 24bit colour section and Armada 2's Intro and Menu might be 16bit colour depth because of the age.

dave370
7th March 2008, 06:21 AM
Added all colour depths, restarted X and still didn't fix the problem. My xorg.conf now looks like this:




# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder3) Fri Jan 11 15:06:57 PST 2008

# Xorg configuration created by system-config-display

Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
EndSection

Section "Module"
EndSection

Section "ServerFlags"
Option "AIGLX" "on"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us+inet"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "dpms"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 7600 GS"
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Screen"

Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
Modes "1680x1050" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1680x1050" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1680x1050" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection




I'm out of ideas.

Hlingler
7th March 2008, 07:00 AM
One more suggestion: did you try to make nvidia-settings GUI "acquire EDID" from the monitor? That would be my last idea.

V

dave370
7th March 2008, 09:46 AM
That option doesn't change anything to do with the computer settings, it merely asks you where you would want to save a file containing information about the monitors EDID.

I noticed on this page though the section which is named "Flat Panel Scaling". I thought that changing these options would make the display behave differently but it doesn't.

dave370
8th March 2008, 12:18 AM
Now whenever I change resolution the desktop appears to change resolution but the monitor says its still at 1680x1050. I think this is because of "Metamode" but I don't know how to change it so that when I or an application want to change the resolution the computer can actually change the resolution!!!

Hlingler
8th March 2008, 01:45 AM
Now whenever I change resolution the desktop appears to change resolution but the monitor says its still at 1680x1050. I think this is because of "Metamode" but I don't know how to change it so that when I or an application want to change the resolution the computer can actually change the resolution!!!Reading man xorg.conf is like trying to decipher Klingon, but I think that the answer is in there, and has something to do with "Modes". The is a huge pile of documentation that comes with the nvidia drivers too. A brief surf through them revealed nothing to me, except for the sheer volume of verbiage. Have fun.... Surely someone else has faced this issue? Nothing turns up on a Google-Linux search? How about the nvidia forums? http://www.nvnews.net/

V

dave370
8th March 2008, 04:47 AM
Tried Google, Recently posted at Nvidia Linux forum (URL: http://www.nvnews.net/vbulletin/showthread.php?t=109446), don't seem to be getting anywhere. The problem appears to only effect fullscreen applications . I have solved the problem of switching resolutions with the Nvidia and Kdesktop utilities if you look at my Nvidia posts (It appears to be unrelated and this wasn't much of a problem anyway because I want my Window Manager working at 1680x1050 always but old games which use 4:3 resolutions in fullscreen should go to their desired resolution rather than this weird behavior). I haven't read through man xorg.conf or any Nvidia documentation yet but I'll give that a go soon. I'm hoping someone at the Nvidia Forum or someone at this forum can help me though before I have to go through all that documentation.

dave370
22nd March 2008, 04:01 AM
Okay, I just downloaded the Fedora 8 64bit DVD (I was previously running 32bit). Once I had installed the Operating System on my computer I updated the Kernel to the latest via pup, installed livna, installed Madwifi packages (I need these for my wireless card), installed latest xorg-x11-drv-nvidia and installed Wine (Not Cedega or Crossover). I then installed Star Trek: Armada 2 on Wine (Actual Wine) and went to play and the problem occurred again!!!

This is extremely annoying. I'm going to now remove the xorg-x11-drv-nvidia package and see if the problem occurs on the open source driver (I tried this before with my 32bit installation and this fixed the problem but of course the game was too slow to play). If this works it's pretty obvious this is a bug with the latest Nvidia proprietary driver and I will bug the Nvidia software developers till they get fixed.

My Video card is a Nvidia Geforce 7600GS and I am using a 1680x1050 monitor. If anyone has a similar configuration to me (Such as having a Geforce 7 series card with a widescreen monitor) they should be able follow what I have done above with a Fedora 8 install (32 or 64 doesn't appear to matter) and confirm the problem. I will post this post on the Nvidia Forum later on.

dave370
22nd March 2008, 07:10 AM
I've ran smolt for people who would like to know more about my computers specifications. Here is the URL: http://www.smolts.org/client/show/pub_0c9adca4-1144-4df3-b854-914ab690bbf4

dave370
22nd March 2008, 08:21 AM
Attached is my Nvidia Bug Report (I had to change the name from nvidia-bug-report.log to nvidia-bug-report.conf because this forum doesn't like the LOG file extension)

Hlingler
22nd March 2008, 08:23 AM
This is getting complicated....

> What is the purpose of the "Twinview" call in xorg.conf? Are you sure that this is necessary and correct?

Here are some things you might try:
> No, the nvidia drivers are not all exactly the same, although in theory they should be. The original nvidia binary is not recommended (long story...), and the re-packaged Livna driver is slightly different than the re-packaged FreshRPMs driver (because human error and personal preferences are involved). You could try removing all the Livna driver stuff, and install the FreshRPMs dkms-based driver instead. FreshRPMs repo is down at the moment, however, so see: http://forum.fedoraforum.org/forum/showpost.php?p=961270&postcount=26 to get version(s) 169.09 just for now. Install with: yum localinstall --nogpgcheck path-to-packagename; dkms package should be dragged in as dependency if not already installed. There is even yet another repo offering this driver, but leave that for last resort....
> Something recently seems to have broken auto-detection of monitors WRT nvidia drivers, so it might help to have the custom EDID specified. How to use the nvidia-settings "Acquire EDID": save file; copy (as root user) to /etc/X11/edid.bin; edit xorg.conf as shown, but use your monitor type instead of CRT:
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 6150 LE"
Option "CustomEDID" "CRT-0:/etc/X11/edid.bin"
EndSection
This seems to have made some difference in the available resolutions on my machine, but I wasn't really paying attention when I did it to know for sure....

Hope this helps,
V

P.S. Note that the dkms-based driver has no kmod: the kernel module is built by dkms at boot time against the booting kernel, so no updating kmods! (but it takes a little extra boot time to build the module...)

dave370
22nd March 2008, 09:50 AM
I think twinview has to do with dual monitors (I only have one so this is unnecessary) but in my new 64bit Fedora 8 install this line is no longer in my xorg.conf file anyway and I am still having the problem.

I'll now try what you said with the nvidia FreshRPM's and see if that works.

dave370
22nd March 2008, 10:28 AM
Okay I removed the Livna Nvidia Driver, rebooted, Downloaded and installed the FreshRPM Nvidia Driver, rebooted again and then started Armada II, no difference. I then removed the FreshRPM Nvidia Driver, rebooted and then ran Armada II again and it worked correctly. But like before the Open Source driver is dead slow and makes the game unplayable.

Looking at what you have written it does appear that the different Repository Distributors do change parts of the Nvidia Driver code, but this bug must effect all Nvidia Proprietary drivers (Latest ones anyway) as I should have gotten a different result when I used the FreshRPM.

I will now try your idea with the EDID for xorg.conf

dave370
22nd March 2008, 09:50 PM
I made the EDID file with nvidia-settings, copied it over to the directory you specified as root, added the extra line to xorg.conf and rebooted. When the PC got into the Window Manager, the monitor said it was displaying at 1680x1050 (Native) but the desktop was stretched horizontally to twice it's width i.e I could only see the left part of the screen. I then went into the KDesktop utility and changed the resolution to 1024x768 and back again and this fixed it so the Window Manager would display properly. I then attempted to play Armada II and it still had the same problem

Hlingler
22nd March 2008, 10:03 PM
Sorry dave370, I'm out of ideas. Unless you can find a solution elsewhere, or nvidia comes up with a fix, or someone else more knowledgeable can offer suggestions here, I don't know what more can be done.

P.S. FWIW, the custom EDID does give me (a couple) more resolution options in KDE desktop display settings. But I can't confirm with system-config-display because I'm running KDE-only, so that app is not installed on my main box. Nor do I have a wide-screen display to compare with yours....

Good Luck,
Vince

dave370
24th March 2008, 02:38 AM
Yeah, I don't think mucking around with EDID and xorg.conf is going to fix this problem though as switching resolutions in my Window Manager without these changes works perfectly. The problem must effect all of the latest Nvidia binaries with a conflict most likely my chipset or video card.

To further diagnose this problem, over the next couple of days I'm going to put my Geforce 7600GS into my Dad's PC (This is an AMD system, mine's Intel, lot of other different specs) and install fresh Fedora 8. My brother also has a 7300GS which is excellent because I can see if this effects the entire Geforce 7 series or just 7600GS. As I said earlier, I can make this problem occur with a fresh install of Fedora 8 (32bit or 64bit doesn't matter) so it shouldn't be too much of a problem for someone to confirm this bug (For more details about my current system see the smolt URL I provided).

dave370
28th March 2008, 06:02 AM
Okay, now I've half fixed the problem. I added the line

Option "FlatPanelProperties" "Scaling = aspect-scaled"

to xorg.conf. I had done this before with my 32bit Fedora Installation and it didn't work (Also through the Nvidia Utility).

Now when I go into Star Trek: Armada II (I haven't tested any other games yet), the intro movies at the beginning of the game which I believe attempt to display at 640x480 work (i.e. At 4:3 on a 16:10 monitor black bars to the side, exactly how I like 4:3 games to work). But when it attempts to go to the Menu the right side of the screen and the bottom part are both cut off. I believe this is because it went from 640x480 to 800x600 but the screen is only showing 640x480 pixels (Sort of like my previous problem except now with 2 4:3 resolutions).

Also just like before, the Monitor is reporting that it is at 1680x1050 even when I go to the 4:3 resolutions fullscreen. I hate this strange functionality and would prefer that if an application wants to change to it's desired resolution, it should do so. This functionality is what is probably causing the problem anyway.

dave370
28th March 2008, 06:45 AM
I finally found someone else who has a slightly similar problem to mine.

http://ubuntuforums.org/archive/index.php/t-434609.html

Now that I've put the scaling option in X I'm going to put the extra modes in again and restart X like it says. Maybe this will now fix the problem.