diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-10-05 06:11:38 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-10-05 06:11:38 +0000 |
| commit | 44a0e732c338295debb594335dc4fae06e36b952 (patch) | |
| tree | c8f14550e3218a1a4408e0a615c5b0292cf59e6e /Graphics/GraphicsEngineOpenGL | |
| parent | Reworked HashMapStringKey class to keep only one pointer (diff) | |
| download | DiligentCore-44a0e732c338295debb594335dc4fae06e36b952.tar.gz DiligentCore-44a0e732c338295debb594335dc4fae06e36b952.zip | |
All backends: removed string pool from shader resource objects as it is only used to allocate strings
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
| -rw-r--r-- | Graphics/GraphicsEngineOpenGL/include/GLProgramResources.hpp | 2 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp | 15 |
2 files changed, 8 insertions, 9 deletions
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<UniformBufferInfo>& Unifo Char* StringPoolData = reinterpret_cast<Char*>(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() |
