From e8f439dc0f87f6820e3db53ecd8ee41cc878d90c Mon Sep 17 00:00:00 2001 From: azhirnov Date: Sat, 17 Oct 2020 20:02:58 +0300 Subject: Fixed compilation, some fixes after review --- Common/interface/LinearAllocator.hpp | 3 ++- Graphics/GraphicsEngine/include/PipelineStateBase.hpp | 2 +- Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp | 8 ++++---- Tests/DiligentCoreTest/src/Common/AllocatorTest.cpp | 10 +++++++++- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Common/interface/LinearAllocator.hpp b/Common/interface/LinearAllocator.hpp index 9d580f0b..00f94ee3 100644 --- a/Common/interface/LinearAllocator.hpp +++ b/Common/interface/LinearAllocator.hpp @@ -98,10 +98,11 @@ public: VERIFY(m_pBuffer == nullptr, "Memory already allocated"); if (size > 0) { + size = Align(size, align); m_RequiredSize = Align(m_RequiredSize, align) + size; // Reserve additional space for pointer alignment - m_RequiredSize += (align > sizeof(void*) ? align : 0); + m_RequiredSize += (align > sizeof(void*) ? align - sizeof(void*) : 0); } } diff --git a/Graphics/GraphicsEngine/include/PipelineStateBase.hpp b/Graphics/GraphicsEngine/include/PipelineStateBase.hpp index d8cb09bb..ef5b38c2 100644 --- a/Graphics/GraphicsEngine/include/PipelineStateBase.hpp +++ b/Graphics/GraphicsEngine/include/PipelineStateBase.hpp @@ -118,7 +118,7 @@ public: return m_ShaderResourceLayoutHash != ValidatedCast(pPSO)->m_ShaderResourceLayoutHash; } - const GraphicsPipelineDesc& GetGraphicsPipelineDesc() const override final + virtual const GraphicsPipelineDesc& DILIGENT_CALL_TYPE GetGraphicsPipelineDesc() const override final { VERIFY_EXPR(this->m_Desc.IsAnyGraphicsPipeline()); VERIFY_EXPR(m_pGraphicsPipelineDesc != nullptr); diff --git a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp index d23142e0..5c8037c3 100644 --- a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp +++ b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp @@ -87,12 +87,12 @@ public: ISampler** ppSampler) override final; /// Implementation of IRenderDevice::CreateGraphicsPipelineState() in OpenGL backend. - virtual void CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo& PSOCreateInfo, - IPipelineState** ppPipelineState) override final; + virtual void DILIGENT_CALL_TYPE CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo& PSOCreateInfo, + IPipelineState** ppPipelineState) override final; /// Implementation of IRenderDevice::CreateComputePipelineState() in OpenGL backend. - virtual void CreateComputePipelineState(const ComputePipelineStateCreateInfo& PSOCreateInfo, - IPipelineState** ppPipelineState) override final; + virtual void DILIGENT_CALL_TYPE CreateComputePipelineState(const ComputePipelineStateCreateInfo& PSOCreateInfo, + IPipelineState** ppPipelineState) override final; void CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo& PSOCreateInfo, IPipelineState** ppPipelineState, diff --git a/Tests/DiligentCoreTest/src/Common/AllocatorTest.cpp b/Tests/DiligentCoreTest/src/Common/AllocatorTest.cpp index 3dc15aaf..96cab29b 100644 --- a/Tests/DiligentCoreTest/src/Common/AllocatorTest.cpp +++ b/Tests/DiligentCoreTest/src/Common/AllocatorTest.cpp @@ -123,6 +123,11 @@ TEST(Common_FixedBlockMemoryAllocator, UnalignedSize) TEST(Common_LinearAllocator, PointerAlignment) { + struct alignas(32) TObj32 + { + char data[64]; + }; + LinearAllocator Allocator{DefaultRawMemoryAllocator::GetAllocator()}; const std::string SrcStr = "123456789"; @@ -131,18 +136,21 @@ TEST(Common_LinearAllocator, PointerAlignment) Allocator.AddRequiredSize(5); Allocator.AddRequiredSize(3); Allocator.AddRequiredSize(6); + Allocator.AddRequiredSize(4); Allocator.Reserve(); - char* DstStr = Allocator.CopyString(SrcStr.c_str()); + char* DstStr = Allocator.CopyString(SrcStr.c_str()); size_t IntPtrUint32 = reinterpret_cast(Allocator.Allocate(5)); size_t IntPtrUint64 = reinterpret_cast(Allocator.Allocate(3)); size_t IntPtrFloat = reinterpret_cast(Allocator.Allocate(6)); + size_t IntPtrTObj32 = reinterpret_cast(Allocator.Allocate(4)); EXPECT_EQ(SrcStr, DstStr); EXPECT_EQ(IntPtrUint32, Align(IntPtrUint32, alignof(uint32_t))); EXPECT_EQ(IntPtrUint64, Align(IntPtrUint64, alignof(uint64_t))); EXPECT_EQ(IntPtrFloat, Align(IntPtrFloat, alignof(float))); + EXPECT_EQ(IntPtrTObj32, Align(IntPtrTObj32, alignof(TObj32))); } } // namespace -- cgit v1.2.3