Module: Mesa Branch: main Commit: 3b5615500af2d96a3689445e6c2b88bc479eab0b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b5615500af2d96a3689445e6c2b88bc479eab0b
Author: Iván Briano <ivan.bri...@intel.com> Date: Tue Sep 19 17:17:49 2023 -0700 anv: allow NULL index buffers Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842> --- src/intel/vulkan/genX_cmd_buffer.c | 2 +- src/intel/vulkan/genX_gfx_state.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 469a15943e0..600f5be96a6 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -8408,7 +8408,7 @@ void genX(CmdBindIndexBuffer2KHR)( 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 = vk_buffer_range(&buffer->vk, offset, size); + cmd_buffer->state.gfx.index_size = buffer ? vk_buffer_range(&buffer->vk, offset, size) : 0; cmd_buffer->state.gfx.dirty |= ANV_CMD_DIRTY_INDEX_BUFFER; } } diff --git a/src/intel/vulkan/genX_gfx_state.c b/src/intel/vulkan/genX_gfx_state.c index 21f1aa005b2..d3fca497893 100644 --- a/src/intel/vulkan/genX_gfx_state.c +++ b/src/intel/vulkan/genX_gfx_state.c @@ -1821,13 +1821,15 @@ cmd_buffer_gfx_state_emission(struct anv_cmd_buffer *cmd_buffer) anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_INDEX_BUFFER), ib) { ib.IndexFormat = gfx->index_type; ib.MOCS = anv_mocs(cmd_buffer->device, - buffer->address.bo, + buffer ? buffer->address.bo : NULL, ISL_SURF_USAGE_INDEX_BUFFER_BIT); #if GFX_VER >= 12 ib.L3BypassDisable = true; #endif - ib.BufferStartingAddress = anv_address_add(buffer->address, offset); - ib.BufferSize = gfx->index_size; + if (buffer) { + ib.BufferStartingAddress = anv_address_add(buffer->address, offset); + ib.BufferSize = gfx->index_size; + } } }