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>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32785>
This commit is contained in:
committed by
Marge Bot
parent
96cb12ac68
commit
5e4aeb3ad7
@@ -6169,14 +6169,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