radv: re-emit prolog inputs when the nontrivial divisors state changed
If the application first uses nontrivial divisors, the driver emits the vertex shader VA to the upload BO rather than directly via the user SGPRs locations. But, if the vertex input dynamic state changes, the driver might select a different VS prolog that no longer needs nontrivial divisors. In this case, the driver needs to re-emit the prolog inputs because otherwise the VS prolog will jump to the PC that is emitted via the user SGPR locations, and the previous one was somewhere in the upload BO... This fixes a GPU hang with Bioshock and Zink. Fixes: d9c7a175 ("radv: enable VK_EXT_vertex_input_dynamic_state") Signed-off-by:Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Rhys Perry <pendingchaos02@gmail.com> Part-of: <mesa/mesa!13377> (cherry picked from commit b6a69dbb)
Showing
- .pick_status.json 1 addition, 1 deletion.pick_status.json
- src/amd/vulkan/radv_cmd_buffer.c 2 additions, 1 deletionsrc/amd/vulkan/radv_cmd_buffer.c
- src/amd/vulkan/radv_shader.c 3 additions, 0 deletionssrc/amd/vulkan/radv_shader.c
- src/amd/vulkan/radv_shader.h 1 addition, 0 deletionssrc/amd/vulkan/radv_shader.h
Loading
Please register or sign in to comment