protonscr

EGS version of Europa Universalis IV crashing because of DXVK

dxvkclosed
doitsujin/dxvk#3614 · opened 2023-08-12 by BananaWorks07 · updated 2023-08-13 · 5 comments · github
1 matching comments, n / p to jump
BBananaWorks07 2023-08-12 github

Crashes when using DXVK, but doesn't crash and has broken rendering on wined3d opengl.

System information

  • GPU: RX 6800
  • Driver: mesa-git (23.3-git-somehash)
  • Wine version: Wine-GE-8-13
  • DXVK version: 2.2 stable

Apitrace file(s)

https://drive.google.com/file/d/1GKjh-RBI3Mu63aLZPdOh2ucQUZz5TPBT/view?usp=drive_link
(that was a bad trace, I am retracing with wined3d)
trace updated

Log files

snip of backtrace

0638:warn:seh:virtual_unwind backtrace: 000000007B013AD7: L"kernelbase.dll" + 0000000000013AD7. (RaiseException call, can be ignored)
0638:warn:seh:virtual_unwind backtrace: 0000000271077B21: L"d3d9.dll" + 0000000000117B21.
0638:warn:seh:virtual_unwind backtrace: 0000000271177949: L"d3d9.dll" + 0000000000217949.
0638:warn:seh:virtual_unwind backtrace: 000000027119FA26: L"d3d9.dll" + 000000000023FA26.
0638:warn:seh:virtual_unwind backtrace: 0000000270FB9EA7: L"d3d9.dll" + 0000000000059EA7.
0638:warn:seh:virtual_unwind backtrace: 0000000270FBB86A: L"d3d9.dll" + 000000000005B86A.
0638:warn:seh:virtual_unwind backtrace: 0000000270FB496E: L"d3d9.dll" + 000000000005496E.
0638:warn:seh:virtual_unwind backtrace: 0000000270FB49F6: L"d3d9.dll" + 00000000000549F6.
0638:warn:seh:virtual_unwind backtrace: 0000000270F9712C: L"d3d9.dll" + 000000000003712C.
0638:warn:seh:virtual_unwind backtrace: 0000000270F987E1: L"d3d9.dll" + 00000000000387E1.
0638:warn:seh:virtual_unwind backtrace: 0000000270F6CEC5: L"d3d9.dll" + 000000000000CEC5.
0638:warn:seh:virtual_unwind backtrace: 000000014151C4B6: L"eu4.exe" + 000000000151C4B6.
BBananaWorks07 2023-08-12 github

confirmed trace does crash DXVK 2.2 stable, I have not tried DXVK-git

BBananaWorks07 2023-08-12 github

better backtrace:

=>0 0x00000174013bc7 in kernelbase (+0x13bc7) (0x00000002dbe050)
  1 0x00000271077b21 in d3d9 (+0x117b21) (0x00000002dbe050)
  2 0x00000271177949 in d3d9 (+0x217949) (0x00000002dbe050)
  3 0x0000027119fa26 in d3d9 (+0x23fa26) (0x00000002dbe050)
  4 0x00000270fb9ea7 in d3d9 (+0x59ea7) (0x00000000000020)
  5 0x00000270fbb86a in d3d9 (+0x5b86a) (0x00000002dbe418)
  6 0x00000270fb496e in d3d9 (+0x5496e) (0x00000002dbe418)
  7 0x00000270fb49f6 in d3d9 (+0x549f6) (0x00000002dbf360)
  8 0x00000270f9712c in d3d9 (+0x3712c) (0x000002711fc198)
  9 0x00000270f987e1 in d3d9 (+0x387e1) (0x000000013ade50)
  10 0x00000270f6cec5 in d3d9 (+0xcec5) (0x00000002dbfa20)
  11 0x0000014005481a retrace_IDirect3DDevice9__CreateVertexShader+0xaa(call=0000000002B18DD0) [C:\projects\apitrace\build\retrace\d3dretrace_d3d9.cpp:4446] in d3dretrace (0000000000000000)
BBananaWorks07 2023-08-12 github

best backtrace that's possible (probably):

0 0x00000174013bc7 in kernelbase (+0x13bc7) (0x00000002fbdc60)
  1 0x00000271071111 in d3d9 (+0x111111) (0x00000002fbdc60)
  2 0x000002712d7f59 in d3d9 (+0x377f59) (0x00000002fbdc60)
  3 0x000002712d9cb6 in d3d9 (+0x379cb6) (0x00000002fbdc60)
  4 0x0000027123d783 array<dxvk::DxsoRegisterPointer, 32>::at+0x33(this=<is not available>, __n=<is not available>) [/usr/x86_64-w64-mingw32/include/c++/12.2.0/array:229] in d3d9 (0x00000002fbdca0)
  5 0x00000270fb9ec8 DxsoCompiler::emitGetOperandPtr+0x84(this=<is not available>, reg=<is not available>, relative=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/dxso/dxso_compiler.cpp:1045] in d3d9 (0x00000002fbdd30)
  6 0x00000271093bea DxsoCompiler::emitGetOperandPtr+0x4a(this=<is not available>, reg=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/dxso/dxso_compiler.h:477] in d3d9 (0x00000002fbde00)
  7 0x00000270fbcc5f DxsoCompiler::emitMov+0x35(this=<is not available>, ctx=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/dxso/dxso_compiler.cpp:1822] in d3d9 (0x00000002fbdec0)
  8 0x00000270fb7b91 DxsoCompiler::processInstruction+0x205(this=<is not available>, ctx=<is not available>, currentCoissueIdx=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/dxso/dxso_compiler.cpp:102] in d3d9 (0x00000002fbdf50)
  9 0x00000270fb5db9 DxsoModule::runCompiler+0x69(this=<is not available>, compiler=<is not available>, iter=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/dxso/dxso_module.cpp:82] in d3d9 (0x00000002fbdff0)
  10 0x00000270fb5b05 DxsoModule::compile+0x89(this=<is not available>, moduleInfo=<is not available>, fileName=<is not available>, analysis=<is not available>, layout=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/dxso/dxso_module.cpp:35] in d3d9 (0x00000002fbe1b0)
  11 0x00000270f9ae33 D3D9CommonShader+0x3db(this=<is not available>, pDevice=<is not available>, ShaderStage=<is not available>, Key=<is not available>, pDxsoModuleInfo=<is not available>, pShaderBytecode=<is not available>, AnalysisInfo=<is not available>, pModule=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/d3d9/d3d9_shader.cpp:57] in d3d9 (0x00000002fbe260)
  12 0x00000270f9b54c D3D9ShaderModuleSet::GetShaderModule+0x314(this=<is not available>, pDevice=<is not available>, pShaderModule=<is not available>, pLength=<is not available>, ShaderStage=<is not available>, pDxbcModuleInfo=<is not available>, pShaderBytecode=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/d3d9/d3d9_shader.cpp:125] in d3d9 (0x00000002fbefb0)
  13 0x00000270f7c637 D3D9DeviceEx::CreateShaderModule+0x5d(this=<is not available>, pShaderModule=<is not available>, pLength=<is not available>, ShaderStage=<is not available>, pShaderBytecode=<is not available>, pModuleInfo=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/d3d9/d3d9_device.cpp:6609] in d3d9 (0x00000002fbf9c0)
  14 0x00000270f70171 D3D9DeviceEx::CreateVertexShader+0xc5(this=<is not available>, pFunction=<is not available>, ppShader=<is not available>) [/home/etaash/Documents/GitHub/dxvk2/build/dxvk-2.2/build.64/../../../src/d3d9/d3d9_device.cpp:2900] in d3d9 (0x00000002fbfa60)
  15 0x0000014005481a retrace_IDirect3DDevice9__CreateVertexShader+0xaa(call=0000000002B18FE0) [C:\projects\apitrace\build\retrace\d3dretrace_d3d9.cpp:4446] in d3dretrace (0000000000000000)
  16 0x000001400e206e contains(call=0000000002B18FE0) [C:\projects\apitrace\lib\trace\trace_callset.hpp:177] in d3dretrace (0000000000000000)
Ppchome 2023-08-12 github

best backtrace that's possible (probably)

IIRC something like -gdwarf-4 -g3 -fvar-tracking-assignments should give better backtrace (probably) ;)
man gcc around -glevel

I noticed the PR, so FYI.

KK0bin maintainer 2023-08-13 github

This is a Wine d3dcompiler bug that we work around with #3616

DLLs