diff options
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); + } } } |
