OSX 10.5 - XQuartz 2.3.3 - GLX issue

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
mastorak
Level 1
Level 1
Posts: 5
Joined: Wed Mar 11, 2009 6:08 am

OSX 10.5 - XQuartz 2.3.3 - GLX issue

Post by mastorak »

Hi all,

A couple of days ago I decided to give wine on a mac a try 'cause I got bored of dual booting my mac. I ve been A linux-wine user for years and I had some pretty good results with it. I figured that i would have the same results on a mac(Intel based) but i guess I was wrong.

I got my version (wine-devel packet wine 1.1.16) from macports. Got winetricks as well.
Everything were setup fine and everything was working fine. I got some windows programs running as well just for testing. So far so good.

I also installed XQuartz version 2.3.2.1

When I got to the part to make a game run though that was a different deal.
I decided to start with a Platinum game so i got my half life 2 retail copy out to give it a try.
It installed fine no problems launched from steam as well. But then the log gave me a

Code: Select all

rr:wgl:has_opengl  glx_version is 1.2 and GLX_SGIX_fbconfig extension is unsupported. Expect problems. 
I suspected it had something to do with X11 implementation so I checked over at xquartz site and found this ticket discussion
http://xquartz.macosforge.org/trac/ticket/122

at the bottom of the ticket thread JeremyHu is providing a beta version of 2.3.3 that supposedly solves the issue as the ticket is set to resolved
http://static.macosforge.org/xquartz/do ... _beta1.dmg
i tried it and I can report that it is not giving the same error code however it is not working for me either.
The game launches but the x11 refuses to render the game on the screen i can hear sound though. I move a finder window over the screen in order to make it render something and the Valve logo is showing it stays for a few seconds and then crashes.

Bottom line is that it is not working. Has anyone have better luck than me with this.[/code]
James Mckenzie

OSX 10.5 - XQuartz 2.3.3 - GLX issue

Post by James Mckenzie »

mastorak <[email protected]> wrote on March 11th:
Hi all,

A couple of days ago I decided to give wine on a mac a try caused I got bored of dual booting my mac. I ve been A linux wine user for years and I had some pretty good results with it. I figured that i would have the same results on a mac but i guess I was wrong.

I got my version (wine-devel packet wine 1.1.16) from macports. Got winetricks as well.
Everything were setup fine and everything was working fine. I got some windows programs running as well just for testing. So far so good.

I also installed XQuartz version 2.3.2.1

When I got to the part to make a game run though that was a different deal.
I decided to start with Platinum game so i got my half life retail copy out to give it a try.
It installed fine no problems launched from steam as well. But then the log gave me a

Code:
rr:wgl:has_opengl glx_version is 1.2 and GLX_SGIX_fbconfig extension is unsupported. Expect problems.



I suspected it had something to do with X11 implementation so i checked over at xquartz site and found this ticket discussion

JeremyHu is providing a beta version of 2.3.3 that supposedly solves the issue as the ticket is set to resolved
Is this a release from XQuartz? If not, then it is not official and should not be used.
i tried it and I can report that it is not giving the same error code however it is not working
for me either.
It is good to see the error code is gone, but the second item bothers me. See my comment below.
The game launches but the x11 refuses to render the game on the screen i can hear sound though. I
move windows over the screen in order to make it render something and the Valve logo is showing it
stays for a few seconds and then crashes.
Report this to the XQuartz team. Part of what they are trying to do is make OpenGL games work with XQuartz through Wine until a Mac specific port is developed. Please check if your game has one before reporting as the XQuartz team will tell you that as a response.

One question thought, and you did not state it here. Did you rebuild Wine after installing the beta? If not, appropriate functions are not included and thus Wine will appear broken.

James McKenzie
mastorak
Level 1
Level 1
Posts: 5
Joined: Wed Mar 11, 2009 6:08 am

Post by mastorak »

Hi James

thanks for taking time to answer to me.
Is this a release from XQuartz? If not, then it is not official and should not be used.
My guess is that this is not an "official" release but more of an internal development beta. It was provided by jeremyho who is developer of the xqurtaz team and maintainer of xorg on macports(from what i understand). This version was provided for testing on the thread regarding the glx wine on mac issue.
Report this to the XQuartz team. Part of what they are trying to do is make OpenGL games work with XQuartz through Wine until a Mac specific port is developed. Please check if your game has one before reporting as the XQuartz team will tell you that as a response.
I have already reported this on the xquratz site on the respective ticket thread.
I chose to test half life 2 because it is a Platinum wine game that is installing and running flawlessly on Linux with wine.
http://appdb.winehq.org/objectManager.p ... n&iId=2890
One question thought, and you did not state it here. Did you rebuild Wine after installing the beta? If not, appropriate functions are not included and thus Wine will appear broken.
I actually don't remember with which order i did it so i ll try again tonight and post results..
rwoodsmall
Level 2
Level 2
Posts: 20
Joined: Tue Feb 24, 2009 9:50 pm

Post by rwoodsmall »

The Xquartz 2.3.3 RC (http://static.macosforge.org/xquartz/do ... .3_rc1.dmg) does indeed have working OpenGL support with Wine. However, it looks to require an explicit workaround and recompile to enforce one of the GLX code paths in dlls/winex11.drv/opengl.c - the Codeweavers "Crossover Games" source has the code, but I can't get to it right now as I'm not at my normal location. Training...

As James notes, the new Xquartz stuff is still in beta/release candidate mode, and likely needs to be fixed upstream. It does work, though, with a bit of effort. I'll try to post directions later tonight if I can find the time.

-ryan
mastorak
Level 1
Level 1
Posts: 5
Joined: Wed Mar 11, 2009 6:08 am

Post by mastorak »

Hi again

I tried with the 2.3.3 rc1 xquartz and compiled afterwards wine 1.1.16.
The behavior was the same as before.
The application launched. The x11 window was out focus and refused to render until I moved the finder window around. It crashed after a few seconds.

rwoodsmall I passed what you said on the subject to the respecting xquartz thread along with the outcome. I would appreciate any other suggestion.

Here is the complete wine log of launching half life 2 until its crashes

Code: Select all

Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
fixme:advapi:SetEntriesInAclA 1 0x33f7dc 0x0 0x33f814
fixme:advapi:SetSecurityInfo stub
fixme:advapi:SetEntriesInAclA 1 0x33f7c8 0x0 0x33f810
fixme:advapi:SetSecurityInfo stub
fixme:advapi:SetEntriesInAclA 1 0x33f7e8 0x0 0x33f830
fixme:advapi:SetSecurityInfo stub
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
fixme:system:SetProcessDPIAware stub!
fixme:dwmapi:DwmIsCompositionEnabled 0x33e924
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
fixme:iphlpapi:NotifyAddrChange (Handle 0xe0f488, overlapped 0xe0f490): stub
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\freebl3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\js3250.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\nspr4.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\nss3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\nssckbi.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\nssdbm3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\nssutil3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\plc4.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\plds4.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\plugins\npnul32.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\smime3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\softokn3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\sqlite3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\ssl3.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\xpcom.dll") - Symbol NSGetModule not found
0[20c4c8]: nsNativeModuleLoader::LoadModule("C:\windows\gecko\0.9.1\wine_gecko\xul.dll") - Symbol NSGetModule not found
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:rundll32:WinMain Unable to load L"streamci"
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:ntdll:RtlpWaitForCriticalSection section 0x7bc8d3a4 "loader.c: loader_section" wait timed out in thread 0015, blocked by 0039, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x7bc8d3a4 "loader.c: loader_section" wait timed out in thread 0010, blocked by 0039, retrying (60 sec)
CellID: Fetching server list from CSDS. . .
fixme:process:SetProcessShutdownParameters (00000100, 00000000): partial stub.
fixme:urlmon:CoInternetSetFeatureEnabled 5, 0x00000002, 1, stub
fixme:urlmon:CoInternetSetFeatureEnabled 10, 0x00000002, 1, stub
CellID: CSDS returned 149 servers.
CellID: Connecting to 208.111.182.251:27031. . .
CellID: Connect to 208.111.182.251:27031 took 166 MS
CellID: Nothing beat our old best time of 63 MS
fixme:wave:widDsCreate DirectSoundCapture not implemented
fixme:wave:widDsCreate The (slower) DirectSound HEL mode will be used instead.
fixme:mixer:MIX_GetLineInfo MIXER_GETLINEINFOF_SOURCE 0 dst=0
fixme:mixer:MIX_GetLineInfo MIXER_GETLINEINFOF_SOURCE 0 dst=1
fixme:mixer:MIX_GetLineInfo MIXER_GETLINEINFOF_SOURCE 0 dst=2
err:ntdll:RtlpWaitForCriticalSection section 0xce6b74 "?" wait timed out in thread 0016, blocked by 0011, retrying (60 sec)
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
fixme:shdocvw:ViewObject_SetAdvise (0x326c608)->(1 00000002 0x1e83f50)
fixme:shdocvw:PersistStreamInit_InitNew (0x326c608)
fixme:shdocvw:WebBrowser_put_RegisterAsBrowser (0x326c608)->(ffffffff)
fixme:shdocvw:WebBrowser_put_RegisterAsDropTarget (0x326c608)->(ffffffff)
fixme:shdocvw:ViewObject_SetAdvise (0x326f618)->(1 00000002 0x1e84178)
fixme:shdocvw:PersistStreamInit_InitNew (0x326f618)
fixme:shdocvw:WebBrowser_put_RegisterAsBrowser (0x326f618)->(ffffffff)
fixme:shdocvw:WebBrowser_put_RegisterAsDropTarget (0x326f618)->(ffffffff)
fixme:win:RegisterDeviceNotificationA (hwnd=0x1008e, filter=0x33e0c8,flags=0x00000004),
	returns a fake device notification handle!
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
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
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:d3d_caps:IWineD3DImpl_FillGLCaps Invalid nVidia version string: "2.0 NVIDIA-1.5.36"
fixme:d3d:IWineD3DImpl_FillGLCaps OpenGL implementation supports 16 vertex samplers and 16 total samplers
fixme:d3d:IWineD3DImpl_FillGLCaps Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers
fixme:win:EnumDisplayDevicesW ((null),0,0x33ce58,0x00000000), stub!
err:d3d:getColorBits Unsupported format: WINED3DFMT_R16G16B16A16_FLOAT
fixme:shdocvw:ViewObject_SetAdvise (0x32c8290)->(1 00000002 0x1e8e398)
fixme:shdocvw:PersistStreamInit_InitNew (0x32c8290)
fixme:shdocvw:WebBrowser_put_RegisterAsBrowser (0x32c8290)->(ffffffff)
fixme:shdocvw:WebBrowser_put_RegisterAsDropTarget (0x32c8290)->(ffffffff)
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
fixme:shdocvw:OleInPlaceObject_InPlaceDeactivate (0x32c8290)
fixme:shdocvw:OleInPlaceObject_UIDeactivate (0x32c8290)
fixme:shdocvw:OleObject_Close (0x32c8290)->(1)
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
Xlib:  extension "Generic Event Extension" missing on display "/tmp/launch-cS1OgT/:0".
err:d3d_caps:IWineD3DImpl_FillGLCaps Invalid nVidia version string: "2.0 NVIDIA-1.5.36"
fixme:d3d:IWineD3DImpl_FillGLCaps OpenGL implementation supports 16 vertex samplers and 16 total samplers
fixme:d3d:IWineD3DImpl_FillGLCaps Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers
fixme:win:EnumDisplayDevicesW ((null),0,0x33e058,0x00000000), stub!
err:d3d:getColorBits Unsupported format: WINED3DFMT_R16G16B16A16_FLOAT
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0000: stub!
err:d3d:getColorBits Unsupported format: WINED3DFMT_R16G16B16A16_FLOAT
err:d3d:getColorBits Unsupported format: WINED3DFMT_R16G16B16A16_FLOAT
err:d3d:getColorBits Unsupported format: WINED3DFMT_R32_FLOAT
err:d3d:getColorBits Unsupported format: WINED3DFMT_R32G32B32A32_FLOAT
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2387
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) @ surface.c / 2389
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) @ surface.c / 2391
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE) @ surface.c / 2393
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MIN_FILTER, GL_NEAREST) @ surface.c / 2395
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MAG_FILTER, GL_NEAREST) @ surface.c / 2397
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2406
fixme:d3d_surface:surface_allocate_surface >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexImage2D @ surface.c / 408
fixme:d3d_surface:read_from_framebuffer_texture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glCopyTexSubImage2D @ surface.c / 1037
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x16e968) : stub

babylon:~ mastorak$ fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2387
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) @ surface.c / 2389
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) @ surface.c / 2391
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE) @ surface.c / 2393
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MIN_FILTER, GL_NEAREST) @ surface.c / 2395
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MAG_FILTER, GL_NEAREST) @ surface.c / 2397
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2406
fixme:d3d_surface:surface_allocate_surface >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexImage2D @ surface.c / 408
fixme:d3d_surface:read_from_framebuffer_texture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glCopyTexSubImage2D @ surface.c / 1037
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x16e968) : stub
fixme:font:WineEngAddFontResourceEx Ignoring flags 10
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e308 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x10c2cad8) : pBox=0x33e35c stub
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x16e968) : stub
fixme:font:WineEngAddFontResourceEx Ignoring flags 10
fixme:font:WineEngAddFontResourceEx Ignoring flags 10
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2387
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) @ surface.c / 2389
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) @ surface.c / 2391
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE) @ surface.c / 2393
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MIN_FILTER, GL_NEAREST) @ surface.c / 2395
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MAG_FILTER, GL_NEAREST) @ surface.c / 2397
fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2406
fixme:d3d_surface:surface_allocate_surface >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexImage2D @ surface.c / 408
fixme:d3d_surface:read_from_framebuffer_texture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glCopyTexSubImage2D @ surface.c / 1037
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x16e968) : stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:d3d_surface:IWineD3DVolumeImpl_LockBox (0x100ce1c8) : pBox=0x33e384 stub
fixme:wave:wodDsCreate DirectSound not implemented
fixme:wave:wodDsCreate The (slower) DirectSound HEL mode will be used instead.
fixme:wave:wodDsCreate DirectSound not implemented
fixme:wave:wodDsCreate The (slower) DirectSound HEL mode will be used instead.
fixme:d3d_draw:drawStridedFast >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glDrawElements @ drawprim.c / 276
fixme:d3d_draw:drawStridedFast >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glDrawElements @ drawprim.c / 276
fixme:d3d_draw:drawStridedFast >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glDrawElements @ drawprim.c / 276
fixme:font:WineEngRemoveFontResourceEx :stub
fixme:font:WineEngRemoveFontResourceEx :stub
fixme:avifile:AVIFileExit (): stub!
fixme:winmm:MMDRV_Exit Closing while ll-driver open
rwoodsmall
Level 2
Level 2
Posts: 20
Joined: Tue Feb 24, 2009 9:50 pm

Post by rwoodsmall »

I generally compile Wine from source, and install into /usr/local/software/wine/wine-1.X.X - this allows you to keep multiple versions around for testing. Set paths appropriately in your shell, and using multiple versioned Wine installs is as easy as using multiple WINEPREFIXes. Things to keep in mind: just because something is listed as platinum in one version doesn't mean it will be platinum in the version you're running; there could have been a regression in the devel version where a fixed bug causes another issue to pop up. Keeping multiple versions around is a fantastic way to test for regressions. I run my Steam games under a purchased copy of CrossOver Games Mac, Gothic I and II from http://gog.com under custom-compiled Wine 1.0.1 and Morrowind under another custom-compiled Wine built from CodeWeavers' CrossOver Games distributed source from http://www.codeweavers.com/products/source. Find a platinum app on a newish version, and go with that for your testing; leave multiple versions around to check for regressions; etc.

All this being said, the easiest/most minimal workaround is to patch the file dlls/winex11.drv/opengl.c to force a certain GLX codepath. Around line 486 in the file (at least in latest 1.1.16 devel) you can change this:

Code: Select all

} else if(glxRequireExtension("GLX_SGIX_fbconfig")) {
to read something like this:

Code: Select all

} else if(
#ifdef __APPLE__
              TRUE ||
#endif
glxRequireExtension("GLX_SGIX_fbconfig")) {
After making the change, recompile, making sure you're linking to the Xquartz OpenGL lib (/usr/X11/lib/libGL.dylib) and using the proper headers (/usr/X11/include). If you're using MacPorts or Fink, make sure they're not in your environment - there can be strange conflicts if you're not careful.

GCC on Mac OS X defines "__APPLE__" so basically, if that's defined, it forces the setup for the more "flexed," stable SGIX_fbconfig GLX extension to be used instead of either finding the GLX 1.3+ config (which may or may not work, as Xquartz+OpenGL is a moving target) or dropping out with the "expect problems" message you first reported.

Saw your bug report on the Xquartz tracker - http://xquartz.macosforge.org/trac/ticket/122. The SGIX_fbconfig code behaves much better with Xquartz than anything else I've found. X11 on OS X has been something of a second-class citizen, and still remains so, though Jeremy and George are doing fantastic work. The 2.3.3 and 2.4.0 beta/RC stuff, though, uses a completely retooled libGL for X11 that basically sits atop the system's OpenGL framework and utilizes it wherever possible. I've used Wine happily on Linux/BSD in the past, but after months of reading code (Wine and Xquartz), Direct3D is finally in a nearly-working state - good enough for me to play my favorite games, anyway.

The CrossOver Games source is a pretty great reference as well. If you want to see some workarounds to any Mac-specific problems, take a gander there and it can only help. Some of the work around are not the cleanest, but hey, they're something.

If anyone else has a near-stock open source Wine install working with OpenGL/Direct3D on their Mac, holler this way. I'd love to hear your experiences, workarounds, etc.! And if you have any questions, I can at least try to answer them...

-ryan
rwoodsmall
Level 2
Level 2
Posts: 20
Joined: Tue Feb 24, 2009 9:50 pm

Post by rwoodsmall »

On my way to the grocery store, I realized that code I sent was probably useless with the new Xquartz beta and Wine. D'oh.

An actual patch would look more like this:

Code: Select all

--- dlls/winex11.drv/opengl.c	2009-03-11 21:45:29.000000000 -0500
+++ dlls/winex11.drv/opengl.c	2009-03-11 21:46:56.000000000 -0500
@@ -478,12 +478,14 @@
      * the ATI drivers and from then on use GLX client information for them.
      */
 
+#ifndef __APPLE__
     if(glxRequireVersion(3)) {
         pglXChooseFBConfig = pglXGetProcAddressARB((const GLubyte *) "glXChooseFBConfig");
         pglXGetFBConfigAttrib = pglXGetProcAddressARB((const GLubyte *) "glXGetFBConfigAttrib");
         pglXGetVisualFromFBConfig = pglXGetProcAddressARB((const GLubyte *) "glXGetVisualFromFBConfig");
         pglXQueryDrawable = pglXGetProcAddressARB((const GLubyte *) "glXQueryDrawable");
     } else if(glxRequireExtension("GLX_SGIX_fbconfig")) {
+#endif
         pglXChooseFBConfig = pglXGetProcAddressARB((const GLubyte *) "glXChooseFBConfigSGIX");
         pglXGetFBConfigAttrib = pglXGetProcAddressARB((const GLubyte *) "glXGetFBConfigAttribSGIX");
         pglXGetVisualFromFBConfig = pglXGetProcAddressARB((const GLubyte *) "glXGetVisualFromFBConfigSGIX");
@@ -492,6 +494,7 @@
          * enable this function when the Xserver understand GLX 1.3 or newer
          */
         pglXQueryDrawable = NULL;
+#ifndef __APPLE__
      } else if(strcmp("ATI", WineGLInfo.glxClientVendor) == 0) {
         TRACE("Overriding ATI GLX capabilities!\n");
         pglXChooseFBConfig = pglXGetProcAddressARB((const GLubyte *) "glXChooseFBConfig");
@@ -507,6 +510,7 @@
     } else {
          ERR(" glx_version is %s and GLX_SGIX_fbconfig extension is unsupported. Expect problems.\n", WineGLInfo.glxServerVersion);
     }
+#endif
 
     if(glxRequireExtension("GLX_ATI_render_texture")) {
         use_render_texture_ati = 1;
That's what I'm using with Wine 1.1.16 and Xquartz 2.3.3 RC1. Gothic, which is Direct3D, works fine, as do some OpenGL programs in Windows. YMMV!

-ryan
mastorak
Level 1
Level 1
Posts: 5
Joined: Wed Mar 11, 2009 6:08 am

Post by mastorak »

rwoodsmall

thanks for your suggestions I ll try them out. What you are suggesting makes sense epsecially after looking the wine logs. In the mean time it seems that the issue in xquartz is reopened. I think you could contribute your experience on the discussion there. The guys there are doing a fantastic job.
btw The ticket is renamed to GLX:wine doesn't play ball :-)

http://xquartz.macosforge.org/trac/ticket/122
mastorak
Level 1
Level 1
Posts: 5
Joined: Wed Mar 11, 2009 6:08 am

Post by mastorak »

Jeremy and George from the xQuartz team were really helpful and solved this problem.
The bug fixes that came out will be included in the upcoming release of xquartz and will be available form 2.3.3.rc2 version.
Wine did not seem to be using the underlying opengl implementation for xquartz. Jeremy and George found out that setting the "emulate virtual desktop" property does the trick for some reason and opengl is used from wine.
0xbc
Level 1
Level 1
Posts: 5
Joined: Fri Mar 13, 2009 6:51 pm

Post by 0xbc »

mastorak wrote:Jeremy and George found out that setting the "emulate virtual desktop" property does the trick for some reason and opengl is used from wine.
Woo! I've been following this thread, and that got me over the line. I had been experiencing very similar symptoms to the OP previously. I'm using XQuartz 2.3.3RC1 and a vanilla Wine install from Macports (running on a unibody Macbook Pro), and setting "Emulate Virtual Desktop" using winecfg has things happening for me. I've been able to play Rollercoaster Tycoon 2 perfectly, and Sid Meier's Pirates seems to be sort of working. (3d models appear as blank white areas, as do any video sequences). Both titles I had to get no-CD cracks for, because the ioctl for "CDROM verify" doesn't appear to be implemented on OS X. Sound works fine.

Exciting stuff - if anyone wants me to try some stuff on OS X, shoot me a message. I'm also comfortable developing in C/C++ if it requires dinking with the Wine sources, although I don't have experience with the Wine and X11 sources per se.
Locked