diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index 41d5cf4ecfa..1bc359e947d 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -79,9 +79,6 @@ anv_cmd_state_reset(struct anv_cmd_buffer *cmd_buffer) { anv_cmd_state_finish(cmd_buffer); anv_cmd_state_init(cmd_buffer); - - cmd_buffer->last_compute_walker = NULL; - cmd_buffer->last_indirect_dispatch = NULL; } VkResult @@ -175,9 +172,6 @@ anv_create_cmd_buffer(struct vk_command_pool *pool, cmd_buffer->generation.jump_addr = ANV_NULL_ADDRESS; cmd_buffer->generation.return_addr = ANV_NULL_ADDRESS; - cmd_buffer->last_compute_walker = NULL; - cmd_buffer->last_indirect_dispatch = NULL; - memset(&cmd_buffer->generation.shader_state, 0, sizeof(cmd_buffer->generation.shader_state)); diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 8ba60eb6abe..4d12900cd0a 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -3907,6 +3907,20 @@ struct anv_cmd_state { * A buffer used for spill/fill of ray queries. */ struct anv_bo * ray_query_shadow_bo; + + /** Pointer to the last emitted COMPUTE_WALKER. + * + * This is used to edit the instruction post emission to replace the "Post + * Sync" field for utrace timestamp emission. + */ + void *last_compute_walker; + + /** Pointer to the last emitted EXECUTE_INDIRECT_DISPATCH. + * + * This is used to edit the instruction post emission to replace the "Post + * Sync" field for utrace timestamp emission. + */ + void *last_indirect_dispatch; }; #define ANV_MIN_CMD_BUFFER_BATCH_SIZE 8192 @@ -4057,20 +4071,6 @@ struct anv_cmd_buffer { */ struct u_trace trace; - /** Pointer to the last emitted COMPUTE_WALKER. - * - * This is used to edit the instruction post emission to replace the "Post - * Sync" field for utrace timestamp emission. - */ - void *last_compute_walker; - - /** Pointer to the last emitted EXECUTE_INDIRECT_DISPATCH. - * - * This is used to edit the instruction post emission to replace the "Post - * Sync" field for utrace timestamp emission. - */ - void *last_indirect_dispatch; - struct { struct anv_video_session *vid; struct anv_video_session_params *params; diff --git a/src/intel/vulkan/anv_utrace.c b/src/intel/vulkan/anv_utrace.c index dfe5dabb286..bd55f3e79b6 100644 --- a/src/intel/vulkan/anv_utrace.c +++ b/src/intel/vulkan/anv_utrace.c @@ -425,16 +425,16 @@ anv_utrace_record_ts(struct u_trace *ut, void *cs, ANV_TIMESTAMP_CAPTURE_END_OF_PIPE) : ANV_TIMESTAMP_CAPTURE_TOP_OF_PIPE; void *addr = capture_type == ANV_TIMESTAMP_REWRITE_INDIRECT_DISPATCH ? - cmd_buffer->last_indirect_dispatch : + cmd_buffer->state.last_indirect_dispatch : capture_type == ANV_TIMESTAMP_REWRITE_COMPUTE_WALKER ? - cmd_buffer->last_compute_walker : NULL; + cmd_buffer->state.last_compute_walker : NULL; device->physical->cmd_emit_timestamp(batch, device, ts_address, capture_type, addr); if (is_end_compute) { - cmd_buffer->last_compute_walker = NULL; - cmd_buffer->last_indirect_dispatch = NULL; + cmd_buffer->state.last_compute_walker = NULL; + cmd_buffer->state.last_indirect_dispatch = NULL; } } diff --git a/src/intel/vulkan/genX_cmd_compute.c b/src/intel/vulkan/genX_cmd_compute.c index 7f05139e43f..4d9556a885f 100644 --- a/src/intel/vulkan/genX_cmd_compute.c +++ b/src/intel/vulkan/genX_cmd_compute.c @@ -320,7 +320,7 @@ emit_indirect_compute_walker(struct anv_cmd_buffer *cmd_buffer, &dispatch), }; - cmd_buffer->last_indirect_dispatch = + cmd_buffer->state.last_indirect_dispatch = anv_batch_emitn( &cmd_buffer->batch, GENX(EXECUTE_INDIRECT_DISPATCH_length), @@ -348,7 +348,7 @@ emit_compute_walker(struct anv_cmd_buffer *cmd_buffer, const struct intel_cs_dispatch_info dispatch = brw_cs_get_dispatch_info(devinfo, prog_data, NULL); - cmd_buffer->last_compute_walker = + cmd_buffer->state.last_compute_walker = anv_batch_emitn( &cmd_buffer->batch, GENX(COMPUTE_WALKER_length),