pvr: implement CmdBindIndexBuffer2

As index buffer bound checking isn't yet supported by the driver, the
newly added size parameter is just assert-checked.

Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41569>
This commit is contained in:
Icenowy Zheng 2026-05-14 01:33:25 +08:00 committed by Marge Bot
parent 55b21dd459
commit 201c2b781c

View file

@ -3057,16 +3057,18 @@ void PVR_PER_ARCH(CmdBindVertexBuffers2)(VkCommandBuffer commandBuffer,
cmd_buffer->state.dirty.vertex_bindings = true;
}
void PVR_PER_ARCH(CmdBindIndexBuffer)(VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkIndexType indexType)
void PVR_PER_ARCH(CmdBindIndexBuffer2)(VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
ASSERTED VkDeviceSize size,
VkIndexType indexType)
{
VK_FROM_HANDLE(pvr_cmd_buffer, cmd_buffer, commandBuffer);
VK_FROM_HANDLE(pvr_buffer, index_buffer, buffer);
struct pvr_cmd_buffer_state *const state = &cmd_buffer->state;
assert(offset < index_buffer->vk.size);
assert(size == VK_WHOLE_SIZE || offset + size <= index_buffer->vk.size);
assert(indexType == VK_INDEX_TYPE_UINT32 ||
indexType == VK_INDEX_TYPE_UINT16 ||
indexType == VK_INDEX_TYPE_UINT8_KHR);