diff --git a/src/intel/vulkan/anv_physical_device.c b/src/intel/vulkan/anv_physical_device.c index 5202f6024c3..0b802b08b95 100644 --- a/src/intel/vulkan/anv_physical_device.c +++ b/src/intel/vulkan/anv_physical_device.c @@ -101,7 +101,7 @@ get_device_descriptor_limits(const struct anv_physical_device *device, */ const uint64_t descriptor_heap_size = device->indirect_descriptors ? - device->va.indirect_descriptor_pool.size : + anv_physical_device_get_indirect_descriptor_pool_va(device)->size : anv_physical_device_get_bindless_surface_state_pool_va(device)->size; const uint32_t buffer_descriptor_size = diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index c3dd51c256d..c37fc8384bc 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1719,6 +1719,12 @@ anv_physical_device_get_bindless_surface_state_pool_va(const struct anv_physical return &pdevice->va.bindless_surface_state_pool; } +static inline const struct anv_va_range * +anv_physical_device_get_indirect_descriptor_pool_va(const struct anv_physical_device *pdevice) +{ + return &pdevice->va.indirect_descriptor_pool; +} + VkResult anv_physical_device_try_create(struct vk_instance *vk_instance, struct _drmDevice *drm_device, struct vk_physical_device **out); diff --git a/src/intel/vulkan/anv_shader.c b/src/intel/vulkan/anv_shader.c index 1fcd4b26bda..76dc9bb5a5d 100644 --- a/src/intel/vulkan/anv_shader.c +++ b/src/intel/vulkan/anv_shader.c @@ -597,14 +597,14 @@ anv_shader_set_relocs(struct anv_device *device, }; reloc_values[rv_count++] = (struct intel_shader_reloc_value) { .id = BRW_SHADER_RELOC_PUSH_DESCRIPTORS_BUFFER_ADDR_HIGH, - .value = device->physical->va.internal_surface_state_pool.addr >> 32, + .value = anv_physical_device_get_indirect_descriptor_pool_va(device->physical)->addr >> 32, }; - assert((device->physical->va.indirect_descriptor_pool.addr & 0xffffffff) == 0); + assert((anv_physical_device_get_indirect_descriptor_pool_va(device->physical)->addr & 0xffffffff) == 0); assert((device->physical->va.internal_surface_state_pool.addr & 0xffffffff) == 0); reloc_values[rv_count++] = (struct intel_shader_reloc_value) { .id = BRW_SHADER_RELOC_DESCRIPTORS_ADDR_HIGH, .value = device->physical->indirect_descriptors ? - (device->physical->va.indirect_descriptor_pool.addr >> 32) : + (anv_physical_device_get_indirect_descriptor_pool_va(device->physical)->addr >> 32) : (device->physical->va.internal_surface_state_pool.addr >> 32), }; assert((device->physical->va.shader_heap.addr & 0xffffffff) == 0);