From 44a0e732c338295debb594335dc4fae06e36b952 Mon Sep 17 00:00:00 2001 From: assiduous Date: Sun, 4 Oct 2020 23:11:38 -0700 Subject: All backends: removed string pool from shader resource objects as it is only used to allocate strings --- .../GraphicsEngineOpenGL/include/GLProgramResources.hpp | 2 -- Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp | 15 ++++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'Graphics/GraphicsEngineOpenGL') diff --git a/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.hpp b/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.hpp index 48189445..a3b13b6d 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.hpp +++ b/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.hpp @@ -500,8 +500,6 @@ private: ImageInfo* m_Images = nullptr; StorageBlockInfo* m_StorageBlocks = nullptr; - StringPool m_StringPool; - Uint32 m_NumUniformBuffers = 0; Uint32 m_NumSamplers = 0; Uint32 m_NumImages = 0; diff --git a/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp b/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp index 83f51383..b6772fd7 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp @@ -44,7 +44,6 @@ GLProgramResources::GLProgramResources(GLProgramResources&& Program) noexcept : m_Samplers {Program.m_Samplers }, m_Images {Program.m_Images }, m_StorageBlocks {Program.m_StorageBlocks }, - m_StringPool {std::move(Program.m_StringPool)}, m_NumUniformBuffers{Program.m_NumUniformBuffers }, m_NumSamplers {Program.m_NumSamplers }, m_NumImages {Program.m_NumImages }, @@ -141,33 +140,35 @@ void GLProgramResources::AllocateResources(std::vector& Unifo Char* StringPoolData = reinterpret_cast(EndOfResourceData); // clang-format on - m_StringPool.AssignMemory(StringPoolData, StringPoolDataSize); + // The pool is only needed to facilitate string allocation. + StringPool TmpStringPool; + TmpStringPool.AssignMemory(StringPoolData, StringPoolDataSize); for (Uint32 ub = 0; ub < m_NumUniformBuffers; ++ub) { auto& SrcUB = UniformBlocks[ub]; - new (m_UniformBuffers + ub) UniformBufferInfo{SrcUB, m_StringPool}; + new (m_UniformBuffers + ub) UniformBufferInfo{SrcUB, TmpStringPool}; } for (Uint32 s = 0; s < m_NumSamplers; ++s) { auto& SrcSam = Samplers[s]; - new (m_Samplers + s) SamplerInfo{SrcSam, m_StringPool}; + new (m_Samplers + s) SamplerInfo{SrcSam, TmpStringPool}; } for (Uint32 img = 0; img < m_NumImages; ++img) { auto& SrcImg = Images[img]; - new (m_Images + img) ImageInfo{SrcImg, m_StringPool}; + new (m_Images + img) ImageInfo{SrcImg, TmpStringPool}; } for (Uint32 sb = 0; sb < m_NumStorageBlocks; ++sb) { auto& SrcSB = StorageBlocks[sb]; - new (m_StorageBlocks + sb) StorageBlockInfo{SrcSB, m_StringPool}; + new (m_StorageBlocks + sb) StorageBlockInfo{SrcSB, TmpStringPool}; } - VERIFY_EXPR(m_StringPool.GetRemainingSize() == 0); + VERIFY_EXPR(TmpStringPool.GetRemainingSize() == 0); } GLProgramResources::~GLProgramResources() -- cgit v1.2.3