Line data Source code
1 : // SPDX-License-Identifier: Apache-2.0 2 : 3 : #include "kompute/operations/OpAlgoDispatch.hpp" 4 : 5 : namespace kp { 6 : 7 88 : OpAlgoDispatch::~OpAlgoDispatch() 8 : { 9 92 : KP_LOG_DEBUG("Kompute OpAlgoDispatch destructor started"); 10 : 11 46 : if (this->mPushConstantsData) { 12 22 : KP_LOG_DEBUG("Kompute freeing push constants data"); 13 11 : free(this->mPushConstantsData); 14 : } 15 88 : } 16 : 17 : void 18 47 : OpAlgoDispatch::record(const vk::CommandBuffer& commandBuffer) 19 : { 20 94 : KP_LOG_DEBUG("Kompute OpAlgoDispatch record called"); 21 : 22 : // Barrier to ensure the data is finished writing to buffer memory 23 47 : for (const std::shared_ptr<Tensor>& tensor : 24 187 : this->mAlgorithm->getTensors()) { 25 93 : tensor->recordPrimaryBufferMemoryBarrier( 26 : commandBuffer, 27 : vk::AccessFlagBits::eTransferWrite, 28 : vk::AccessFlagBits::eShaderRead, 29 : vk::PipelineStageFlagBits::eTransfer, 30 : vk::PipelineStageFlagBits::eComputeShader); 31 : } 32 : 33 47 : if (this->mPushConstantsSize) { 34 11 : this->mAlgorithm->setPushConstants( 35 : this->mPushConstantsData, 36 : this->mPushConstantsSize, 37 : this->mPushConstantsDataTypeMemorySize); 38 : } 39 : 40 46 : this->mAlgorithm->recordBindCore(commandBuffer); 41 46 : this->mAlgorithm->recordBindPush(commandBuffer); 42 46 : this->mAlgorithm->recordDispatch(commandBuffer); 43 46 : } 44 : 45 : void 46 253 : OpAlgoDispatch::preEval(const vk::CommandBuffer& /*commandBuffer*/) 47 : { 48 506 : KP_LOG_DEBUG("Kompute OpAlgoDispatch preEval called"); 49 253 : } 50 : 51 : void 52 251 : OpAlgoDispatch::postEval(const vk::CommandBuffer& /*commandBuffer*/) 53 : { 54 502 : KP_LOG_DEBUG("Kompute OpAlgoDispatch postSubmit called"); 55 251 : } 56 : 57 : }