From c58b2f0d4053df1a76dcdf5dd42fafb0522fb646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Thu, 19 Mar 2026 13:10:51 -0700 Subject: [PATCH] anv: Replace va.binding_table_pool access with a function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Jordan Justen Signed-off-by: José Roberto de Souza Part-of: --- src/intel/vulkan/anv_device.c | 8 ++++---- src/intel/vulkan/anv_private.h | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index bc3626d74e3..2236daab228 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -582,18 +582,18 @@ anv_state_pools_init(struct anv_device *device) result = anv_state_pool_init(&device->binding_table_pool, device, &(struct anv_state_pool_params) { .name = "binding table pool", - .base_address = device->physical->va.binding_table_pool.addr, + .base_address = anv_physical_device_get_binding_table_pool_va(device->physical)->addr, .block_size = device->physical->instance->drirc.perf.bt_block_size, - .max_size = device->physical->va.binding_table_pool.size, + .max_size = anv_physical_device_get_binding_table_pool_va(device->physical)->size, }); } else { /* The binding table should be in front of the surface states in virtual * address space so that all surface states can be express as relative * offsets from the binding table location. */ - assert(device->physical->va.binding_table_pool.addr < + assert(anv_physical_device_get_binding_table_pool_va(device->physical)->addr < anv_physical_device_get_internal_surface_state_pool_va(device->physical)->addr); - int64_t bt_pool_offset = (int64_t)device->physical->va.binding_table_pool.addr - + int64_t bt_pool_offset = (int64_t)anv_physical_device_get_binding_table_pool_va(device->physical)->addr - (int64_t)anv_physical_device_get_internal_surface_state_pool_va(device->physical)->addr; assert(INT32_MIN < bt_pool_offset && bt_pool_offset < 0); result = anv_state_pool_init(&device->binding_table_pool, device, diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index df17d05b593..ae35c8aee84 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1761,6 +1761,12 @@ anv_physical_device_get_aux_tt_pool_va(const struct anv_physical_device *pdevice return &pdevice->va.aux_tt_pool; } +static inline const struct anv_va_range * +anv_physical_device_get_binding_table_pool_va(const struct anv_physical_device *pdevice) +{ + return &pdevice->va.binding_table_pool; +} + VkResult anv_physical_device_try_create(struct vk_instance *vk_instance, struct _drmDevice *drm_device, struct vk_physical_device **out);