diff --git a/src/intel/ds/intel_driver_ds.cc b/src/intel/ds/intel_driver_ds.cc index dccb30c8e7e..75438d4d2f4 100644 --- a/src/intel/ds/intel_driver_ds.cc +++ b/src/intel/ds/intel_driver_ds.cc @@ -485,7 +485,8 @@ CREATE_DUAL_EVENT_CALLBACK(xfb, INTEL_DS_QUEUE_STAGE_CMD_BUFFER) CREATE_DUAL_EVENT_CALLBACK(compute, INTEL_DS_QUEUE_STAGE_COMPUTE) CREATE_DUAL_EVENT_CALLBACK(compute_indirect, INTEL_DS_QUEUE_STAGE_COMPUTE) CREATE_DUAL_EVENT_CALLBACK(generate_draws, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) -CREATE_DUAL_EVENT_CALLBACK(generate_commands, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) +CREATE_DUAL_EVENT_CALLBACK(generate_cmds_pre, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) +CREATE_DUAL_EVENT_CALLBACK(generate_cmds_post, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) CREATE_DUAL_EVENT_CALLBACK(trace_copy, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) CREATE_DUAL_EVENT_CALLBACK(trace_copy_cb, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) CREATE_DUAL_EVENT_CALLBACK(query_clear_blorp, INTEL_DS_QUEUE_STAGE_INTERNAL_OPS) diff --git a/src/intel/ds/intel_tracepoints.py b/src/intel/ds/intel_tracepoints.py index 696d666f4bb..1b285db030a 100644 --- a/src/intel/ds/intel_tracepoints.py +++ b/src/intel/ds/intel_tracepoints.py @@ -163,7 +163,10 @@ def define_tracepoints(args): # Indirect draw generation, only for Anv begin_end_tp('generate_draws') - begin_end_tp('generate_commands') + + # Generated commands, only for Anv + begin_end_tp('generate_cmds_pre') + begin_end_tp('generate_cmds_post') # vkCmdResetQuery, only for Anv begin_end_tp('query_clear_blorp', diff --git a/src/intel/vulkan/genX_cmd_dgc.c b/src/intel/vulkan/genX_cmd_dgc.c index 9fe91d04096..670ef0ae23a 100644 --- a/src/intel/vulkan/genX_cmd_dgc.c +++ b/src/intel/vulkan/genX_cmd_dgc.c @@ -50,6 +50,8 @@ preprocess_gfx_sequences(struct anv_cmd_buffer *cmd_buffer, const VkGeneratedCommandsInfoEXT *info, enum anv_internal_kernel_name kernel_name) { + trace_intel_begin_generate_cmds_pre(&cmd_buffer->trace); + struct anv_device *device = cmd_buffer->device; struct anv_cmd_graphics_state *gfx = &cmd_buffer_state->state.gfx; @@ -158,6 +160,8 @@ preprocess_gfx_sequences(struct anv_cmd_buffer *cmd_buffer, genX(emit_simple_shader_dispatch)(&simple_state, info->maxSequenceCount, push_data_state); + trace_intel_end_generate_cmds_pre(&cmd_buffer->trace); + return params; } @@ -217,6 +221,8 @@ preprocess_cs_sequences(struct anv_cmd_buffer *cmd_buffer, enum anv_internal_kernel_name kernel_name, bool emit_driver_values) { + trace_intel_begin_generate_cmds_pre(&cmd_buffer->trace); + struct anv_device *device = cmd_buffer->device; struct anv_cmd_compute_state *comp_state = &cmd_buffer_state->state.compute; struct anv_cmd_pipeline_state *pipe_state = &comp_state->base; @@ -353,6 +359,8 @@ preprocess_cs_sequences(struct anv_cmd_buffer *cmd_buffer, info->maxSequenceCount, push_data_state); + trace_intel_end_generate_cmds_pre(&cmd_buffer->trace); + return params; } @@ -362,6 +370,8 @@ postprocess_cs_sequences(struct anv_cmd_buffer *cmd_buffer, struct anv_indirect_execution_set *indirect_set, const VkGeneratedCommandsInfoEXT *info) { + trace_intel_begin_generate_cmds_post(&cmd_buffer->trace); + struct anv_device *device = cmd_buffer->device; /**/ @@ -446,6 +456,8 @@ postprocess_cs_sequences(struct anv_cmd_buffer *cmd_buffer, info->maxSequenceCount, push_data_state); + trace_intel_end_generate_cmds_post(&cmd_buffer->trace); + return params; } @@ -458,6 +470,8 @@ preprocess_rt_sequences(struct anv_cmd_buffer *cmd_buffer, const VkGeneratedCommandsInfoEXT *info, enum anv_internal_kernel_name kernel_name) { + trace_intel_begin_generate_cmds_pre(&cmd_buffer->trace); + struct anv_device *device = cmd_buffer->device; struct anv_cmd_ray_tracing_state *rt_state = &cmd_buffer_state->state.rt; struct anv_cmd_pipeline_state *pipe_state = &rt_state->base; @@ -611,6 +625,8 @@ preprocess_rt_sequences(struct anv_cmd_buffer *cmd_buffer, info->maxSequenceCount, push_data_state); + trace_intel_end_generate_cmds_pre(&cmd_buffer->trace); + return params; } #endif /* GFX_VERx10 >= 125 */