Sunday, March 22, 2009

Direct3D9 is not available without opengl ... EVE Online ... and other games


I was using fedora 9 and attempting to install EVE Online, and was unable to get past the splash screen after an otherwise successful install using wine-1.1.17. I was getting the following errors:
$ wine eve.exe
err:ole:CoGetClassObject class {9a5ea990-3034-4d6f-9128-01f3c61022bc} not
registered
err:ole:CoGetClassObject no class object
{9a5ea990-3034-4d6f-9128-01f3c61022bc} could be created for context 0x1
fixme:heap:HeapSetInformation 0x8d0000 0 0x33fc70 4
err:d3d:WineD3D_CreateFakeGLContext Can't find a suitable iPixelFormat
err:d3d:InitAdapters Failed to get a gl context for default adapter
err:d3d:WineDirect3DCreate Direct3D9 is not available without opengl
This was kind of confusing because opengl was working just fine with my nVidia drivers on the machine as follows:
$ glxinfo | grep direct
direct rendering: Yes
Well, here are the basic commands and steps i used to correct the problem and start playing EVE Online:
1. rm -rf ~/.wine
2. remove the following packages that do NOT work for EVE Online
3. installed the following packages so that wine would work better. Obviously not all of those packages are necessary to get wine to compile, but that's what the following step's page suggested we install in order to get a clean wine compile on 64bit fedora 9.
4. recompiled wine-1.1.17 with this procedure
5. wine winecfg (and set the audio to the ALSA that it defaulted to).
6. sh winetricks corefonts
7. wine EVE_Premium_Setup_84609_m.exe (installing EVE)
And now everything is working as you can see from the screenshot of me undocking from a station above (click to enlarge :-).

The main things I was apparently missing were the following packages before installing wine:
kmod-nvidia-beta.x86_64 180.11.02-1.fc9.2 installed
xorg-x11-drv-nvidia-beta-libs.i386 180.11.02-2.fc9 installed
xorg-x11-drv-nvidia-beta.x86_64 180.11.02-2.fc9 installed
I was using these which did NOT work:
kmod-nvidia.x86_64 173.14.15-1.fc9.11 installed
xorg-x11-drv-nvidia-libs.x86_64 173.14.15-2.fc9 installed
xorg-x11-drv-nvidia.x86_64 173.14.15-2.fc9 installed
So basically, use version 180 of the nvidia drivers, instead of the more common 173. Here is some more info about what I'm running here:
# uname -r
2.6.27.19-78.2.30.fc9.x86_64
# lspci | grep nV
01:00.0 VGA controller: nVidia Corporation GeForce 8500 GT (rev a1)
# wine --version
wine-1.1.17
Hope that helps someone.

UPDATE: the next patch installed just fine using the command:
wine evepremiumpatch84609-85476_m.exe
UPDATE: the next patch also installed just fine using the command:
wine evepremiumpatch85476-86756_m.exe
UPDATE: the next patch also installed fine using the command:
$ wine evepremiumpatch86756-88737_m.exe
UPDATE: the next patch also installed fine using the command:
$ wine evepremiumpatch88737-88974_m.exe
UPDATE: the next patch also installed fine as follows:
$ wine evepremiumpatch88974-89883_m.exe
fixme:shell:SHAutoComplete SHAutoComplete stub
fixme:exec:SHELL_execute flags ignored: 0x00000180
fixme:advapi:CheckTokenMembership ((nil) 0x13b920 0x33fb44) stub!
fixme:reg:GetNativeSystemInfo (0x33fb38) using GetSystemInfo()
fixme:mscoree:GetCORVersion (0x33f730, 600, 0x33f71c): semi-stub!
err:setupapi:do_file_copyW Unsupported style(s) 0x144
$

3 comments:

Anonymous said...

Thanks a ton, this solved it for me too.

For anybody else who reads this, I was using the 180.60 driver, and switched to 190.25 (beta).

Vernon Singleton said...

So apparently was not the version of kmod-nvidia that was the problem. It looks like it was the fact that it was the "beta" configuration of the package that fixed the issue.

Anonymous said...

My stopping point: glxinfo returns
name of display: :0.0
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual

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
----------------------------------------------------------------------
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
0x21 24 tc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
0x22 24 dc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
0x3a 32 tc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None

Which doesn't lead my to your solution