summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-03-18 20:14:05 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:24 +0000
commitf4968172e395b202cd8aa2a1e79c413a62189f47 (patch)
treee4746aada6e23c07c506b634da52f8c520edc0d4 /Graphics/GraphicsEngineOpenGL
parentPipelineStateD3D11Impl: improved D3D11 shader storage (diff)
downloadDiligentCore-f4968172e395b202cd8aa2a1e79c413a62189f47.tar.gz
DiligentCore-f4968172e395b202cd8aa2a1e79c413a62189f47.zip
PipelineResourceSignatureD3D11Impl: reworked resource allocation
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);
+ }
}
}