diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-03-18 20:14:05 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:38:24 +0000 |
| commit | f4968172e395b202cd8aa2a1e79c413a62189f47 (patch) | |
| tree | e4746aada6e23c07c506b634da52f8c520edc0d4 /Graphics/GraphicsEngineOpenGL | |
| parent | PipelineStateD3D11Impl: improved D3D11 shader storage (diff) | |
| download | DiligentCore-f4968172e395b202cd8aa2a1e79c413a62189f47.tar.gz DiligentCore-f4968172e395b202cd8aa2a1e79c413a62189f47.zip | |
PipelineResourceSignatureD3D11Impl: reworked resource allocation
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
| -rw-r--r-- | Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp | 2 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp index 31bd3eaf..ccefba27 100644 --- a/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp +++ b/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp @@ -99,7 +99,7 @@ public: void InitSRBResourceCache(ShaderResourceCacheGL& ResourceCache); #ifdef DILIGENT_DEVELOPMENT - /// Verifies committed resource attribs using the SPIRV resource attributes from the PSO. + /// Verifies committed resource using the resource attributes from the PSO. bool DvpValidateCommittedResource(const ShaderResourcesGL::GLResourceAttribs& GLAttribs, RESOURCE_DIMENSION ResourceDim, bool IsMultisample, diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp index 2503c448..6ab6c50f 100644 --- a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp @@ -27,6 +27,9 @@ #include "pch.h" #include "PipelineResourceSignatureGLImpl.hpp" + +#include <algorithm> + #include "RenderDeviceGLImpl.hpp" namespace Diligent @@ -183,7 +186,11 @@ void PipelineResourceSignatureGLImpl::CreateLayout() CacheOffset += ResDesc.ArraySize; if (ResDesc.VarType == SHADER_RESOURCE_VARIABLE_TYPE_STATIC) - StaticResCounter[Range] += ResDesc.ArraySize; + { + // Since resources in the static cache are indexed by the same bindings, we need to + // make sure that there is enough space in the cache. + StaticResCounter[Range] = std::max(StaticResCounter[Range], CacheOffset); + } } } |
