OSDN Git Service

radv: Only emit PFP ME syncs for DMA on the GFX queue.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 18 Dec 2016 13:05:19 +0000 (14:05 +0100)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 18 Dec 2016 19:52:51 +0000 (20:52 +0100)
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/si_cmd_buffer.c

index 4b2624c..e3f883f 100644 (file)
@@ -776,7 +776,7 @@ static void si_emit_cp_dma_copy_buffer(struct radv_cmd_buffer *cmd_buffer,
         * indices. If we wanted to execute CP DMA in PFP, this packet
         * should precede it.
         */
-       if (sync_flag) {
+       if (sync_flag && cmd_buffer->queue_family_index == RADV_QUEUE_GENERAL) {
                radeon_emit(cs, PKT3(PKT3_PFP_SYNC_ME, 0, 0));
                radeon_emit(cs, 0);
        }
@@ -816,7 +816,7 @@ static void si_emit_cp_dma_clear_buffer(struct radv_cmd_buffer *cmd_buffer,
        }
 
        /* See "copy_buffer" for explanation. */
-       if (sync_flag) {
+       if (sync_flag && cmd_buffer->queue_family_index == RADV_QUEUE_GENERAL) {
                radeon_emit(cs, PKT3(PKT3_PFP_SYNC_ME, 0, 0));
                radeon_emit(cs, 0);
        }