diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index fb48825264b..07731cda916 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -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; } } diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index b9e0f206538..ace6d4d571a 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -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; } diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 6d64ce9c576..3af7ab97f82 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -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); diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index fbf79526600..67fbd19104e 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -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; diff --git a/src/intel/vulkan/genX_cmd_draw_generated_indirect.h b/src/intel/vulkan/genX_cmd_draw_generated_indirect.h index d8077a03877..f29e9e5666c 100644 --- a/src/intel/vulkan/genX_cmd_draw_generated_indirect.h +++ b/src/intel/vulkan/genX_cmd_draw_generated_indirect.h @@ -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; diff --git a/src/intel/vulkan/genX_init_state.c b/src/intel/vulkan/genX_init_state.c index ed43b48548b..07afa7e579b 100644 --- a/src/intel/vulkan/genX_init_state.c +++ b/src/intel/vulkan/genX_init_state.c @@ -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;