Module: Mesa Branch: main Commit: db9816fd666a53dcd6285517c558373f93b12599 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=db9816fd666a53dcd6285517c558373f93b12599
Author: Samuel Pitoiset <samuel.pitoi...@gmail.com> Date: Mon Sep 18 10:55:22 2023 +0200 radv: add support for NULL index buffer Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757> --- src/amd/vulkan/radv_cmd_buffer.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index c11d75cf337..c5c327efce2 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -5914,12 +5914,18 @@ radv_CmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDe RADV_FROM_HANDLE(radv_buffer, index_buffer, buffer); cmd_buffer->state.index_type = vk_to_index_type(indexType); - cmd_buffer->state.index_va = radv_buffer_get_va(index_buffer->bo); - cmd_buffer->state.index_va += index_buffer->offset + offset; - int index_size = radv_get_vgt_index_size(vk_to_index_type(indexType)); - cmd_buffer->state.max_index_count = (vk_buffer_range(&index_buffer->vk, offset, size)) / index_size; - radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, index_buffer->bo); + if (index_buffer) { + cmd_buffer->state.index_va = radv_buffer_get_va(index_buffer->bo); + cmd_buffer->state.index_va += index_buffer->offset + offset; + + int index_size = radv_get_vgt_index_size(vk_to_index_type(indexType)); + cmd_buffer->state.max_index_count = (vk_buffer_range(&index_buffer->vk, offset, size)) / index_size; + radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, index_buffer->bo); + } else { + cmd_buffer->state.index_va = 0; + cmd_buffer->state.max_index_count = 0; + } cmd_buffer->state.dirty |= RADV_CMD_DIRTY_INDEX_BUFFER;