From f6c804edc01b27e47e46cf03118ec9e4cd2eeb10 Mon Sep 17 00:00:00 2001 From: "Andryeyev, German" Date: Tue, 15 Apr 2025 11:49:53 -0400 Subject: [PATCH] SWDEV-526836 - Switch PAL backend to CmdReleaseThenAcquire() (#175) --- rocclr/device/pal/palvirtual.hpp | 38 +++++++++++++++----------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/rocclr/device/pal/palvirtual.hpp b/rocclr/device/pal/palvirtual.hpp index e1fb718b3f..8a21da8367 100644 --- a/rocclr/device/pal/palvirtual.hpp +++ b/rocclr/device/pal/palvirtual.hpp @@ -491,31 +491,29 @@ class VirtualGPU : public device::VirtualDevice { void addBarrier(RgpSqqtBarrierReason reason = RgpSqqtBarrierReason::MemDependency, BarrierType type = BarrierType::KernelToKernel) const { - Pal::BarrierInfo barrier = {}; - barrier.pipePointWaitCount = 1; - Pal::HwPipePoint point = Pal::HwPipePostCs; - barrier.pPipePoints = &point; - barrier.transitionCount = 1; - Pal::BarrierTransition trans = {}; - trans.srcCacheMask = Pal::CoherShader; - trans.dstCacheMask = Pal::CoherShader; - trans.imageInfo.oldLayout.usages = Pal::LayoutShaderRead; - trans.imageInfo.oldLayout.engines = Pal::LayoutComputeEngine; - trans.imageInfo.newLayout.usages = Pal::LayoutShaderRead; - trans.imageInfo.newLayout.engines = Pal::LayoutComputeEngine; + Pal::AcquireReleaseInfo barrier = { + .srcGlobalStageMask = Pal::PipelineStageCs, + .dstGlobalStageMask = Pal::PipelineStageCs, + .srcGlobalAccessMask = Pal::CoherShader, + .dstGlobalAccessMask = Pal::CoherShader, + .memoryBarrierCount = 0, + .pMemoryBarriers = nullptr, + .imageBarrierCount = 0, + .pImageBarriers = nullptr, + .reason = static_cast(reason) + }; + if (type == BarrierType::KernelToCopy) { - trans.dstCacheMask = Pal::CoherCopy; + barrier.dstGlobalAccessMask = Pal::CoherCopy; } else if (type == BarrierType::CopyToKernel) { - trans.srcCacheMask = Pal::CoherCopy; + barrier.srcGlobalAccessMask = Pal::CoherCopy; } else if (type == BarrierType::CopyToCopy) { - trans.dstCacheMask = trans.srcCacheMask = Pal::CoherCopy; + barrier.srcGlobalAccessMask = barrier.dstGlobalAccessMask = Pal::CoherCopy; } else if (type == BarrierType::FlushL2) { - trans.dstCacheMask = trans.srcCacheMask = Pal::CoherCopy | Pal::CoherCpu; + barrier.srcGlobalAccessMask = barrier.dstGlobalAccessMask = Pal::CoherCopy | Pal::CoherCpu; } - barrier.pTransitions = &trans; - barrier.waitPoint = Pal::HwPipePreCs; - barrier.reason = static_cast(reason); - iCmd()->CmdBarrier(barrier); + + iCmd()->CmdReleaseThenAcquire(barrier); queues_[engineID_]->submit(false); }