Author Topic: Possible fix for opengl problems with ATi drivers  (Read 7129 times)

kreller

  • Posts: 1
  • Turrets: +0/-0
Possible fix for opengl problems with ATi drivers
« on: January 30, 2008, 03:01:57 pm »
Like others many other ATi users, I had the GLW_StartOpenGL() error when I tried to run Tremulous and other quake3 source-based games. It appears to be a general problem with OpenGL in the ATi drivers. I think I've found the cause and the solution to the problem, and I'm posting here in case others can benefit from it. I'm using Windows XP on a Toshiba laptop, and the integrated graphics in my case is an ATi Radeon x1400.

Using the OpenGL Extension Viewer, you can see which implementation of OpenGL is the one in use in Windows XP. In my case, it turned out to be Generic GDI (software-based OpenGL supplied by Microsoft), no matter which driver I tried, and I've tried them all (Catalyst version 7.9 to 8.1, Omega drivers, official display driver from Toshiba, etc). After quite a bit of googling, I found out that the default OpenGL implementation is specified in the following key in the windows registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers

So I went in using regedit to see if everything was okay. I turned out that I didn't have the right permission to even view that key. By right-clicking on it, you can try to change the read/write permissions or take ownership of the key, but it kept telling me that I couldn't do that. To solve that problem, I used PsExec from PsTools to run regedit as SYSTEM:

psexec -s -i regedit

Taking ownership of keys is now a piece of cake. Give youself full rights to the "OpenGLDrivers" key and delete it and all its contents. Deleting it might not be necesary - this is just to be on the safe side. Then re-create it using the following reg script (put it in a file called openglati.reg or something like that)

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\ati2dvag]
"Version"=dword:00000002
"DriverVersion"=dword:00000001
"Flags"=dword:00000001
"Dll"="atioglxx.dll"


Double click on this file in explorer, and if your problem was anything like mine, this should fix it :)

I think the lack of permissions might have been the reason why the ATi opengl implementation didn't work, but I'm just guessing here. Anyway, OpenGL Extension Viewer should now report ATi's implementation, and not Microsoft's, and tremulous/ioquake3/etc should all work now.