From 4b3bd6b0b54d998a31356bf049911004683ea64f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 10 Apr 2026 14:19:32 -0400 Subject: [PATCH] vulkan/runtime: handle null pCounterBuffers with xfb binds this is legal cc: mesa-stable Reviewed-by: Samuel Pitoiset Part-of: --- src/vulkan/runtime/vk_command_buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vulkan/runtime/vk_command_buffer.c b/src/vulkan/runtime/vk_command_buffer.c index 1afd7505f0b..54fb25e4f9b 100644 --- a/src/vulkan/runtime/vk_command_buffer.c +++ b/src/vulkan/runtime/vk_command_buffer.c @@ -613,7 +613,7 @@ vk_common_CmdBeginTransformFeedbackEXT( STACK_ARRAY(VkBindTransformFeedbackBuffer2InfoEXT, buffers, counterBufferCount); - for (uint32_t b = 0; b < counterBufferCount; b++) { + for (uint32_t b = 0; pCounterBuffers && b < counterBufferCount; b++) { VK_FROM_HANDLE(vk_buffer, buffer, pCounterBuffers[b]); buffers[b] = (VkBindTransformFeedbackBuffer2InfoEXT) { @@ -629,7 +629,7 @@ vk_common_CmdBeginTransformFeedbackEXT( &cmd_buffer->base.device->dispatch_table; disp->CmdBeginTransformFeedback2EXT( commandBuffer, firstCounterBuffer, counterBufferCount, - counterBufferCount > 0 ? buffers : NULL); + counterBufferCount > 0 && pCounterBuffers ? buffers : NULL); STACK_ARRAY_FINISH(buffers); } @@ -646,7 +646,7 @@ vk_common_CmdEndTransformFeedbackEXT( STACK_ARRAY(VkBindTransformFeedbackBuffer2InfoEXT, buffers, counterBufferCount); - for (uint32_t b = 0; b < counterBufferCount; b++) { + for (uint32_t b = 0; pCounterBuffers && b < counterBufferCount; b++) { VK_FROM_HANDLE(vk_buffer, buffer, pCounterBuffers[b]); buffers[b] = (VkBindTransformFeedbackBuffer2InfoEXT) { @@ -662,7 +662,7 @@ vk_common_CmdEndTransformFeedbackEXT( &cmd_buffer->base.device->dispatch_table; disp->CmdEndTransformFeedback2EXT( commandBuffer, firstCounterBuffer, counterBufferCount, - counterBufferCount > 0 ? buffers : NULL); + counterBufferCount > 0 && pCounterBuffers ? buffers : NULL); STACK_ARRAY_FINISH(buffers); }