hasvk: Pre-plumbing needed for VK_KHR_maintenance5

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34298>
This commit is contained in:
irql-notlessorequal 2025-03-31 13:37:00 +02:00 committed by Marge Bot
parent 255166a349
commit 0d6d23a54f
3 changed files with 6 additions and 5 deletions

View file

@ -2442,6 +2442,7 @@ struct anv_cmd_graphics_state {
struct anv_buffer *index_buffer; struct anv_buffer *index_buffer;
uint32_t index_type; /**< 3DSTATE_INDEX_BUFFER.IndexFormat */ uint32_t index_type; /**< 3DSTATE_INDEX_BUFFER.IndexFormat */
uint32_t index_offset; uint32_t index_offset;
uint32_t index_size;
struct vk_sample_locations_state sample_locations; struct vk_sample_locations_state sample_locations;
@ -2838,7 +2839,7 @@ struct anv_graphics_pipeline {
/* Shaders */ /* Shaders */
struct anv_shader_bin * shaders[ANV_GRAPHICS_SHADER_STAGE_COUNT]; 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_sample_locations_state sample_locations;
struct vk_dynamic_graphics_state dynamic_state; struct vk_dynamic_graphics_state dynamic_state;

View file

@ -5899,10 +5899,11 @@ static uint32_t vk_to_intel_index_type(VkIndexType type)
} }
} }
void genX(CmdBindIndexBuffer)( void genX(CmdBindIndexBuffer2KHR)(
VkCommandBuffer commandBuffer, VkCommandBuffer commandBuffer,
VkBuffer _buffer, VkBuffer _buffer,
VkDeviceSize offset, VkDeviceSize offset,
VkDeviceSize size,
VkIndexType indexType) VkIndexType indexType)
{ {
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer); 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_buffer = buffer;
cmd_buffer->state.gfx.index_type = vk_to_intel_index_type(indexType); cmd_buffer->state.gfx.index_type = vk_to_intel_index_type(indexType);
cmd_buffer->state.gfx.index_offset = offset; 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; cmd_buffer->state.gfx.dirty |= ANV_CMD_DIRTY_INDEX_BUFFER;
} }

View file

@ -349,8 +349,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer)
buffer->address.bo, buffer->address.bo,
ISL_SURF_USAGE_INDEX_BUFFER_BIT); ISL_SURF_USAGE_INDEX_BUFFER_BIT);
ib.BufferStartingAddress = anv_address_add(buffer->address, offset); ib.BufferStartingAddress = anv_address_add(buffer->address, offset);
ib.BufferSize = vk_buffer_range(&buffer->vk, offset, ib.BufferSize = cmd_buffer->state.gfx.index_size;
VK_WHOLE_SIZE);
} }
} }