mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 15:10:10 +01:00
anv: add source hashes for BVH building shaders
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Michael Cheng <michael.cheng@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33432>
This commit is contained in:
parent
1aa21c27d4
commit
4f73689d9a
2 changed files with 44 additions and 18 deletions
|
|
@ -229,14 +229,15 @@ def define_tracepoints(args):
|
|||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),],
|
||||
need_cs_param=True)
|
||||
|
||||
begin_end_tp('as_build')
|
||||
begin_end_tp('as_build_leaves', maybe_compute=True)
|
||||
begin_end_tp('as_morton_generate', maybe_compute=True)
|
||||
begin_end_tp('as_morton_sort', maybe_compute=True)
|
||||
begin_end_tp('as_lbvh_build_internal', maybe_compute=True)
|
||||
begin_end_tp('as_ploc_build_internal', maybe_compute=True)
|
||||
begin_end_tp('as_encode', maybe_compute=True)
|
||||
begin_end_tp('as_copy', maybe_compute=True)
|
||||
rt_args = [Arg(type='uint32_t', var='cs_hash', c_format='%u')]
|
||||
begin_end_tp('as_build', tp_args=rt_args)
|
||||
begin_end_tp('as_build_leaves', tp_args=rt_args, maybe_compute=True)
|
||||
begin_end_tp('as_morton_generate', tp_args=rt_args, maybe_compute=True)
|
||||
begin_end_tp('as_morton_sort', tp_args=rt_args, maybe_compute=True)
|
||||
begin_end_tp('as_lbvh_build_internal', tp_args=rt_args, maybe_compute=True)
|
||||
begin_end_tp('as_ploc_build_internal', tp_args=rt_args, maybe_compute=True)
|
||||
begin_end_tp('as_encode', tp_args=rt_args, maybe_compute=True)
|
||||
begin_end_tp('as_copy', tp_args=rt_args, maybe_compute=True)
|
||||
|
||||
begin_end_tp('rays',
|
||||
tp_args=[Arg(type='uint32_t', var='group_x', c_format='%u'),
|
||||
|
|
|
|||
|
|
@ -72,29 +72,39 @@ static void
|
|||
end_debug_marker(VkCommandBuffer commandBuffer)
|
||||
{
|
||||
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
struct anv_cmd_compute_state *comp_state = &cmd_buffer->state.compute;
|
||||
struct anv_compute_pipeline *pipeline =
|
||||
anv_pipeline_to_compute(comp_state->base.pipeline);
|
||||
|
||||
cmd_buffer->state.rt.debug_marker_count--;
|
||||
switch (cmd_buffer->state.rt.debug_markers[cmd_buffer->state.rt.debug_marker_count]) {
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_TOP:
|
||||
trace_intel_end_as_build(&cmd_buffer->trace);
|
||||
trace_intel_end_as_build(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_BUILD_LEAVES:
|
||||
trace_intel_end_as_build_leaves(&cmd_buffer->trace);
|
||||
trace_intel_end_as_build_leaves(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_MORTON_GENERATE:
|
||||
trace_intel_end_as_morton_generate(&cmd_buffer->trace);
|
||||
trace_intel_end_as_morton_generate(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_MORTON_SORT:
|
||||
trace_intel_end_as_morton_sort(&cmd_buffer->trace);
|
||||
trace_intel_end_as_morton_sort(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_LBVH_BUILD_INTERNAL:
|
||||
trace_intel_end_as_lbvh_build_internal(&cmd_buffer->trace);
|
||||
trace_intel_end_as_lbvh_build_internal(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_PLOC_BUILD_INTERNAL:
|
||||
trace_intel_end_as_ploc_build_internal(&cmd_buffer->trace);
|
||||
trace_intel_end_as_ploc_build_internal(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_ENCODE:
|
||||
trace_intel_end_as_encode(&cmd_buffer->trace);
|
||||
trace_intel_end_as_encode(&cmd_buffer->trace,
|
||||
pipeline->source_hash);
|
||||
break;
|
||||
default:
|
||||
unreachable("Invalid build step");
|
||||
|
|
@ -713,6 +723,10 @@ genX(CmdCopyAccelerationStructureKHR)(
|
|||
return;
|
||||
}
|
||||
|
||||
ANV_FROM_HANDLE(anv_pipeline, anv_pipeline, pipeline);
|
||||
struct anv_compute_pipeline *compute_pipeline =
|
||||
anv_pipeline_to_compute(anv_pipeline);
|
||||
|
||||
struct anv_cmd_saved_state saved;
|
||||
anv_cmd_buffer_save_state(cmd_buffer,
|
||||
ANV_CMD_SAVED_STATE_COMPUTE_PIPELINE |
|
||||
|
|
@ -755,7 +769,8 @@ genX(CmdCopyAccelerationStructureKHR)(
|
|||
|
||||
anv_cmd_buffer_restore_state(cmd_buffer, &saved);
|
||||
|
||||
trace_intel_end_as_copy(&cmd_buffer->trace);
|
||||
trace_intel_end_as_copy(&cmd_buffer->trace,
|
||||
compute_pipeline->source_hash);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -780,6 +795,10 @@ genX(CmdCopyAccelerationStructureToMemoryKHR)(
|
|||
return;
|
||||
}
|
||||
|
||||
ANV_FROM_HANDLE(anv_pipeline, anv_pipeline, pipeline);
|
||||
struct anv_compute_pipeline *compute_pipeline =
|
||||
anv_pipeline_to_compute(anv_pipeline);
|
||||
|
||||
struct anv_cmd_saved_state saved;
|
||||
anv_cmd_buffer_save_state(cmd_buffer,
|
||||
ANV_CMD_SAVED_STATE_COMPUTE_PIPELINE |
|
||||
|
|
@ -826,7 +845,8 @@ genX(CmdCopyAccelerationStructureToMemoryKHR)(
|
|||
|
||||
anv_cmd_buffer_restore_state(cmd_buffer, &saved);
|
||||
|
||||
trace_intel_end_as_copy(&cmd_buffer->trace);
|
||||
trace_intel_end_as_copy(&cmd_buffer->trace,
|
||||
compute_pipeline->source_hash);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -850,6 +870,10 @@ genX(CmdCopyMemoryToAccelerationStructureKHR)(
|
|||
return;
|
||||
}
|
||||
|
||||
ANV_FROM_HANDLE(anv_pipeline, anv_pipeline, pipeline);
|
||||
struct anv_compute_pipeline *compute_pipeline =
|
||||
anv_pipeline_to_compute(anv_pipeline);
|
||||
|
||||
struct anv_cmd_saved_state saved;
|
||||
anv_cmd_buffer_save_state(cmd_buffer,
|
||||
ANV_CMD_SAVED_STATE_COMPUTE_PIPELINE |
|
||||
|
|
@ -879,7 +903,8 @@ genX(CmdCopyMemoryToAccelerationStructureKHR)(
|
|||
vk_common_CmdDispatch(commandBuffer, 512, 1, 1);
|
||||
anv_cmd_buffer_restore_state(cmd_buffer, &saved);
|
||||
|
||||
trace_intel_end_as_copy(&cmd_buffer->trace);
|
||||
trace_intel_end_as_copy(&cmd_buffer->trace,
|
||||
compute_pipeline->source_hash);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue