anv: Replace va.dynamic_state_pool access with a function

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42133>
This commit is contained in:
José Roberto de Souza 2026-03-19 11:30:42 -07:00 committed by Marge Bot
parent f745f87711
commit f6c0ef6a26
6 changed files with 18 additions and 12 deletions

View file

@ -672,7 +672,7 @@ anv_cmd_buffer_bind_descriptor_set(struct anv_cmd_buffer *cmd_buffer,
push->desc_surface_offsets[set_index] |= offset;
push->desc_sampler_offsets[set_index] =
anv_address_physical(set->desc_sampler_addr) -
cmd_buffer->device->physical->va.dynamic_state_pool.addr;
anv_physical_device_get_dynamic_state_pool_va(cmd_buffer->device->physical)->addr;
}
}

View file

@ -503,9 +503,9 @@ anv_state_pools_init(struct anv_device *device)
result = anv_state_pool_init(&device->dynamic_state_pool, device,
&(struct anv_state_pool_params) {
.name = "dynamic pool",
.base_address = device->physical->va.dynamic_state_pool.addr,
.base_address = anv_physical_device_get_dynamic_state_pool_va(device->physical)->addr,
.block_size = 16384,
.max_size = device->physical->va.dynamic_state_pool.size,
.max_size = anv_physical_device_get_dynamic_state_pool_va(device->physical)->size,
});
if (result != VK_SUCCESS)
goto fail_general_state_pool;
@ -804,7 +804,7 @@ VkResult anv_CreateDevice(
intel_batch_stats_reset(decoder);
decoder->engine = physical_device->queue.families[i].engine_class;
decoder->dynamic_base = physical_device->va.dynamic_state_pool.addr;
decoder->dynamic_base = anv_physical_device_get_dynamic_state_pool_va(physical_device)->addr;
decoder->surface_base = anv_physical_device_get_internal_surface_state_pool_va(physical_device)->addr;
decoder->instruction_base = physical_device->va.shader_heap.addr;
}

View file

@ -1737,6 +1737,12 @@ anv_physical_device_get_internal_surface_state_pool_va(const struct anv_physical
return &pdevice->va.internal_surface_state_pool;
}
static inline const struct anv_va_range *
anv_physical_device_get_dynamic_state_pool_va(const struct anv_physical_device *pdevice)
{
return &pdevice->va.dynamic_state_pool;
}
VkResult anv_physical_device_try_create(struct vk_instance *vk_instance,
struct _drmDevice *drm_device,
struct vk_physical_device **out);

View file

@ -181,10 +181,10 @@ fill_state_base_addr(struct anv_cmd_buffer *cmd_buffer,
#endif
sba->DynamicStateBaseAddress = (struct anv_address) {
.offset = device->physical->va.dynamic_state_pool.addr,
.offset = anv_physical_device_get_dynamic_state_pool_va(device->physical)->addr,
};
sba->DynamicStateBufferSize =
(device->physical->va.dynamic_state_pool.size +
(anv_physical_device_get_dynamic_state_pool_va(device->physical)->size +
anv_physical_device_get_dynamic_visible_pool_va(device->physical)->size +
device->physical->va.push_descriptor_buffer_pool.size) / 4096;
sba->DynamicStateMOCS = mocs;
@ -3435,7 +3435,7 @@ compute_descriptor_set_sampler_offset(const struct anv_cmd_buffer *cmd_buffer,
device->va.push_descriptor_buffer_pool.addr :
cmd_buffer->state.descriptor_buffers.address[buffer_index];
return (buffer_address - device->va.dynamic_state_pool.addr) +
return (buffer_address - anv_physical_device_get_dynamic_state_pool_va(device)->addr) +
pipe_state->descriptor_buffers[set_idx].buffer_offset;
}
@ -3470,7 +3470,7 @@ genX(flush_descriptor_buffers)(struct anv_cmd_buffer *cmd_buffer,
cmd_buffer->device->physical->va.dynamic_visible_pool.addr;
push_constants->desc_surface_offsets[1] =
cmd_buffer->state.descriptor_buffers.samplers_address -
cmd_buffer->device->physical->va.dynamic_state_pool.addr;
anv_physical_device_get_dynamic_state_pool_va(cmd_buffer->device->physical)->addr;
cmd_buffer->state.push_constants_dirty |=
(cmd_buffer->state.descriptor_buffers.offsets_dirty & active_stages);
pipe_state->push_constants_data_dirty = true;

View file

@ -289,9 +289,9 @@ genX(cmd_buffer_emit_indirect_generated_draws_inplace)(struct anv_cmd_buffer *cm
genX(cmd_buffer_set_binding_for_gfx8_vb_flush)(
cmd_buffer, 0,
(struct anv_address) {
.offset = device->physical->va.dynamic_state_pool.addr,
.offset = anv_physical_device_get_dynamic_state_pool_va(device->physical)->addr,
},
device->physical->va.dynamic_state_pool.size);
anv_physical_device_get_dynamic_state_pool_va(device->physical)->size);
}
const struct anv_cmd_graphics_state *gfx = &cmd_buffer->state.gfx;

View file

@ -270,9 +270,9 @@ init_common_queue_state(struct anv_queue *queue, struct anv_batch *batch)
sba.DynamicStateBaseAddress =
(struct anv_address) { .offset =
device->physical->va.dynamic_state_pool.addr,
anv_physical_device_get_dynamic_state_pool_va(device->physical)->addr,
};
sba.DynamicStateBufferSize = (device->physical->va.dynamic_state_pool.size +
sba.DynamicStateBufferSize = (anv_physical_device_get_dynamic_state_pool_va(device->physical)->size +
anv_physical_device_get_dynamic_visible_pool_va(device->physical)->size) / 4096;
sba.DynamicStateMOCS = mocs;
sba.DynamicStateBaseAddressModifyEnable = true;