PathOfBuildingCommunity / PathOfBuilding

Offline build planner for Path of Exile.
https://pathofbuilding.community
Other
3.99k stars 2.08k forks source link

[Linux] Crash when launch app #7436

Open lucassimon opened 7 months ago

lucassimon commented 7 months ago

Check version

Check for duplicates

Screenshots of crash/graphical issue, version and options menu

Hello,

I am linux user and I ran POB in the debian linux arch with wine.

When I update the POB to 3+24 and download the latests release I got this error

wine Path\ of\ Building.exe 
SimpleGraphic v2.0 x64 Release, built Mar 23 2024

Executing SimpleGraphic/SimpleGraphic.cfg
Warning: config file not found
Executing SimpleGraphic/SimpleGraphicAuto.cfg
Warning: config file not found
Executing Z:\home\lucas\arquivos\softwares\Path of Building Community\Launch.cfg
Warning: config file not found

--- UI Init ---
Script: Z:\home\lucas\arquivos\softwares\Path of Building Community\Launch.lua
Script working directory: Z:\home\lucas\arquivos\softwares\Path of Building Community
Initialising Lua...
Running script...
Please wait while we complete installation...

0108:err:winediag:ntlm_check_version ntlm_auth was not found. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0108:err:ntlm:ntlm_LsaApInitializePackage no NTLM support, expect problems
Checking for update...
No update available.

--- Render Init ---
GL_MAX_TEXTURE_SIZE: 16384
Loading OpenGL extensions...
using GL_EXT_texture_compression_s3tc
using GL_EXT_debug_marker
0138:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0138:err:d3dcompiler:D3DCompile2 Shader log:
0138:err:d3dcompiler:D3DCompile2     C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','
0138:err:d3dcompiler:D3DCompile2 
0140:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0140:err:d3dcompiler:D3DCompile2 Shader log:
0140:err:d3dcompiler:D3DCompile2     C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','
0140:err:d3dcompiler:D3DCompile2 
0138:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0138:err:d3dcompiler:D3DCompile2 Shader log:
0138:err:d3dcompiler:D3DCompile2     C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','
0138:err:d3dcompiler:D3DCompile2 
0140:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0140:err:d3dcompiler:D3DCompile2 Shader log:
0140:err:d3dcompiler:D3DCompile2     C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','
0140:err:d3dcompiler:D3DCompile2 
0138:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0138:err:d3dcompiler:D3DCompile2 Shader log:
0138:err:d3dcompiler:D3DCompile2     C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','
0138:err:d3dcompiler:D3DCompile2 
0140:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0140:err:d3dcompiler:D3DCompile2 Shader log:
0140:err:d3dcompiler:D3DCompile2     C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','
0140:err:d3dcompiler:D3DCompile2 

--- ERROR ---
Failed to link program:
C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with default flags. (vs_5_0)
 Retrying with skip validation
C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip validation flags. (vs_5_0)
 Retrying with skip optimization
C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip optimization flags. (vs_5_0)

C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with default flags. (ps_5_0)
 Retrying with skip validation
C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip validation flags. (ps_5_0)
 Retrying with skip optimization
C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip optimization flags. (ps_5_0)

Failed to create D3D Shaders

Did you know how to solve it?

What are your system specifications and configuration?

Linux

How to reproduce the issue

Linux, wine

Character build code

not applied
zao commented 7 months ago

Try winetricks d3dcompiler_47 to install the Microsoft shader compiler, see also https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/7413#issuecomment-2016657138 onward.

nReCon commented 7 months ago

Try winetricks d3dcompiler_47 to install the Microsoft shader compiler, see also #7413 (comment) onward.

This worked for me, thank you.

lucassimon commented 7 months ago

I tried

# lucas @ lucas-desktop-3 in ~/Downloads/winetricks-20240105 [17:38:47] 
$ sudo make install
[sudo] password for lucas: 
install -d /usr/bin
install src/winetricks /usr/bin/winetricks
install -d /usr/share/man/man1
install -m 644 src/winetricks.1 /usr/share/man/man1/winetricks.1
install -d /usr/share/applications
install -m 644 src/winetricks.desktop /usr/share/applications/winetricks.desktop
install -d /usr/share/metainfo
install -m 644 src/winetricks.appdata.xml /usr/share/metainfo/winetricks.appdata.xml
install -d /usr/share/icons/hicolor/scalable/apps
install -m 644 src/winetricks.svg /usr/share/icons/hicolor/scalable/apps/winetricks.svg
install -d /usr/share/bash-completion/completions
install -m 644 src/winetricks.bash-completion /usr/share/bash-completion/completions/winetricks

But I got

$ winetricks d3dcompiler_47  
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
------------------------------------------------------
WINEPREFIX INFO:
Drive C: total 28
drwxrwxr-x  7 lucas lucas 4096 ago 21  2023 .
drwxrwxr-x  4 lucas lucas 4096 mar 24 17:40 ..
drwxrwxr-x  3 lucas lucas 4096 abr 21  2023 ProgramData
drwxrwxr-x  6 lucas lucas 4096 abr 21  2023 Program Files
drwxrwxr-x  6 lucas lucas 4096 abr 21  2023 Program Files (x86)
drwxrwxr-x  4 lucas lucas 4096 abr 21  2023 users
drwxrwxr-x 18 lucas lucas 4096 ago 22  2023 windows

Registry info:
/home/lucas/.wine/system.reg:#arch=win64
/home/lucas/.wine/user.reg:#arch=win64
/home/lucas/.wine/userdef.reg:#arch=win64
------------------------------------------------------
------------------------------------------------------
warning: wine cmd.exe /c echo '%AppData%' returned empty string, error message "" 
------------------------------------------------------

but the same error


Executing SimpleGraphic/SimpleGraphic.cfg
Warning: config file not found
Executing SimpleGraphic/SimpleGraphicAuto.cfg
Warning: config file not found
Executing Z:\home\lucas\arquivos\softwares\Path of Building Community\Launch.cf
g
Warning: config file not found

--- UI Init ---
Script: Z:\home\lucas\arquivos\softwares\Path of Building Community\Launch.lua
Script working directory: Z:\home\lucas\arquivos\softwares\Path of Building Com
munity
Initialising Lua...
Running script...

--- Render Init ---
GL_MAX_TEXTURE_SIZE: 16384
Loading OpenGL extensions...
using GL_EXT_texture_compression_s3tc
using GL_EXT_debug_marker
012c:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
012c:err:d3dcompiler:D3DCompile2 Shader log:
012c:err:d3dcompiler:D3DCompile2     C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','
012c:err:d3dcompiler:D3DCompile2 
0138:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0138:err:d3dcompiler:D3DCompile2 Shader log:
0138:err:d3dcompiler:D3DCompile2     C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','
0138:err:d3dcompiler:D3DCompile2 
012c:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
012c:err:d3dcompiler:D3DCompile2 Shader log:
012c:err:d3dcompiler:D3DCompile2     C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','
012c:err:d3dcompiler:D3DCompile2 
0138:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0138:err:d3dcompiler:D3DCompile2 Shader log:
0138:err:d3dcompiler:D3DCompile2     C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','
0138:err:d3dcompiler:D3DCompile2 
012c:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
0138:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
012c:err:d3dcompiler:D3DCompile2 Shader log:
0138:err:d3dcompiler:D3DCompile2 Shader log:
012c:err:d3dcompiler:D3DCompile2     C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','
0138:err:d3dcompiler:D3DCompile2     C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','
012c:err:d3dcompiler:D3DCompile2 
0138:err:d3dcompiler:D3DCompile2 

--- ERROR ---
Failed to link program:
C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with default flags. (vs_5_0)
 Retrying with skip validation
C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip validation flags. (vs_5_0)
 Retrying with skip optimization
C:\fakepath:52:35: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip optimization flags. (vs_5_0)

C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with default flags. (ps_5_0)
 Retrying with skip validation
C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip validation flags. (ps_5_0)
 Retrying with skip optimization
C:\fakepath:48:53: E5000: syntax error, unexpected '(', expecting ';' or ','

Warning: D3D shader compilation failed with skip optimization flags. (ps_5_0)

Failed to create D3D Shaders
zao commented 7 months ago

@lucassimon I suspect that your winetricks invocation didn't actually succeed at installing d3dcompiler_47.dll, however it is supposed to do that.

woefulwabbit commented 7 months ago

@zao I noticed ANGLE supports Vulkan backend for Windows. Is it possible for SG2 to switch to the Vulkan backend if D3D fails?

zao commented 7 months ago

There's a GLFW_ANGLE_PLATFORM_TYPE that might be possible to leverage, the last time I thought about this I ran into that the Wine people really don't like it when you try to detect if you're running under Wine; being all smug about how one should improve Wine instead.

Detecting if you're on Linux or macOS is also an unknown factor, but that probably doesn't matter as we can't use Metal anyway.

zao commented 7 months ago

Thinking a bit more, I'm not certain if we can realistically make an informed choice of which ANGLE backend to use. As I understand it, a Wine installation doesn't necessarily have to have the guts needed to run Vulkan programs, or even a Vulkan runtime or capable GPU.

The idea of "retrying" is hard too, as we can't really detect if it actually worked and the startup phase isn't geared for doing multiple tries. Exposing an environment variable or something could possibly work, but by then you're already in tinkering territory and might as well make D3D work instead.

Interesting ideas, but not on my near-term roadmap.