D3D problem... Mac Specific?

Questions about Wine on macOS.
Locked
phnord
Newbie
Newbie
Posts: 1
Joined: Mon Jan 10, 2011 9:04 pm

D3D problem... Mac Specific?

Post by phnord »

I don't know if this is the right place for this; but seeing as it's the only publicly accessible forum on winehq I thought I'd try here first.

I've been trying to run a couple of games by Nifflas. His older games, Knytt, Knytt Stories, and Within A Deep Forest all run perfectly with the correct Microsoft Visual C++ Runtime Libraries installed.

However, his latest two - Saira and NightSky - will boot, but refuse to draw to the window. The games are windowed; but I have tried them on a virtual desktop and had the same problems.

According to this account of an attempt in Ubuntu, this issue doesn't appear to happen on Linux.

I've gone through the logs and appear to have isolated a series of errors that happen in any of his games that refuse to draw. They are as follow.

-----

First, the log spits out:

Code: Select all

fixme:win:EnumDisplayDevicesW ((null),0,0x33f68c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f7ac,0x00000000), stub!
Then it goes into a loop which has something to do with failing to create draw contexts.  Each iteration of the loop varies.  First there is an error that looks like:

Code: Select all

wine[99527] <Error>: unknown error code: invalid drawable
The *first* iteration of this loop is accompanied by:

Code: Select all

wine[99527] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
Then the loop goes on...

Code: Select all

set off screen: invalid drawable
err:d3d:context_set_current Failed to make GL context *CONTEXTADDR* current on device context 0x6bc, last error 0.
err:d3d:context_create Cannot activate context to set up defaults
Where "CONTEXTADDR" changes with each iteration.

If this is not the first iteration of the loop, this is followed by:

Code: Select all

err:d3d:context_release Failed to restore GL context *PREVCONTEXTADDR* on device context 0x6bc, last error 0x7d0.
Where "PREVCONTEXTADDR" is the context address used in the *last* iteration of the loop.

-----

Then the loop branches into one of four directions.  Sometimes it just continues past this point, but the other times one of the following sets of errors is generated:

Code: Select all

fixme:d3d:getFormatDescEntry Can't find format WINED3DFMT_R24_UNORM_X8_TYPELESS(73) in the format lookup table
fixme:d3d:getDepthStencilBits Unsupported stencil format: WINED3DFMT_UNKNOWN
Or

Code: Select all

err:d3d:WineD3D_ChoosePixelFormat Can't find a suitable iPixelFormat
Or, if it is the last time going through the loop:

Code: Select all

err:d3d:WineD3D_ChoosePixelFormat Can't find a suitable iPixelFormat
-----

This is always followed by the following log:

Code: Select all

path: *SEQUENTIALADDR*
Where "SEQUENTIALADDR" goes up by an arbitrary amount with each loop

-----

Finally, the loop again branches - this time in three directions.  Sometimes it just continues past this point, but roughly half the time the following error is generated:

Code: Select all

err:d3d:context_create wglShareLists(0x0, *NEXTCONTEXTADDR*) failed, last error 0.
Where "NEXTCONTEXTADDR" is the context address used in the next iteration of the loop.

If it happens to be the *last* iteration of the loop, this branch instead produces:

Code: Select all

fixme:msvcr90:__clean_type_info_names_internal (0x3d89a0) stub
fixme:msvcr90:__clean_type_info_names_internal (0x78507750) stub
-----

In practice, this looks like this (NightSky used in example):

Code: Select all

 Monday, January 10, 2011 8:02:03 PM America/New_York 
fixme:win:EnumDisplayDevicesW ((null),0,0x33f68c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f7ac,0x00000000), stub!
path: 62387_0x400129
Mon Jan 10 20:02:26 new-host.home wine[99527] <Error>: unknown error code: invalid drawable
Mon Jan 10 20:02:26 new-host.home wine[99527] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
set off screen: invalid drawable
err:d3d:context_set_current Failed to make GL context 0x1e4b08 current on device context 0x6bc, last error 0.
err:d3d:context_create Cannot activate context to set up defaults
path: 62387_0x40012a
Mon Jan 10 20:02:26 new-host.home wine[99527] <Error>: unknown error code: invalid drawable
set off screen: invalid drawable
err:d3d:context_set_current Failed to make GL context 0x1e4ba8 current on device context 0x6bc, last error 0.
err:d3d:context_create Cannot activate context to set up defaults
err:d3d:context_release Failed to restore GL context 0x1e4b08 on device context 0x6bc, last error 0x7d0.
fixme:d3d:getFormatDescEntry Can't find format WINED3DFMT_R24_UNORM_X8_TYPELESS(73) in the format lookup table
fixme:d3d:getDepthStencilBits Unsupported stencil format: WINED3DFMT_UNKNOWN
path: 62387_0x40012b
err:d3d:context_create wglShareLists(0x0, 0x1e4c30) failed, last error 0.
Mon Jan 10 20:02:26 new-host.home wine[99527] <Error>: unknown error code: invalid drawable
set off screen: invalid drawable
err:d3d:context_set_current Failed to make GL context 0x1e4c30 current on device context 0x6bc, last error 0.
err:d3d:context_create Cannot activate context to set up defaults
err:d3d:context_release Failed to restore GL context 0x1e4ba8 on device context 0x6bc, last error 0x7d0.
path: 62387_0x40012c
Mon Jan 10 20:02:26 new-host.home wine[99527] <Error>: unknown error code: invalid drawable
set off screen: invalid drawable
err:d3d:context_set_current Failed to make GL context 0x1e4cb8 current on device context 0x6bc, last error 0.
err:d3d:context_create Cannot activate context to set up defaults
err:d3d:context_release Failed to restore GL context 0x1e4c30 on device context 0x6bc, last error 0x7d0.
err:d3d:WineD3D_ChoosePixelFormat Can't find a suitable iPixelFormat
path: 62387_0x40012d
err:d3d:context_create wglShareLists(0x0, 0x1de4e8) failed, last error 0.
Mon Jan 10 20:02:26 new-host.home wine[99527] <Error>: unknown error code: invalid drawable
set off screen: invalid drawable
err:d3d:context_set_current Failed to make GL context 0x1de4e8 current on device context 0x6bc, last error 0.
err:d3d:context_create Cannot activate context to set up defaults
err:d3d:context_release Failed to restore GL context 0x1e4cb8 on device context 0x6bc, last error 0x7d0.
err:d3d9:device_parent_CreateSwapChain (0x16ecec) CreateAdditionalSwapChain failed, returning 0x8876086a
err:d3d:IWineD3DDeviceImpl_Release Context array not freed!
path: 62387_0x40012e
fixme:msvcr90:__clean_type_info_names_internal (0x3f89a0) stub
fixme:msvcr90:__clean_type_info_names_internal (0x78507750) stub
-----

Any ideas as to what exactly is causing this, or how to fix it?
Locked