[Mesa-dev] [PATCH] radv: Emit pending flushes before executing a secondary command buffer
Alex Smith
asmith at feralinteractive.com
Mon Mar 6 14:54:28 UTC 2017
If we have any pending flushes on the primary command buffer, these
must be performed before executing the secondary buffer.
This fixes potential corruption when the contents of a subpass which
clears any of its render targets are given in a secondary buffer: the
flushes after a fast clear would not have been performed until the
vkCmdEndRenderPass call.
Signed-off-by: Alex Smith <asmith at feralinteractive.com>
---
src/amd/vulkan/radv_cmd_buffer.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 3ff5250..d99288a 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -2110,6 +2110,9 @@ void radv_CmdExecuteCommands(
{
RADV_FROM_HANDLE(radv_cmd_buffer, primary, commandBuffer);
+ /* Emit pending flushes on primary prior to executing secondary */
+ si_emit_cache_flush(primary);
+
for (uint32_t i = 0; i < commandBufferCount; i++) {
RADV_FROM_HANDLE(radv_cmd_buffer, secondary, pCmdBuffers[i]);
--
2.7.4
More information about the mesa-dev
mailing list