Nice catch. Reviewed-by: Bas Nieuwenhuizen <[email protected]>
On Mon, Mar 6, 2017 at 3:54 PM, Alex Smith <[email protected]> wrote: > 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 <[email protected]> > --- > 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 > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
