vulkan/runtime: handle null pCounterBuffers with xfb binds
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

this is legal

cc: mesa-stable

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40892>
This commit is contained in:
Mike Blumenkrantz 2026-04-10 14:19:32 -04:00 committed by Marge Bot
parent 9ff879441f
commit 4b3bd6b0b5

View file

@ -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);
}