radv: only emit ZPASS_DONE for timestamp queries on gfx queues
authorAndres Rodriguez <andresx7@gmail.com>
Tue, 25 Sep 2018 06:30:34 +0000 (02:30 -0400)
committerAndres Rodriguez <andresx7@gmail.com>
Tue, 25 Sep 2018 06:30:34 +0000 (02:30 -0400)
A ZPASS_DONE packet doesn't make sense for the compute queue. It will
result in a gpu hang.

This change resolves a gpu hang for SteamVR+Vega.

Cc: mesa-stable@lists.freedesktop.org
Fixes: 1f616a840eac02241c585d28e9dac8f19a297f39 "radv: emit a dummy ..."
Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/si_cmd_buffer.c

index 7ff1717022de74e6827a2f42dc8bcc225e4dd40f..e5bc151f64bb5e71e87f9552a1240d09bb803ada 100644 (file)
@@ -683,7 +683,7 @@ void si_cs_emit_write_event_eop(struct radeon_cmdbuf *cs,
                 * counters) must immediately precede every timestamp event to
                 * prevent a GPU hang on GFX9.
                 */
-               if (chip_class == GFX9) {
+               if (chip_class == GFX9 && !is_mec) {
                        radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 2, 0));
                        radeon_emit(cs, EVENT_TYPE(EVENT_TYPE_ZPASS_DONE) | EVENT_INDEX(1));
                        radeon_emit(cs, gfx9_eop_bug_va);