Summary: | DOOM 2016 broken by spirv OpStore validation | ||
---|---|---|---|
Product: | Mesa | Reporter: | Grazvydas Ignotas <notasas> |
Component: | Drivers/Vulkan/Common | Assignee: | Jason Ekstrand <jason> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | airlied, chadversary, daniel, jason |
Version: | git | Keywords: | bisected, regression |
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
spirv binary
old doom version failing spirv binary |
Patch on the list: https://patchwork.freedesktop.org/patch/195336/ Still failing, tested on the newer 3-patch series: SPIR-V parsing FAILED: Source and destination types of SpvOpStore do not match: bool vs. uint 23800 bytes into the SPIR-V binary also triggers with spirv2nir and the binary I've attached, just change MESA_SHADER_FRAGMENT to MESA_SHADER_COMPUTE in spirv2nir.c . Could you please give this a try: https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=wip/bug-104424 Works now, thanks. Patches are now on the list: https://patchwork.freedesktop.org/series/35979/ Created attachment 136559 [details]
old doom version failing spirv binary
BTW I still have the old DOOM version installed, that worked before validation was added, and it fails with suspicious looking message:
SPIR-V parsing FAILED:
Source and destination types of SpvOpStore do not match: vectorfield_t vs. vectorfield_t
31328 bytes into the SPIR-V binary
Binary attached, thought it might be interesting to you.
Does your older DOOM work with the above branch? It hangs. I was testing and took the binary with that branch. This should be fixed by the following commit: commit 9e5aaa93cb242d8e401d61156809082dae86ed03 Author: Jason Ekstrand <jason.ekstrand@intel.com> Date: Wed Jan 3 09:26:18 2018 -0800 spirv: Do implicit conversions of uint to bool in OpStore Technically, the GLSLang bug related to this can also affect SSBO writes where the bool -> uint conversion is missing. However, the only known shipping application with an old enough version of GLSLang to cause issues with this is the new DOOM game so we keep the workaround as small as possible. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104424 Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 136462 [details] spirv binary After 6737b1b859aadad64e5fe04a92d196a672413e06 DOOM 2016 is no longer working, spirv_to_nir() fails with: SPIR-V parsing FAILED: In file spirv/vtn_variables.c:2009 Value and pointer types of OpStore do not match 23800 bytes into the SPIR-V binary The offending spirv binary attached.