Spaces:
Runtime error
Runtime error
// SPDX-License-Identifier: Apache-2.0 | |
namespace kp { | |
OpMemoryBarrier::OpMemoryBarrier( | |
const std::vector<std::shared_ptr<Tensor>>& tensors, | |
const vk::AccessFlagBits& srcAccessMask, | |
const vk::AccessFlagBits& dstAccessMask, | |
const vk::PipelineStageFlagBits& srcStageMask, | |
const vk::PipelineStageFlagBits& dstStageMask, | |
bool barrierOnPrimary) | |
: mSrcAccessMask(srcAccessMask) | |
, mDstAccessMask(dstAccessMask) | |
, mSrcStageMask(srcStageMask) | |
, mDstStageMask(dstStageMask) | |
, mBarrierOnPrimary(barrierOnPrimary) | |
, mTensors(tensors) | |
{ | |
KP_LOG_DEBUG("Kompute OpMemoryBarrier constructor"); | |
} | |
OpMemoryBarrier::~OpMemoryBarrier() | |
{ | |
KP_LOG_DEBUG("Kompute OpMemoryBarrier destructor started"); | |
} | |
void | |
OpMemoryBarrier::record(const vk::CommandBuffer& commandBuffer) | |
{ | |
KP_LOG_DEBUG("Kompute OpMemoryBarrier record called"); | |
// Barrier to ensure the data is finished writing to buffer memory | |
if (this->mBarrierOnPrimary) { | |
for (const std::shared_ptr<Tensor>& tensor : this->mTensors) { | |
tensor->recordPrimaryBufferMemoryBarrier(commandBuffer, | |
this->mSrcAccessMask, | |
this->mDstAccessMask, | |
this->mSrcStageMask, | |
this->mDstStageMask); | |
} | |
} else { | |
for (const std::shared_ptr<Tensor>& tensor : this->mTensors) { | |
tensor->recordStagingBufferMemoryBarrier(commandBuffer, | |
this->mSrcAccessMask, | |
this->mDstAccessMask, | |
this->mSrcStageMask, | |
this->mDstStageMask); | |
} | |
} | |
} | |
void | |
OpMemoryBarrier::preEval(const vk::CommandBuffer& /*commandBuffer*/) | |
{ | |
KP_LOG_DEBUG("Kompute OpMemoryBarrier preEval called"); | |
} | |
void | |
OpMemoryBarrier::postEval(const vk::CommandBuffer& /*commandBuffer*/) | |
{ | |
KP_LOG_DEBUG("Kompute OpMemoryBarrier postSubmit called"); | |
} | |
} | |