https://bugs.winehq.org/show_bug.cgi?id=53372
--- Comment #8 from Patrick Hibbs hibbsncc1701@gmail.com --- Created attachment 72806 --> https://bugs.winehq.org/attachment.cgi?id=72806 wine-7.13 crash on Intel Iris Plus Graphics (Ice Lake) with WINEDEBUG=+d3d,+d3d9,+opengl,+wgl,+seh
For laughs, I tried running the game under vanilla wine-7.13 on a Surface Pro 7. (Intel iGPU Intel Corporation Iris Plus Graphics G4 (Ice Lake) (rev 07). FYI, this gets misdetected by wine due to an unknown device ID. I should probably send a patch for the gpu list...)
The game has never worked for me under wine on this device. It always crashes on the splash screen even before wine-7.13. (I'll open another bug for this one, but I'll attach the log here for completeness sake. It has WINEDEBUG=+d3d,+d3d9,+opengl,+wgl,+seh flags set.)
However, I thought it might give some clues and I think I got a couple. The game crashes due to a EXCEPTION_ACCESS_VIOLATION error on this device, but it also echos something else at the last second: "** Downsizing Textures, Over Budget by : 115 Mb"
I've never seen that message before on my other systems. So I'm not sure why it's showing up here. (Maybe because it's not an nvidia GPU?) For fun, I tried running the game under wine-7.11 and there the message appears right before the D3DXLoadSurfaceFromMemory() unhandled filter fixme spam. Instead of after it as on wine-7.13. So it seems like we have a thread racing / sync issue.
Looking at the actual fixme complaint indicates that the unimplemented filter is D3DX_FILTER_BOX. MSDN seems to indicate that it is meant for down-sampling a texture. (If averaging a group of pixels is anything to go by. Admittedly, 3D work is not my realm of expertise.) Looking at the wine code https://source.winehq.org/source/dlls/d3dx9_36/surface.c#2120 we see that filter is indeed unimplemented. This fixme gets printed a lot even during normal operation of the game. Despite the lack of the "downsizing textures" message on my other systems. So perhaps if the filter was implemented the VA exhaustion issue might get a little better.