panvk: Skip BY_REGION barriers if we're in a render pass

If we are in a render pass, the intra-draw synchronization happens
through the FPK parameters, shader waits and draw dependencies, so we
can safely skip the barrier in that case.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32540>
This commit is contained in:
Boris Brezillon
2025-01-24 15:50:00 +01:00
committed by Marge Bot
parent bfd5ddbf32
commit 7a2b23b0bd
@@ -539,6 +539,12 @@ panvk_per_arch(CmdPipelineBarrier2)(VkCommandBuffer commandBuffer,
VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer);
struct panvk_cs_deps deps;
/* Intra render pass barriers can be skipped iff we're inside a render
* pass. */
if ((cmdbuf->state.gfx.render.tiler || inherits_render_ctx(cmdbuf)) &&
(pDependencyInfo->dependencyFlags & VK_DEPENDENCY_BY_REGION_BIT))
return;
panvk_per_arch(get_cs_deps)(cmdbuf, pDependencyInfo, &deps);
if (deps.needs_draw_flush)