diff --git a/Engine/gapi/directx12/dxcommandbuffer.cpp b/Engine/gapi/directx12/dxcommandbuffer.cpp index c6826769..90c2e308 100644 --- a/Engine/gapi/directx12/dxcommandbuffer.cpp +++ b/Engine/gapi/directx12/dxcommandbuffer.cpp @@ -419,8 +419,8 @@ void DxCommandBuffer::beginRendering(const FrameBufferDesc& fbo, size_t fboSize, } void DxCommandBuffer::endRendering() { - resState.endRendering(*this); resState.onUavUsage(bindings.read, bindings.write, PipelineStage::S_Graphics); + resState.endRendering(*this); impl->EndRenderPass(); } diff --git a/Engine/gapi/vulkan/vcommandbuffer.cpp b/Engine/gapi/vulkan/vcommandbuffer.cpp index e892e138..c13c9434 100644 --- a/Engine/gapi/vulkan/vcommandbuffer.cpp +++ b/Engine/gapi/vulkan/vcommandbuffer.cpp @@ -352,11 +352,11 @@ void VCommandBuffer::beginRendering(const FrameBufferDesc& fbo, size_t fboSize, void VCommandBuffer::endRendering() { vkCmdEndRenderingKHR(impl); + resState.onUavUsage(bindings.read, bindings.write, PipelineStage::S_Graphics); resState.flush(*this); resState.endRendering(*this); state = PostRenderPass; - resState.onUavUsage(bindings.read, bindings.write, PipelineStage::S_Graphics); } void VCommandBuffer::setPipeline(AbstractGraphicsApi::Pipeline& p) { diff --git a/Tests/shader/comp_test.frag b/Tests/shader/comp_test.frag index 155099b1..916fe654 100644 --- a/Tests/shader/comp_test.frag +++ b/Tests/shader/comp_test.frag @@ -9,5 +9,5 @@ layout(binding = 0, std140) readonly buffer Input { } ssbo; void main() { - outColor = vec4(0.25,0.5,0.75,1.0);//ssbo.val[int(gl_FragCoord.x)]; + outColor = ssbo.val[int(gl_FragCoord.x)]; } diff --git a/Tests/tests/gapi/gapi_test_sync.h b/Tests/tests/gapi/gapi_test_sync.h index 5ea67851..22a4eafa 100644 --- a/Tests/tests/gapi/gapi_test_sync.h +++ b/Tests/tests/gapi/gapi_test_sync.h @@ -63,6 +63,15 @@ void DispathToDraw(const char* outImage) { auto pm = device.readPixels(tex); pm.save(outImage); + + ImageValidator val(pm); + const float color[4] = {0.25f, 0.5f, 0.75f, 1.f}; + for(uint32_t y=0; y images; + }; + std::vector barriers; + void beginRendering(const FrameBufferDesc& fbo, size_t fboSize, uint32_t width, uint32_t height) override {} void endRendering() override {} @@ -110,6 +116,7 @@ struct TestCommandBuffer : Tempest::AbstractGraphicsApi::CommandBuffer { }; void TestCommandBuffer::barrier(const AbstractGraphicsApi::SyncDesc& d, const AbstractGraphicsApi::BarrierDesc* desc, size_t cnt) { + barriers.push_back({d, {desc, desc+cnt}}); Log::d("---"); for(size_t i=0; i