From 0d6d23a54fc53d9ae43a796617f90fa9c81b84ad Mon Sep 17 00:00:00 2001 From: irql-notlessorequal Date: Mon, 31 Mar 2025 13:37:00 +0200 Subject: [PATCH] hasvk: Pre-plumbing needed for VK_KHR_maintenance5 Part-of: --- src/intel/vulkan_hasvk/anv_private.h | 3 ++- src/intel/vulkan_hasvk/genX_cmd_buffer.c | 5 +++-- src/intel/vulkan_hasvk/gfx8_cmd_buffer.c | 3 +-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/intel/vulkan_hasvk/anv_private.h b/src/intel/vulkan_hasvk/anv_private.h index fc5b3e8ef65..2ae07aac467 100644 --- a/src/intel/vulkan_hasvk/anv_private.h +++ b/src/intel/vulkan_hasvk/anv_private.h @@ -2442,6 +2442,7 @@ struct anv_cmd_graphics_state { struct anv_buffer *index_buffer; uint32_t index_type; /**< 3DSTATE_INDEX_BUFFER.IndexFormat */ uint32_t index_offset; + uint32_t index_size; struct vk_sample_locations_state sample_locations; @@ -2838,7 +2839,7 @@ struct anv_graphics_pipeline { /* Shaders */ struct anv_shader_bin * shaders[ANV_GRAPHICS_SHADER_STAGE_COUNT]; - VkShaderStageFlags active_stages; + VkPipelineCreateFlags2KHR active_stages; struct vk_sample_locations_state sample_locations; struct vk_dynamic_graphics_state dynamic_state; diff --git a/src/intel/vulkan_hasvk/genX_cmd_buffer.c b/src/intel/vulkan_hasvk/genX_cmd_buffer.c index 8f602a52d4d..7c95cd7f68b 100644 --- a/src/intel/vulkan_hasvk/genX_cmd_buffer.c +++ b/src/intel/vulkan_hasvk/genX_cmd_buffer.c @@ -5899,10 +5899,11 @@ static uint32_t vk_to_intel_index_type(VkIndexType type) } } -void genX(CmdBindIndexBuffer)( +void genX(CmdBindIndexBuffer2KHR)( VkCommandBuffer commandBuffer, VkBuffer _buffer, VkDeviceSize offset, + VkDeviceSize size, VkIndexType indexType) { ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer); @@ -5912,7 +5913,7 @@ void genX(CmdBindIndexBuffer)( cmd_buffer->state.gfx.index_buffer = buffer; cmd_buffer->state.gfx.index_type = vk_to_intel_index_type(indexType); cmd_buffer->state.gfx.index_offset = offset; - + cmd_buffer->state.gfx.index_size = vk_buffer_range(&buffer->vk, offset, size); cmd_buffer->state.gfx.dirty |= ANV_CMD_DIRTY_INDEX_BUFFER; } diff --git a/src/intel/vulkan_hasvk/gfx8_cmd_buffer.c b/src/intel/vulkan_hasvk/gfx8_cmd_buffer.c index 4583f1ecb93..f4a367e6728 100644 --- a/src/intel/vulkan_hasvk/gfx8_cmd_buffer.c +++ b/src/intel/vulkan_hasvk/gfx8_cmd_buffer.c @@ -349,8 +349,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer) buffer->address.bo, ISL_SURF_USAGE_INDEX_BUFFER_BIT); ib.BufferStartingAddress = anv_address_add(buffer->address, offset); - ib.BufferSize = vk_buffer_range(&buffer->vk, offset, - VK_WHOLE_SIZE); + ib.BufferSize = cmd_buffer->state.gfx.index_size; } }