LCOV - code coverage report
Current view: top level - src - OpMemoryBarrier.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 29 35 82.9 %
Date: 2024-01-20 13:42:20 Functions: 6 6 100.0 %

          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             : }

Generated by: LCOV version 1.14