From 772ef0e6cfbb218814ad4e7d25dd94b697a6b4f3 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Tue, 5 Mar 2019 22:05:17 -0800 Subject: Keep fixing Metal backend + few other minor changes --- Graphics/GraphicsEngineD3DBase/include/ShaderResources.h | 3 +++ Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'Graphics/GraphicsEngineD3DBase') diff --git a/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h b/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h index f8f6917b..e12049e4 100644 --- a/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h +++ b/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h @@ -399,6 +399,9 @@ private: // Memory buffer that holds all resources as continuous chunk of memory: // | CBs | TexSRVs | TexUAVs | BufSRVs | BufUAVs | Samplers | Resource Names | + // | + // end of names data may not be aligned + std::unique_ptr< void, STDDeleterRawMem > m_MemoryBuffer; StringPool m_ResourceNames; diff --git a/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp b/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp index a3efe9f3..c52b2cee 100644 --- a/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp +++ b/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp @@ -27,6 +27,7 @@ #include "ShaderResources.h" #include "HashUtils.h" #include "ShaderResourceVariableBase.h" +#include "Align.h" namespace Diligent { @@ -74,7 +75,8 @@ void ShaderResources::AllocateMemory(IMemoryAllocator& Allocator, m_SamplersOffset = AdvanceOffset(ResCounters.NumSamplers); m_TotalResources = AdvanceOffset(0); - auto MemorySize = m_TotalResources * sizeof(D3DShaderResourceAttribs) + ResourceNamesPoolSize * sizeof(char); + auto AlignedResourceNamesPoolSize = Align(ResourceNamesPoolSize, sizeof(void*)); + auto MemorySize = m_TotalResources * sizeof(D3DShaderResourceAttribs) + AlignedResourceNamesPoolSize * sizeof(char); VERIFY_EXPR(GetNumCBs() == ResCounters.NumCBs); VERIFY_EXPR(GetNumTexSRV() == ResCounters.NumTexSRVs); -- cgit v1.2.3