From 71d66bc3cfaf6ff17bc734b6ede99ef245d89dcb Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Mon, 19 Jul 2021 15:20:01 +0200 Subject: [PATCH] [#100] This is getting out of hands! Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- .../include/vkcv/upscaling/FSRUpscaling.hpp | 3 ++- .../src/vkcv/upscaling/FSRUpscaling.cpp | 22 ++++++++++--------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/modules/upscaling/include/vkcv/upscaling/FSRUpscaling.hpp b/modules/upscaling/include/vkcv/upscaling/FSRUpscaling.hpp index 955eb805..50f6eda3 100644 --- a/modules/upscaling/include/vkcv/upscaling/FSRUpscaling.hpp +++ b/modules/upscaling/include/vkcv/upscaling/FSRUpscaling.hpp @@ -36,7 +36,8 @@ namespace vkcv::upscaling { DescriptorSetHandle m_easuDescriptorSet; DescriptorSetHandle m_rcasDescriptorSet; - Buffer<FSRConstants> m_constants; + Buffer<FSRConstants> m_easuConstants; + Buffer<FSRConstants> m_rcasConstants; ImageHandle m_intermediateImage; SamplerHandle m_sampler; diff --git a/modules/upscaling/src/vkcv/upscaling/FSRUpscaling.cpp b/modules/upscaling/src/vkcv/upscaling/FSRUpscaling.cpp index 366e8561..44be1052 100644 --- a/modules/upscaling/src/vkcv/upscaling/FSRUpscaling.cpp +++ b/modules/upscaling/src/vkcv/upscaling/FSRUpscaling.cpp @@ -142,8 +142,12 @@ namespace vkcv::upscaling { m_rcasPipeline(), m_easuDescriptorSet(m_core.createDescriptorSet(getDescriptorBindings())), m_rcasDescriptorSet(m_core.createDescriptorSet(getDescriptorBindings())), - m_constants(m_core.createBuffer<FSRConstants>( - BufferType::UNIFORM,2, + m_easuConstants(m_core.createBuffer<FSRConstants>( + BufferType::UNIFORM,1, + BufferMemoryType::HOST_VISIBLE + )), + m_rcasConstants(m_core.createBuffer<FSRConstants>( + BufferType::UNIFORM,1, BufferMemoryType::HOST_VISIBLE )), m_intermediateImage(), @@ -193,8 +197,7 @@ namespace vkcv::upscaling { DescriptorWrites writes; writes.uniformBufferWrites.emplace_back( - 0, m_constants.getHandle(), - true, 0, sizeof(FSRConstants) + 0, m_easuConstants.getHandle(),true ); writes.samplerWrites.emplace_back(3, m_sampler); @@ -215,8 +218,7 @@ namespace vkcv::upscaling { DescriptorWrites writes; writes.uniformBufferWrites.emplace_back( - 0, m_constants.getHandle(), - true, sizeof(FSRConstants), sizeof(FSRConstants) + 0, m_rcasConstants.getHandle(),true ); writes.samplerWrites.emplace_back(3, m_sampler); @@ -264,7 +266,7 @@ namespace vkcv::upscaling { consts.Sample[0] = (((m_hdr) && (!rcasEnabled)) ? 1 : 0); - m_constants.fill(&consts, 1, 0); + m_easuConstants.fill(&consts); } static const uint32_t threadGroupWorkRegionDim = 16; @@ -274,7 +276,7 @@ namespace vkcv::upscaling { dispatch[1] = (outputHeight + (threadGroupWorkRegionDim - 1)) / threadGroupWorkRegionDim; dispatch[2] = 1; - m_core.recordBufferMemoryBarrier(cmdStream, m_constants.getHandle()); + m_core.recordBufferMemoryBarrier(cmdStream, m_easuConstants.getHandle()); if (rcasEnabled) { { @@ -308,10 +310,10 @@ namespace vkcv::upscaling { FsrRcasCon(consts.Const0, (1.0f - m_sharpness) * 2.0f); consts.Sample[0] = (m_hdr ? 1 : 0); - m_constants.fill(&consts, 1, 1); + m_rcasConstants.fill(&consts); } - m_core.recordBufferMemoryBarrier(cmdStream, m_constants.getHandle()); + m_core.recordBufferMemoryBarrier(cmdStream, m_rcasConstants.getHandle()); m_core.prepareImageForSampling(cmdStream, m_intermediateImage); m_core.recordComputeDispatchToCmdStream( -- GitLab