anv: move last compute command pointers to the state structure

Makes it easier to clear.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29438>
This commit is contained in:
Lionel Landwerlin
2024-05-28 17:36:30 +03:00
committed by Marge Bot
parent 1d4e56d22a
commit 265b2b1255
4 changed files with 20 additions and 26 deletions

View File

@@ -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));

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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),