mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
vulkan: add leaves and ir_leaves sizes to encode for utrace.
Expose number of leaves and ir_leaves to the debug marker for encode. Signed-off-by: Michael Cheng <michael.cheng@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34200>
This commit is contained in:
parent
36aa0bd964
commit
169e7acee1
4 changed files with 24 additions and 5 deletions
|
|
@ -237,7 +237,9 @@ def define_tracepoints(args):
|
|||
begin_end_tp('as_morton_sort', repeat_last=True)
|
||||
begin_end_tp('as_lbvh_build_internal', repeat_last=True)
|
||||
begin_end_tp('as_ploc_build_internal', repeat_last=True)
|
||||
begin_end_tp('as_encode', repeat_last=True)
|
||||
begin_end_tp('as_encode', repeat_last=True,
|
||||
tp_args=[Arg(type='uint32_t', var='n_leaves', c_format='%u'),
|
||||
Arg(type='uint32_t', var='n_ir_leaves', c_format='%u')])
|
||||
begin_end_tp('as_copy', repeat_last=True)
|
||||
|
||||
begin_end_tp('rays',
|
||||
|
|
|
|||
|
|
@ -4090,6 +4090,8 @@ struct anv_cmd_ray_tracing_state {
|
|||
uint32_t debug_marker_count;
|
||||
uint32_t num_tlas;
|
||||
uint32_t num_blas;
|
||||
uint32_t num_leaves;
|
||||
uint32_t num_ir_nodes;
|
||||
enum vk_acceleration_structure_build_step debug_markers[5];
|
||||
|
||||
struct anv_address build_priv_mem_addr;
|
||||
|
|
|
|||
|
|
@ -68,8 +68,15 @@ begin_debug_marker(VkCommandBuffer commandBuffer,
|
|||
trace_intel_begin_as_ploc_build_internal(&cmd_buffer->trace);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_ENCODE:
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
cmd_buffer->state.rt.num_leaves = va_arg(args, uint32_t);
|
||||
cmd_buffer->state.rt.num_ir_nodes = va_arg(args, uint32_t);
|
||||
va_end(args);
|
||||
trace_intel_begin_as_encode(&cmd_buffer->trace);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
unreachable("Invalid build step");
|
||||
}
|
||||
|
|
@ -103,7 +110,7 @@ end_debug_marker(VkCommandBuffer commandBuffer)
|
|||
trace_intel_end_as_ploc_build_internal(&cmd_buffer->trace);
|
||||
break;
|
||||
case VK_ACCELERATION_STRUCTURE_BUILD_STEP_ENCODE:
|
||||
trace_intel_end_as_encode(&cmd_buffer->trace);
|
||||
trace_intel_end_as_encode(&cmd_buffer->trace, cmd_buffer->state.rt.num_leaves, cmd_buffer->state.rt.num_ir_nodes);
|
||||
break;
|
||||
default:
|
||||
unreachable("Invalid build step");
|
||||
|
|
|
|||
|
|
@ -1168,11 +1168,19 @@ vk_cmd_build_acceleration_structures(VkCommandBuffer commandBuffer,
|
|||
vk_barrier_compute_w_to_indirect_compute_r(commandBuffer);
|
||||
}
|
||||
|
||||
if (args->emit_markers) {
|
||||
/* Calculate number of leaves and internal nodes to encode */
|
||||
uint32_t num_leaves = 0;
|
||||
uint32_t num_internal_node = 0;
|
||||
for ( uint32_t i = 0; i < infoCount; i++) {
|
||||
num_leaves += bvh_states[i].leaf_node_count;
|
||||
num_internal_node += bvh_states[i].internal_node_count;
|
||||
}
|
||||
|
||||
if (args->emit_markers)
|
||||
device->as_build_ops->begin_debug_marker(commandBuffer,
|
||||
VK_ACCELERATION_STRUCTURE_BUILD_STEP_ENCODE,
|
||||
"encode");
|
||||
}
|
||||
"encode_leaves=%u encode_ir_node=%u",
|
||||
num_leaves, num_internal_node);
|
||||
|
||||
for (unsigned pass = 0; pass < ARRAY_SIZE(ops->encode_as); pass++) {
|
||||
if (!ops->encode_as[pass] && !ops->update_as[pass])
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue