anv: fix index buffer size changes
With vkCmdBindIndexBuffer2KHR only the provided size can change which currently fails to reprogram the index buffer properly. Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com> Fixes:5c2aca456e
("anv: implement vkCmdBindIndexBuffer2KHR") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12376 Reviewed-by: Tapani Pälli <tapani.palli@intel.com> (cherry picked from commit5e4aeb3ad7
) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32852>
This commit is contained in:

committed by
Dylan Baker

parent
cc58288510
commit
7bea0dd536
@@ -6147,14 +6147,16 @@ void genX(CmdBindIndexBuffer2KHR)(
|
||||
cmd_buffer->state.gfx.dirty |= ANV_CMD_DIRTY_RESTART_INDEX;
|
||||
}
|
||||
|
||||
uint32_t index_size = buffer ? vk_buffer_range(&buffer->vk, offset, size) : 0;
|
||||
uint32_t index_type = vk_to_intel_index_type(indexType);
|
||||
if (cmd_buffer->state.gfx.index_buffer != buffer ||
|
||||
cmd_buffer->state.gfx.index_type != index_type ||
|
||||
cmd_buffer->state.gfx.index_offset != offset) {
|
||||
cmd_buffer->state.gfx.index_offset != offset ||
|
||||
cmd_buffer->state.gfx.index_size != index_size) {
|
||||
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 = buffer ? vk_buffer_range(&buffer->vk, offset, size) : 0;
|
||||
cmd_buffer->state.gfx.index_size = index_size;
|
||||
cmd_buffer->state.gfx.dirty |= ANV_CMD_DIRTY_INDEX_BUFFER;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user