Line data Source code
1 : // SPDX-License-Identifier: Apache-2.0 2 : 3 : #include "kompute/operations/OpMemoryBarrier.hpp" 4 : 5 : namespace kp { 6 : 7 1 : OpMemoryBarrier::OpMemoryBarrier( 8 : const std::vector<std::shared_ptr<Tensor>>& tensors, 9 : const vk::AccessFlagBits& srcAccessMask, 10 : const vk::AccessFlagBits& dstAccessMask, 11 : const vk::PipelineStageFlagBits& srcStageMask, 12 : const vk::PipelineStageFlagBits& dstStageMask, 13 1 : bool barrierOnPrimary) 14 1 : : mSrcAccessMask(srcAccessMask) 15 1 : , mDstAccessMask(dstAccessMask) 16 1 : , mSrcStageMask(srcStageMask) 17 1 : , mDstStageMask(dstStageMask) 18 1 : , mBarrierOnPrimary(barrierOnPrimary) 19 1 : , mTensors(tensors) 20 : { 21 2 : KP_LOG_DEBUG("Kompute OpMemoryBarrier constructor"); 22 1 : } 23 : 24 2 : OpMemoryBarrier::~OpMemoryBarrier() 25 : { 26 2 : KP_LOG_DEBUG("Kompute OpMemoryBarrier destructor started"); 27 2 : } 28 : 29 : void 30 2 : OpMemoryBarrier::record(const vk::CommandBuffer& commandBuffer) 31 : { 32 4 : KP_LOG_DEBUG("Kompute OpMemoryBarrier record called"); 33 : 34 : // Barrier to ensure the data is finished writing to buffer memory 35 2 : if (this->mBarrierOnPrimary) { 36 4 : for (const std::shared_ptr<Tensor>& tensor : this->mTensors) { 37 2 : tensor->recordPrimaryBufferMemoryBarrier(commandBuffer, 38 2 : this->mSrcAccessMask, 39 2 : this->mDstAccessMask, 40 2 : this->mSrcStageMask, 41 2 : this->mDstStageMask); 42 : } 43 : } else { 44 0 : for (const std::shared_ptr<Tensor>& tensor : this->mTensors) { 45 0 : tensor->recordStagingBufferMemoryBarrier(commandBuffer, 46 0 : this->mSrcAccessMask, 47 0 : this->mDstAccessMask, 48 0 : this->mSrcStageMask, 49 0 : this->mDstStageMask); 50 : } 51 : } 52 2 : } 53 : 54 : void 55 2 : OpMemoryBarrier::preEval(const vk::CommandBuffer& /*commandBuffer*/) 56 : { 57 4 : KP_LOG_DEBUG("Kompute OpMemoryBarrier preEval called"); 58 2 : } 59 : 60 : void 61 2 : OpMemoryBarrier::postEval(const vk::CommandBuffer& /*commandBuffer*/) 62 : { 63 4 : KP_LOG_DEBUG("Kompute OpMemoryBarrier postSubmit called"); 64 2 : } 65 : 66 : }