iXit / wine-nine-standalone

Build Gallium Nine support on top of an existing WINE installation
GNU Lesser General Public License v2.1
273 stars 23 forks source link

3DMark06 HDR/SM3.0 graphics tests are crashing #95

Closed lorn10 closed 3 years ago

lorn10 commented 3 years ago

Hi there

Here follows a short bug report regarding the DirectX 9.0c benchmark 3DMark06. I can confirm that the Shader Model 3.0 / HDR tests are crashing reproducibly right before they are performed. All other tests are running fine. Interestingly the very similar 3DMark05 benchmark is running completely error free. (This may be because the older version doesn't contain the same complex HDR PS 3.0 Shader programs.)

Note, I have tested this at an 32bit and 64bit Wine prefix.

The error output is: D3DXGetImageInfoFromFileInMemory failed: Invalid data (D3DXERR_INVALIDDATA) D3DXDisassembleShader failed: Ran out of memory (E_OUTOFMEMORY)

However, maybe this issue is not Gallium Nine v0.7 related. It could be also a Wine d3d problem because this happens also in a normal stock Wine 6.0 environment. Alternatively this matter could be even more complex and the problem is located in the Mesa Radeon (R600) Gallium driver (?).

The affected computer is an iMac 12,2 running latest Kubuntu 20.04 LTS (Kernel 5.4.0-66-generic) and Mesa 20.2.6. It has 16GB of memory installed. The GPU is a AMD Radeon HD 6770M with 512MB RAM.

Gallium Nine and d3dcompiler_47 were installed through winetricks:

winetricks -q galliumnine winetricks -q d3dcompiler_47

I had to install also two other mesa components. This should be really mentioned on the main page at the install instructions.

sudo apt-get install libd3dadapter9-mesa sudo apt-get install libd3dadapter9-mesa:i386

For more information please check the attachments.

PS There may be an indirect or direct relation of this bug to another bug reported here: https://github.com/iXit/wine-nine-standalone/issues/35

Screenshot_20210221_143926 Screenshot_20210221_161132

dungeon007 commented 3 years ago

As far as i see, you could try to replace override 'd3dx9_28.dll' as native there and not "d3dcompiler_47.dll".

If it is working with d3dx9_28.dll override to native, then that is a WINE bug.

lorn10 commented 3 years ago

Thanks for your fast replay!

Incredibly, it works now, winetricks -q d3dx9_28 effectively solved the problem. Great! So this is definitely a bug in WINE and not Gallium Nine. ;-) Will close that bug report here and open a new one at WINE bug tracker.

And regarding the 'd3dcompiler_47.dll', it seems to be still needed. That dll is currently not present in WINE so it has to be installed for certain applications like 3DMark06. Whatever, maybe there will be a WINE 'd3dcompiler_47.dll' replacement sometime in the feature.