http://bugs.winehq.org/show_bug.cgi?id=34398
--- Comment #8 from Ken Thomases ken@codeweavers.com 2013-10-08 19:46:43 CDT --- Thanks for looking into this. I appreciate the additional eyes.
That spec for glxChooseFBConfig() is interesting and explains the X11 driver's behavior. The question is, how is wglChoosePixelFormatARB() supposed to behave. Does it have a similar documented bias toward deeper depth buffers. (That bias is a bit weird, though. Why support multiple depth buffer sizes for otherwise-identical pixel formats? Why not just have 0 and max if the intermediate ones aren't going to be chosen?)
The spec for wglChoosePixelFormatARB() says that the returned pixel format's depth buffer must equal or exceed the requested WGL_DEPTH_BITS_ARB. Beyond that, it says that the best pixel formats are returned earlier in the list but that the definition of "best" is device-specific.
https://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
Regarding the 10x10 window: I believe that that is the temporary window created by WineD3D when it probes the GL capabilities.
http://source.winehq.org/source/dlls/wined3d/directx.c?v=wine-1.7.3#L326
The log shows another GL view being created later. That has a more sensible size:
0009:trace:wgl:set_win_format created GL view 0x7ba52f90 in window 0x7bd3de20 at (0,0)-(1440,887)
Another thing occurs to me. I wonder if the games are using glu32. Glu32 is one of the only places (maybe the only place) left outside of winex11.drv where Wine has a dependency on X11. So, glu32 can work when the X11 driver is in use but can't with the Mac driver. Sometimes that results in crashes, but sometimes just in failure to render.
The +glu debugging channel is mostly worthless. I think a +module log would show if glu32 is loaded. A +relay log would definitely show calls into glu32, but seems like overkill. You could also try disabling glu32 using a DLL override. That would probably result in the games failing to launch with either driver. If you care to, you could also test with CrossOver, which has a hack to support glu32 with the Mac driver. (Alexandre doesn't want that hack in Wine. He has an idea for how to fix glu32 properly, but not the time to do it.)