From 0b6d3a313ea78041ba39cac17d0b4e9c2685c693 Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Thu, 21 Apr 2022 12:08:23 +0200 Subject: [PATCH] Fix new dynamic buffers to be actually dynamic --- Source/Engine/Graphics/DynamicBuffer.cpp | 8 +++++++- Source/Engine/Graphics/DynamicBuffer.h | 5 +---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Source/Engine/Graphics/DynamicBuffer.cpp b/Source/Engine/Graphics/DynamicBuffer.cpp index 29882aef5..d4db1b957 100644 --- a/Source/Engine/Graphics/DynamicBuffer.cpp +++ b/Source/Engine/Graphics/DynamicBuffer.cpp @@ -89,6 +89,12 @@ void DynamicBuffer::Dispose() Data.Resize(0); } +void DynamicStructuredBuffer::InitDesc(GPUBufferDescription& desc, int32 numElements) +{ + desc = GPUBufferDescription::Structured(numElements, _stride, _isUnorderedAccess); + desc.Usage = GPUResourceUsage::Dynamic; +} + DynamicTypedBuffer::DynamicTypedBuffer(uint32 initialCapacity, PixelFormat format, bool isUnorderedAccess, const String& name) : DynamicBuffer(initialCapacity, PixelFormatExtensions::SizeInBytes(format), name) , _format(format) @@ -101,5 +107,5 @@ void DynamicTypedBuffer::InitDesc(GPUBufferDescription& desc, int32 numElements) auto bufferFlags = GPUBufferFlags::ShaderResource; if (_isUnorderedAccess) bufferFlags |= GPUBufferFlags::UnorderedAccess; - desc = GPUBufferDescription::Buffer(numElements * _stride, bufferFlags, _format, nullptr, _stride); + desc = GPUBufferDescription::Buffer(numElements * _stride, bufferFlags, _format, nullptr, _stride, GPUResourceUsage::Dynamic); } diff --git a/Source/Engine/Graphics/DynamicBuffer.h b/Source/Engine/Graphics/DynamicBuffer.h index 507c284de..9f251ff14 100644 --- a/Source/Engine/Graphics/DynamicBuffer.h +++ b/Source/Engine/Graphics/DynamicBuffer.h @@ -197,10 +197,7 @@ public: protected: // [DynamicBuffer] - void InitDesc(GPUBufferDescription& desc, int32 numElements) override - { - desc = GPUBufferDescription::Structured(numElements, _stride, _isUnorderedAccess); - } + void InitDesc(GPUBufferDescription& desc, int32 numElements) override; }; ///