Summary: | Compute shader locks up within nested "for" loop | ||
---|---|---|---|
Product: | Mesa | Reporter: | Philip Rebohle <philip.rebohle> |
Component: | Drivers/Vulkan/radeon | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | mesa-dev |
Severity: | critical | ||
Priority: | high | CC: | fdsfgs |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Compute shader (SPIR-V version)
Compute shader (GLSL version) GPU hang report workaround |
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: commit b0efc4fd6672f27ae2cbf28ef290d25a0da1dc08 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: https://bugs.freedesktop.org/show_bug.cgi?id=105442 ? I can reproduce the hang with mesa-git (893e19efb74) and LLVM-git (f31b39d494d). This also affects: - Vampyr - Tekken 7 - Final Fantasy XIV and probably more games. Created attachment 140068 [details] [review] workaround Not the best solution but that works. |
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 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.