2.0.14/ATI/Ubuntu Karmic Fullscreen Fix

Help with Setup, Hardware, Performance or other Issues...Or just pimp your rig.
Post Reply
Avatar
Private First Class
Private First Class
Posts: 132
Joined: Sun Sep 18, 2005 9:28 pm

2.0.14/ATI/Ubuntu Karmic Fullscreen Fix

Post by Avatar »

Okay, I finally got fullscreen working correctly with my Radeon 9250 in Karmic using the standard "radeon" open-source drivers and found that the issue lies in how bzflag is getting its initial display mode from the X server. When first run fullscreen straight from the command line or launcher, bzflag apparently tries to set the video mode to the highest resolution and refresh rate available, based on what X says it can handle. Unfortunately, there's a bug in the ati drivers that causes them to simply report resolutions without refresh rate information, so bzflag will end up attempting maximum resolution at CURRENT desktop refresh rate, which may not be a valid display mode (in my case, I had desktop set to 1024x768@75Hz, while bzflag was trying to set my display to 1680x1050 which maxes out at 70Hz on my monitor).

The userside solution is actually quite simple:

1) First, this is only for those who receive an error report from xorg regarding a bad function call when running bzflag from the terminal. (See my forum post containing a sample error message here).

2) Set your desktop to the largest VESA standard screen size available (in my case, it was 1600x1200, might be different for others) and the highest refresh rate available at that resolution.

3) Launch bzflag. You should be in the main menu now. If bzflag still fails at launch then run from the terminal to see if you're now getting a Segmentation Fault (which requires a different fix).

4) Now that you have the main bzflag menu available to you, go to Options > Display Options > Change Video Format. Scroll through the list of resolutions until you reach the actual resolution you want to use (usually your normal desktop resolution) and press Enter. Bzflag will change to the selected resolution and write it to your config file.

5) Exit back out to your desktop and change the resolution and refresh rate back to what you normally use.

6) Launch bzflag again. It should now launch at your saved resolution without failing.

***Note: after exiting out of bzflag, I noticed that the console still had an X Error reported, though the value of the failed request was significantly different (0x180000e). I was still able to launch bzflag directly in fullscreen mode, though, so I suspect that this error is not a fatal one like that previous one was.
And the lesson for tonight is:

Never underestimate the ability of a newb to expect instant success and cry "cheat!" when they don't get it. Don't hate the newb, just give them plenty of learning opportunities. ;)
User avatar
blast
General
General
Posts: 4934
Joined: Fri Mar 21, 2003 3:49 pm
Location: playing.cxx
Contact:

Re: 2.0.14/ATI/Ubuntu Karmic Fullscreen Fix

Post by blast »

The way we typically have people fix that is to just run the game from the in a window from the terminal ('bzflag -window') and once started, set a valid full screen mode.
"In addition to knowing the secrets of the Universe, I can assure you that I am also quite potty trained." -Koenma (Yu Yu Hakusho)

Image
Avatar
Private First Class
Private First Class
Posts: 132
Joined: Sun Sep 18, 2005 9:28 pm

Re: 2.0.14/ATI/Ubuntu Karmic Fullscreen Fix

Post by Avatar »

Which I had tried. The game would go full screen upon switching the video mode, but would fail if you ever pressed F1. Also, even after a successful exit (after saving settings), it seemed the client would "forget" and go back to trying to set an improper mode, as detailed above, the next time it was launched. I know it doesn't make sense, but it almost seems like the resolution list data it's receiving from X is different when run in window mode (despite appearing to be the same when viewed through the client list) and the items in the list are only valid for that instance. It's weird. I just know that trying to set a permanent mode from windowed fails to solve the problem, though the steps above did the trick.
And the lesson for tonight is:

Never underestimate the ability of a newb to expect instant success and cry "cheat!" when they don't get it. Don't hate the newb, just give them plenty of learning opportunities. ;)
User avatar
Cobra_Fast
Dev Monkey
Dev Monkey
Posts: 322
Joined: Sat Oct 07, 2006 11:51 am
Location: Germany
Contact:

Re: 2.0.14/ATI/Ubuntu Karmic Fullscreen Fix

Post by Cobra_Fast »

I had this problem quiete a time ago when I also was using Linux on my old machine.
The only solution working is to start the game windowed each time and set a proper resolution in the game's settings menu.
You could also try starting it fullscreen with the geometry option set, like bzflag -g 800x600 (or something) (please correct me if i got that wrong).
The only solution of getting rid of it is either to buy a nvidia card or install windows ^^
Avatar
Private First Class
Private First Class
Posts: 132
Joined: Sun Sep 18, 2005 9:28 pm

Re: 2.0.14/ATI/Ubuntu Karmic Fullscreen Fix

Post by Avatar »

Okay, looking through bug reports, I discovered that DRI in the radeon drivers became broken with the release of Mesa (DRI and GLX) 7.6 and still hasn't been properly fixed. The suggested fix right now is to downgrade libgl1-mesa-dri to version 7.5.1 (libgl1-mesa-glx may remain at the current highest stable version if you want, though). I've performed the suggested downgrade and tested bz on it and am now reliably getting it to run in fullscreen mode from launch, at any desired available resolution and without screams of XF86 errors or segfaults. For full instructions on what to do, please refer to the following Launchpad bug comment:

https://bugs.launchpad.net/ubuntu/+sour ... omments/37

Remember to download the .deb package to your machine and run dpkg from a terminal window. GDebi will not let you apply the downgrade version directly - you would first have to uninstall mesa dri completely (which also uninstalls bzflag, compiz, ubuntu-desktop, xorg, vlc, and probably a whole LOT of other programs). Using dpkg from the terminal will apply the downgraded version to the system without having to uninstall anything first.
And the lesson for tonight is:

Never underestimate the ability of a newb to expect instant success and cry "cheat!" when they don't get it. Don't hate the newb, just give them plenty of learning opportunities. ;)
Post Reply