Starcraft 2 Shader Compilation in Arcade Games

Hi, I’ve been using Lutris for awhile now to play Starcraft 2, and it’s working great! Way faster than on Windows!

Unfortunately, I’ve ran into one issue. Some games on the arcade import extra assets (especially from Warcraft 3), and these will cause the entire game to crash in the loading screen. I receive this error: e_gfxErrorShaderCompileFailed

I read around and the common solution is to install d3dcompiler_43 via Winetricks, which I have done to no avail… More specifically, I tried:

WINEPREFIX=/mnt/extended/Lutris/starcraft-ii winetricks d3dx9 d3dx9_43 xact_jun2010 d3dcompiler_43

Here are some specs/settings: OpenSUSE Tumbleweed, Proprietary Nvidia drivers on GTX 960, using Wine 3.3 PBA, d3dcompiler_43 set to native. CSMT and VAAPI as backend for DXVA2 disabled (I did try with enabled though). Running Lutris 0.4.14. I can provide additional information upon request.

I was hoping we could get together, test solutions, and push it to the script on the site.

On another, more broad note, does Lutris have the capability to update installations from newer available scripts? Like if we added a dependency to the Lutris script for Starcraft 2, can clients download that dependency without reinstalling the entire game? And if not, could we add this capability?

Thanks in advance. This community is truly amazing.

Can you try the following (I posted it in the bug report):

Game exe in “Versions/Base63454” cannot find the “D3DCompiler_42.dll” in the Support64 folder. Could you test if copying the dll to “Versions/Base63454” and setting it to native in winecfg fixes the issue?

PS1: pba requires/fixes CSMT
PS2: No, existing prefixes are not changed. You will have to install another copy of the game in a new prefix should I change the script.

1 Like

Oh, and could you give me instructions to an arcade map I could test solo that causes the crash? I have only played the campaigns once, so never encountered any errors myself.

Mines and Magic by Zolden, and Ant Colonies AntNob by galsss v3.40 were two games that I know did not work before. However, the fix you suggested has worked perfectly! Copying D3DCompiler_42.dll to Starcraft II\Versions\Base63454\ and setting to native has fixed the problem, I no longer crash during loading!

When can we expect to get this pushed to the Lutris installer?

Thanks so much!

Gotta test if winetricks d3dcompiler_42 works (since 43 for some reason doesn’t as you say). And then I’m going to wait till the 3.5 pba wine build is ready.

Can’t do the copy of the file in the installer, since we don’t know where the user will end up installing it.

1 Like

Seems there is no winetricks d3dcompiler_42. But with 43 I’m able to get into AntNob test map and into Mines and Magic.

EDIT: And just copying d3dcompiler_42 does not work for me (setting it to native or not), tested with a fresh prefix.

This is strange behavior. I tried deleting the D3DCompiler_42.dll from my Starcraft II\Versions\Base63454\ folder, then removing the setting for d3dcompiler_42 as native and setting d3dcompiler_43 to native. And it crashed after that.

I will make another, fresh Wine prefix and test.

I made a testing prefix with the latest installer. I think my other prefix used an older installer or something.

Can confirm WINEPREFIX=/mnt/extended/Lutris/starcraft-ii winetricks d3dcompiler_43 and d3dcompiler_43 set to native works! No moving of files is necessary.

After doing the winetricks d3dcompiler_43 thingy everything works flawless here. Thank you guys <3

Blockquote
Can confirm WINEPREFIX=/mnt/extended/Lutris/starcraft-ii winetricks d3dcompiler_43 and d3dcompiler_43 set to native works! No moving of files is necessary.

Edit: I made the mistake to install battlenet via lutris and from there starcraft2. It works out of the box for me when I explicitly install starcraft2 via lutris. Dont even need to do the winetricks quoted.
Before I tried the winetricks solution on battlenet not starcraft2 which made me come here in the first place.

In the legacy of the void campaign, after mission 3 of the campaign, the game crashes. I solved it by installing d3dcompiler_47 with winetricks and set to native too