diff --git a/test/TestMultipleAlgoExecutions.cpp b/test/TestMultipleAlgoExecutions.cpp index 932661dd4..f826c3fa1 100644 --- a/test/TestMultipleAlgoExecutions.cpp +++ b/test/TestMultipleAlgoExecutions.cpp @@ -92,11 +92,23 @@ TEST(TestMultipleAlgoExecutions, SingleSequenceRecord) std::vector spirv = kp::Shader::compileSource(shader); { + // A sharedMemoryBarrier is required as the shader is not thread-safe:w + std::shared_ptr shaderBarrier{ + new kp::OpMemoryBarrier({ tensorA }, + vk::AccessFlagBits::eTransferRead, + vk::AccessFlagBits::eShaderWrite, + vk::PipelineStageFlagBits::eComputeShader, + vk::PipelineStageFlagBits::eComputeShader) + }; + mgr.sequence() ->record({ tensorA }) ->record(mgr.algorithm({ tensorA }, spirv)) + ->record(shaderBarrier) ->record(mgr.algorithm({ tensorA }, spirv)) + ->record(shaderBarrier) ->record(mgr.algorithm({ tensorA }, spirv)) + ->record(shaderBarrier) ->record({ tensorA }) ->eval(); }