radv/gfx10: don't emit PFP packets on ME.
authorDave Airlie <airlied@redhat.com>
Mon, 8 Jul 2019 06:53:27 +0000 (16:53 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 8 Jul 2019 07:19:42 +0000 (17:19 +1000)
This was done for all previous GPUs.

This fixes Talos Principle launch hangs.

Fixes: 7e43022e8c8 (radv/gfx10: add gfx10_cs_emit_cache_flush)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/si_cmd_buffer.c

index 84e9663963bc7a723826c1d03c86555b8c7c6a73..6d01e0ad7fd90e1e076ea3683bd266051181428c 100644 (file)
@@ -976,10 +976,11 @@ gfx10_cs_emit_cache_flush(struct radeon_cmdbuf *cs,
                radeon_emit(cs, 0);             /* CP_COHER_BASE_HI */
                radeon_emit(cs, 0x0000000A);    /* POLL_INTERVAL */
                radeon_emit(cs, gcr_cntl);      /* GCR_CNTL */
-       } else if (cb_db_event ||
+       } else if ((cb_db_event ||
                   (flush_bits & (RADV_CMD_FLAG_VS_PARTIAL_FLUSH |
                             RADV_CMD_FLAG_PS_PARTIAL_FLUSH |
-                            RADV_CMD_FLAG_CS_PARTIAL_FLUSH))) {
+                            RADV_CMD_FLAG_CS_PARTIAL_FLUSH)))
+                  && !is_mec) {
                /* We need to ensure that PFP waits as well. */
                radeon_emit(cs, PKT3(PKT3_PFP_SYNC_ME, 0, 0));
                radeon_emit(cs, 0);