From bdeb849e25b0c15ca71cb5bf254d8c5e85851dec Mon Sep 17 00:00:00 2001 From: Felix DeGrood Date: Wed, 22 Feb 2023 21:33:13 +0000 Subject: [PATCH] anv: Add flush reasons to raytracing flushes Reviewed-by: Mark Janes Part-of: --- .../vulkan/genX_acceleration_structure.c | 28 ++++++++++++++----- src/intel/vulkan/genX_query.c | 4 ++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/intel/vulkan/genX_acceleration_structure.c b/src/intel/vulkan/genX_acceleration_structure.c index 4c675e985c2..a159041e2b2 100644 --- a/src/intel/vulkan/genX_acceleration_structure.c +++ b/src/intel/vulkan/genX_acceleration_structure.c @@ -835,7 +835,9 @@ cmd_build_acceleration_structures( transient_mem_init_globals_offset), infoCount); - cmd_buffer->state.pending_pipe_bits |= ANV_GRL_FLUSH_FLAGS; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_GRL_FLUSH_FLAGS, + "building accel struct"); /* Round 2 : Copy instance/geometry data from the application provided * buffers into the acceleration structures. @@ -949,7 +951,9 @@ cmd_build_acceleration_structures( } } - cmd_buffer->state.pending_pipe_bits |= ANV_GRL_FLUSH_FLAGS; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_GRL_FLUSH_FLAGS, + "building accel struct"); /* Dispatch trivial builds */ if (num_trivial_builds) { @@ -1023,7 +1027,9 @@ cmd_build_acceleration_structures( } if (num_new_sah_builds == 0) - cmd_buffer->state.pending_pipe_bits |= ANV_GRL_FLUSH_FLAGS; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_GRL_FLUSH_FLAGS, + "building accel struct"); /* Finally write the leaves. */ for (uint32_t i = 0; i < infoCount; i++) { @@ -1078,7 +1084,9 @@ cmd_build_acceleration_structures( } } - cmd_buffer->state.pending_pipe_bits |= ANV_GRL_FLUSH_FLAGS; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_GRL_FLUSH_FLAGS, + "building accel struct"); error: vk_free(&cmd_buffer->device->vk.alloc, builds); @@ -1140,7 +1148,9 @@ genX(CmdCopyAccelerationStructureKHR)( vk_acceleration_structure_get_va(src_accel)); } - cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_END_OF_PIPE_SYNC_BIT; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_PIPE_END_OF_PIPE_SYNC_BIT, + "after copy acceleration struct"); } void @@ -1164,7 +1174,9 @@ genX(CmdCopyAccelerationStructureToMemoryKHR)( anv_address_physical(device->rt_uuid_addr), src_size_addr); - cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_END_OF_PIPE_SYNC_BIT; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_PIPE_END_OF_PIPE_SYNC_BIT, + "after copy acceleration struct"); } void @@ -1185,7 +1197,9 @@ genX(CmdCopyMemoryToAccelerationStructureKHR)( pInfo->src.deviceAddress, src_size_addr); - cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_END_OF_PIPE_SYNC_BIT; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_PIPE_END_OF_PIPE_SYNC_BIT, + "after copy acceleration struct"); } /* TODO: Host commands */ diff --git a/src/intel/vulkan/genX_query.c b/src/intel/vulkan/genX_query.c index 21a55d63d01..a4c1eb05f27 100644 --- a/src/intel/vulkan/genX_query.c +++ b/src/intel/vulkan/genX_query.c @@ -1688,7 +1688,9 @@ genX(CmdWriteAccelerationStructuresPropertiesKHR)( } } - cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_END_OF_PIPE_SYNC_BIT; + anv_add_pending_pipe_bits(cmd_buffer, + ANV_PIPE_END_OF_PIPE_SYNC_BIT, + "after write acceleration struct props"); genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer); for (uint32_t i = 0; i < accelerationStructureCount; i++)