anv: use the anv_state_pool address helper more

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19983>
This commit is contained in:
Lionel Landwerlin 2022-11-23 12:02:41 +02:00 committed by Marge Bot
parent 08d34ca582
commit bbbc8e7ce7
3 changed files with 33 additions and 43 deletions

View file

@ -711,10 +711,9 @@ anv_cmd_buffer_alloc_space(struct anv_cmd_buffer *cmd_buffer,
size, alignment);
return (struct anv_cmd_alloc) {
.address = (struct anv_address) {
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
.offset = state.offset,
},
.address = anv_state_pool_state_address(
&cmd_buffer->device->dynamic_state_pool,
state),
.map = state.map,
.size = size,
};

View file

@ -338,10 +338,9 @@ anv_cmd_buffer_set_ray_query_buffer(struct anv_cmd_buffer *cmd_buffer,
struct anv_state ray_query_global_state =
anv_genX(device->info, cmd_buffer_ray_query_globals)(cmd_buffer);
struct anv_address ray_query_globals_addr = (struct anv_address) {
.bo = device->dynamic_state_pool.block_pool.bo,
.offset = ray_query_global_state.offset,
};
struct anv_address ray_query_globals_addr =
anv_state_pool_state_address(&device->dynamic_state_pool,
ray_query_global_state);
pipeline_state->push_constants.ray_query_globals =
anv_address_physical(ray_query_globals_addr);
cmd_buffer->state.push_constants_dirty |= stages;

View file

@ -2787,10 +2787,9 @@ get_push_range_address(struct anv_cmd_buffer *cmd_buffer,
gfx_state->base.push_constants_state =
anv_cmd_buffer_gfx_push_constants(cmd_buffer);
}
return (struct anv_address) {
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
.offset = gfx_state->base.push_constants_state.offset,
};
return anv_state_pool_state_address(
&cmd_buffer->device->dynamic_state_pool,
gfx_state->base.push_constants_state);
}
default: {
@ -3794,10 +3793,9 @@ emit_base_vertex_instance(struct anv_cmd_buffer *cmd_buffer,
((uint32_t *)id_state.map)[0] = base_vertex;
((uint32_t *)id_state.map)[1] = base_instance;
struct anv_address addr = {
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
.offset = id_state.offset,
};
struct anv_address addr =
anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
id_state);
emit_base_vertex_instance_bo(cmd_buffer, addr);
}
@ -3811,10 +3809,9 @@ emit_draw_index(struct anv_cmd_buffer *cmd_buffer, uint32_t draw_index)
((uint32_t *)state.map)[0] = draw_index;
struct anv_address addr = {
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
.offset = state.offset,
};
struct anv_address addr =
anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
state);
emit_vertex_bo(cmd_buffer, addr, 4, ANV_DRAWID_VB_INDEX);
}
@ -5346,10 +5343,9 @@ void genX(CmdDispatchBase)(
sizes[0] = groupCountX;
sizes[1] = groupCountY;
sizes[2] = groupCountZ;
cmd_buffer->state.compute.num_workgroups = (struct anv_address) {
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
.offset = state.offset,
};
cmd_buffer->state.compute.num_workgroups =
anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
state);
/* The num_workgroups buffer goes in the binding table */
cmd_buffer->state.descriptors_dirty |= VK_SHADER_STAGE_COMPUTE_BIT;
@ -5698,10 +5694,9 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer,
&cmd_buffer->state.rt.base.push_constants,
sizeof(struct anv_push_constants));
struct anv_address rtdg_addr = {
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
.offset = rtdg_state.offset,
};
struct anv_address rtdg_addr =
anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
rtdg_state);
uint8_t local_size_log2[3];
uint32_t global_size[3] = {};
@ -7229,10 +7224,9 @@ void genX(CmdSetEvent2)(
pc.DestinationAddressType = DAT_PPGTT,
pc.PostSyncOperation = WriteImmediateData,
pc.Address = (struct anv_address) {
cmd_buffer->device->dynamic_state_pool.block_pool.bo,
event->state.offset
};
pc.Address = anv_state_pool_state_address(
&cmd_buffer->device->dynamic_state_pool,
event->state);
pc.ImmediateData = VK_EVENT_SET;
anv_debug_dump_pc(pc);
}
@ -7257,10 +7251,9 @@ void genX(CmdResetEvent2)(
pc.DestinationAddressType = DAT_PPGTT;
pc.PostSyncOperation = WriteImmediateData;
pc.Address = (struct anv_address) {
cmd_buffer->device->dynamic_state_pool.block_pool.bo,
event->state.offset
};
pc.Address = anv_state_pool_state_address(
&cmd_buffer->device->dynamic_state_pool,
event->state);
pc.ImmediateData = VK_EVENT_RESET;
anv_debug_dump_pc(pc);
}
@ -7278,13 +7271,12 @@ void genX(CmdWaitEvents2)(
ANV_FROM_HANDLE(anv_event, event, pEvents[i]);
anv_batch_emit(&cmd_buffer->batch, GENX(MI_SEMAPHORE_WAIT), sem) {
sem.WaitMode = PollingMode,
sem.CompareOperation = COMPARE_SAD_EQUAL_SDD,
sem.SemaphoreDataDword = VK_EVENT_SET,
sem.SemaphoreAddress = (struct anv_address) {
cmd_buffer->device->dynamic_state_pool.block_pool.bo,
event->state.offset
};
sem.WaitMode = PollingMode;
sem.CompareOperation = COMPARE_SAD_EQUAL_SDD;
sem.SemaphoreDataDword = VK_EVENT_SET;
sem.SemaphoreAddress = anv_state_pool_state_address(
&cmd_buffer->device->dynamic_state_pool,
event->state);
}
}