Created attachment 138208 [details]
Compute shader (SPIR-V version)
Hellblade: Senua's Sacrifice (via wine+dxvk) locks up shortly after the intro videos before reaching the main menu because of an issue with the attached compute shader.
Tested on an RX 480 with mesa-git (e8d9b7ab0) and LLVM 6.0.0, as well as LLVM 7.0.0-svn.
The attached GLSL version of the shader can also be used to reproduce the hang when compiling it back to SPIR-V, and it contains a modified but functionally equivalent code path which works as expected.
Created attachment 138209 [details]
Compute shader (GLSL version)
Created attachment 138210 [details]
GPU hang report
Random guess based on the title is that it is a regression with the following LLVM commit:
Author: Alexander Timofeev <Alexander.Timofeev@amd.com>
Date: Fri Dec 1 11:56:34 2017 +0000
[AMDGPU] SiFixSGPRCopies should not modify non-divergent PHI
Differential revision: https://reviews.llvm.org/D40556
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319534 91177308-0d34-0410-b5e6-96231b3b80d8
Reverting or using LLVM 5 might fix it.
Reverting that specific commit did not fix the hang. It also happens with mesa 17.3.6 and LLVM 5.0.1.
Given that moving the loop counter to a separate variable fixes the hang, I wonder if this is related to https://bugs.freedesktop.org/show_bug.cgi?id=103743.
Maybe related to:
I can reproduce the hang with mesa-git (893e19efb74) and LLVM-git (f31b39d494d).
This also affects:
- Tekken 7
- Final Fantasy XIV
and probably more games.
Created attachment 140068 [details] [review]
Not the best solution but that works.
Fixed with https://cgit.freedesktop.org/mesa/mesa/commit/?id=135e4d434f622fa1d7275bdb72f859e1c1b1976e