https://bugs.winehq.org/show_bug.cgi?id=54464
Bug ID: 54464 Summary: Sekiro: Shadows Die Twice GOTY crashes on launch Product: Wine Version: 7.17 Hardware: x86-64 OS: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: d3d Assignee: wine-bugs@winehq.org Reporter: andrey.goosev@gmail.com CC: hverbeet@gmail.com Regression SHA1: 7d20333faf8e93a3a16680cf1beadc9cdcb50c45 Distribution: ---
vkd3d:err:shader_parse_input_signature Failed to parse input signature. 0550:err:d3d11:d3d11_input_layout_to_wined3d_declaration Failed to extract input signature, ret -3.
https://bugs.winehq.org/show_bug.cgi?id=54464
Andrey Gusev andrey.goosev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Sekiro: Shadows Die Twice |Multiple games crash on |GOTY crashes on launch |launch (Sekiro: Shadows Die | |Twice GOTY, Dark Souls III)
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #1 from Henri Verbeet hverbeet@gmail.com --- I don't immediately seem to be able to reproduce this issue here. Does it require specific settings? Could you attach a log with WINEDEBUG=+vkd3d?
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #2 from Andrey Gusev andrey.goosev@gmail.com --- Created attachment 74037 --> https://bugs.winehq.org/attachment.cgi?id=74037 log
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #3 from Henri Verbeet hverbeet@gmail.com --- (In reply to Andrey Gusev from comment #2)
vkd3d:trace:vkd3d_shader_parse_input_signature dxbc {00007F5294751C60, 148}, signature 000000000011F1F0, messages 0000000000000000. vkd3d:trace:parse_dxbc tag: 0x43425844. vkd3d:warn:parse_dxbc Checksum {0x00000000, 0x00000000, 0x00000000, 0x00000000} does not match calculated checksum {0x038659c8, 0xbd7ea4c8, 0x6c853f11, 0x073027f0}. vkd3d:err:shader_parse_input_signature Failed to parse input signature. vkd3d:trace:vkd3d_shader_parse_input_signature <anonymous>: E0003: Invalid DXBC checksum. 0b58:err:d3d11:d3d11_input_layout_to_wined3d_declaration Failed to extract input signature, ret -3.
That's suspicious, the shaders in question all have zeroed out checksums, and that causes these to fail validation.
The wined3d code indeed didn't validate the checksums, so in that sense this probably explains the regression. It doesn't explain how these shaders ended up with an empty checksum in the first places though.
The log also contains a bunch of traces like these:
0bc0:fixme:d3dcompiler:write_u32_unknown Writing unknown u32 0x00000000. 0bc0:fixme:d3dcompiler:write_u32_unknown Writing unknown u32 0x00000000. 0bc0:fixme:d3dcompiler:write_u32_unknown Writing unknown u32 0x00000000. 0bc0:fixme:d3dcompiler:write_u32_unknown Writing unknown u32 0x00000000. 0bc0:fixme:d3dcompiler:write_u32_unknown Writing unknown u32 0x00000001.
I guess those are from something like D3DStripShader(), D3DGetInputSignatureBlob(), or similar, which indeed don't seem to write a valid DXBC checksum. Does using native d3dcompiler help?
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #4 from Andrey Gusev andrey.goosev@gmail.com --- Yes, it works with native d3dcompiler.
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #5 from Henri Verbeet hverbeet@gmail.com --- Created attachment 74038 --> https://bugs.winehq.org/attachment.cgi?id=74038 Hack
(In reply to Andrey Gusev from comment #4)
Yes, it works with native d3dcompiler.
Ok, then this probably makes sense. I think the way forward is to export DXBC blob handling API from vkd3d-shader, and then use that from d3dcompiler. Hopefully we can get that done before vkd3d-1.7.
The attached hack should avoid the issue for the time being. It's against bundled vkd3d, but a similar change would work for external vkd3d.
https://bugs.winehq.org/show_bug.cgi?id=54464
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|d3d |d3d-util
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #6 from Henri Verbeet hverbeet@gmail.com --- Created attachment 74132 --> https://bugs.winehq.org/attachment.cgi?id=74132 patch
Attached are the changes required to use the new vkd3d-shader DXBC API in Wine. These currently require building against external vkd3d from current vkd3d git, but I'll upstream those once vkd3d 1.7 is released and imported into Wine.
https://bugs.winehq.org/show_bug.cgi?id=54464
--- Comment #7 from Henri Verbeet hverbeet@gmail.com --- This should be fixed as of commit 8455b47b865bf0e7cd02d17cfe83a5d4ca904401, although for some applications commit 0c7313840caf174954bd71f4c07a431cbf433482 may be sufficient.
https://bugs.winehq.org/show_bug.cgi?id=54464
Andrey Gusev andrey.goosev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED
--- Comment #8 from Andrey Gusev andrey.goosev@gmail.com --- (In reply to Henri Verbeet from comment #7)
This should be fixed as of commit 8455b47b865bf0e7cd02d17cfe83a5d4ca904401, although for some applications commit 0c7313840caf174954bd71f4c07a431cbf433482 may be sufficient.
Marking fixed.
https://bugs.winehq.org/show_bug.cgi?id=54464
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |8455b47b865bf0e7cd02d17cfe8 | |3a5d4ca904401
https://bugs.winehq.org/show_bug.cgi?id=54464
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #9 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
This seems to be the cause of the black screen regression reported in the AppDB comments of Dungeons & Dragons Online, for which native d3dcompiler_42 helps [1].
Regards.
[1] https://appdb.winehq.org/objectManager.php?sClass=version&iId=28606#comm...
https://bugs.winehq.org/show_bug.cgi?id=54464
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.7.