Commit 943c3bc1 by Jian Li Committed by Commit Bot

Vulkan: Fix transform feedback on AMD platform

Make sure pCounterBufferOffsets is never a null pointer when counterBufferCount is greater than zero. Bug: angleproject:3206 Change-Id: If161473239b53d2a65b1cccaaf1426a4fefd243a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152030 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 005793e4
......@@ -493,8 +493,12 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
getParamPtr<BeginTransformFeedbackParams>(currentCommand);
const VkBuffer *counterBuffers =
Offset<VkBuffer>(params, sizeof(BeginTransformFeedbackParams));
// Workaround for AMD driver bug where it expects the offsets array to be
// non-null
gl::TransformFeedbackBuffersArray<VkDeviceSize> offsets;
offsets.fill(0);
vkCmdBeginTransformFeedbackEXT(cmdBuffer, 0, params->bufferCount,
counterBuffers, nullptr);
counterBuffers, offsets.data());
break;
}
case CommandID::EndTransformFeedback:
......@@ -503,8 +507,12 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
getParamPtr<EndTransformFeedbackParams>(currentCommand);
const VkBuffer *counterBuffers =
Offset<VkBuffer>(params, sizeof(EndTransformFeedbackParams));
// Workaround for AMD driver bug where it expects the offsets array to be
// non-null
gl::TransformFeedbackBuffersArray<VkDeviceSize> offsets;
offsets.fill(0);
vkCmdEndTransformFeedbackEXT(cmdBuffer, 0, params->bufferCount, counterBuffers,
nullptr);
offsets.data());
break;
}
default:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment