From 5c2aca456eebc8c3a219fe56adcf21a0b9675b4a Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Wed, 8 Mar 2023 12:35:27 +0200 Subject: [PATCH] anv: implement vkCmdBindIndexBuffer2KHR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lionel Landwerlin Reviewed-by: José Roberto de Souza Part-of: --- src/intel/vulkan/anv_private.h | 1 + src/intel/vulkan/genX_cmd_buffer.c | 4 +++- src/intel/vulkan/gfx8_cmd_buffer.c | 3 +-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 180d1a2ddd8..4395a1aff9c 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -2831,6 +2831,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_vertex_input_state vertex_input; struct vk_sample_locations_state sample_locations; diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 0751c90c68d..0bca7bc22a5 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -8180,10 +8180,11 @@ static uint32_t restart_index_for_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); @@ -8202,6 +8203,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/gfx8_cmd_buffer.c b/src/intel/vulkan/gfx8_cmd_buffer.c index ef4e3859692..3d65f48e1b1 100644 --- a/src/intel/vulkan/gfx8_cmd_buffer.c +++ b/src/intel/vulkan/gfx8_cmd_buffer.c @@ -797,8 +797,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer) ib.L3BypassDisable = true; #endif 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; } }