summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp9
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);
+ }
}
}