summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-03-11 21:32:24 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:20 +0000
commit9ca931f1cb24625b93947ec2be0a84bb61586765 (patch)
treed534b786989f2a08be67a7212e44de0f3d18081a /Graphics/GraphicsEngineOpenGL
parentUpdated resource binding validation (diff)
downloadDiligentCore-9ca931f1cb24625b93947ec2be0a84bb61586765.tar.gz
DiligentCore-9ca931f1cb24625b93947ec2be0a84bb61586765.zip
Some minor/cosmetic changes
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/ShaderResourceCacheGL.hpp6
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp18
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp16
3 files changed, 16 insertions, 24 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/include/ShaderResourceCacheGL.hpp b/Graphics/GraphicsEngineOpenGL/include/ShaderResourceCacheGL.hpp
index feecc187..5fa7088e 100644
--- a/Graphics/GraphicsEngineOpenGL/include/ShaderResourceCacheGL.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/ShaderResourceCacheGL.hpp
@@ -89,10 +89,10 @@ public:
void Set(RefCntAutoPtr<TextureViewGLImpl>&& pTexView, bool SetSampler)
{
- // Do not null out pSampler as it could've been initialized by PipelineStateGLImpl::InitializeSRBResourceCache!
+ // Do not null out pSampler as it could've been initialized by PipelineResourceSignatureGLImpl::InitSRBResourceCache!
// pSampler = nullptr;
- // Avoid unnecessary virtual function calls
+ // Avoid unnecessary virtual call
pTexture = pTexView ? pTexView->GetTexture<TextureBaseGL>() : nullptr;
if (pTexView && SetSampler)
{
@@ -105,7 +105,7 @@ public:
void Set(RefCntAutoPtr<BufferViewGLImpl>&& pBufView)
{
pTexture = nullptr;
- // Avoid unnecessary virtual function calls
+ // Avoid unnecessary virtual call
pBuffer = pBufView ? pBufView->GetBuffer<BufferGLImpl>() : nullptr;
pView = std::move(pBufView);
}
diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
index f9d705e9..2503c448 100644
--- a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
@@ -403,17 +403,17 @@ void PipelineResourceSignatureGLImpl::CopyStaticResources(ShaderResourceCacheGL&
{
const auto HasImmutableSampler = GetImmutableSamplerIdx(ResAttr) != InvalidImmutableSamplerIndex;
- auto* const pTexViewGl = SrcCachedRes.pView.RawPtr<TextureViewGLImpl>();
- DstResourceCache.SetTexture(ResAttr.CacheOffset + ArrInd, RefCntAutoPtr<TextureViewGLImpl>{pTexViewGl}, !HasImmutableSampler);
+ RefCntAutoPtr<TextureViewGLImpl> pTexViewGl{SrcCachedRes.pView.RawPtr<TextureViewGLImpl>()};
+ DstResourceCache.SetTexture(ResAttr.CacheOffset + ArrInd, std::move(pTexViewGl), !HasImmutableSampler);
if (HasImmutableSampler)
{
- VERIFY(DstResourceCache.GetConstTexture(ResAttr.CacheOffset + ArrInd).pSampler, "Immutable sampler is not initialized in the cache");
+ VERIFY(DstResourceCache.GetConstTexture(ResAttr.CacheOffset + ArrInd).pSampler, "Immutable sampler is not initialized in the cache. This is a bug.");
}
}
else if (ResDesc.ResourceType == SHADER_RESOURCE_TYPE_BUFFER_SRV)
{
- auto* const pViewGl = SrcCachedRes.pView.RawPtr<BufferViewGLImpl>();
- DstResourceCache.SetTexelBuffer(ResAttr.CacheOffset + ArrInd, RefCntAutoPtr<BufferViewGLImpl>{pViewGl});
+ RefCntAutoPtr<BufferViewGLImpl> pViewGl{SrcCachedRes.pView.RawPtr<BufferViewGLImpl>()};
+ DstResourceCache.SetTexelBuffer(ResAttr.CacheOffset + ArrInd, std::move(pViewGl));
}
else
{
@@ -430,14 +430,14 @@ void PipelineResourceSignatureGLImpl::CopyStaticResources(ShaderResourceCacheGL&
if (ResDesc.ResourceType == SHADER_RESOURCE_TYPE_TEXTURE_UAV)
{
- auto* const pTexViewGl = SrcCachedRes.pView.RawPtr<TextureViewGLImpl>();
- DstResourceCache.SetTexImage(ResAttr.CacheOffset + ArrInd, RefCntAutoPtr<TextureViewGLImpl>{pTexViewGl});
+ RefCntAutoPtr<TextureViewGLImpl> pTexViewGl{SrcCachedRes.pView.RawPtr<TextureViewGLImpl>()};
+ DstResourceCache.SetTexImage(ResAttr.CacheOffset + ArrInd, std::move(pTexViewGl));
}
else if (ResDesc.ResourceType == SHADER_RESOURCE_TYPE_BUFFER_UAV ||
ResDesc.ResourceType == SHADER_RESOURCE_TYPE_BUFFER_SRV)
{
- auto* const pViewGl = SrcCachedRes.pView.RawPtr<BufferViewGLImpl>();
- DstResourceCache.SetBufImage(ResAttr.CacheOffset + ArrInd, RefCntAutoPtr<BufferViewGLImpl>{pViewGl});
+ RefCntAutoPtr<BufferViewGLImpl> pViewGl{SrcCachedRes.pView.RawPtr<BufferViewGLImpl>()};
+ DstResourceCache.SetBufImage(ResAttr.CacheOffset + ArrInd, std::move(pViewGl));
}
else
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
index 57b925a4..dae24b58 100644
--- a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
@@ -157,8 +157,7 @@ RefCntAutoPtr<PipelineResourceSignatureGLImpl> PipelineStateGLImpl::CreateDefaul
{
String SignName = String{"Implicit signature of PSO '"} + m_Desc.Name + '\'';
- PipelineResourceSignatureDesc ResSignDesc = {};
-
+ PipelineResourceSignatureDesc ResSignDesc{};
ResSignDesc.Name = SignName.c_str();
ResSignDesc.Resources = Resources.data();
ResSignDesc.NumResources = static_cast<Uint32>(Resources.size());
@@ -203,15 +202,9 @@ void PipelineStateGLImpl::InitResourceLayout(const PipelineStateCreateInfo& Crea
if (pSignature == nullptr)
continue;
- if (m_IsProgramPipelineSupported)
- {
- for (Uint32 p = 0; p < m_NumPrograms; ++p)
- pSignature->ApplyBindings(m_GLPrograms[p], CtxState, GetShaderStageType(p), Bindings);
- }
- else
- {
- pSignature->ApplyBindings(m_GLPrograms[0], CtxState, ActiveStages, Bindings);
- }
+ for (Uint32 p = 0; p < m_NumPrograms; ++p)
+ pSignature->ApplyBindings(m_GLPrograms[p], CtxState, GetShaderStageType(p), Bindings);
+
pSignature->ShiftBindings(Bindings);
}
@@ -520,7 +513,6 @@ void PipelineStateGLImpl::DvpVerifySRBResources(ShaderResourceBindingGLImpl* pSR
TBindings Bindings = {};
for (Uint32 sign = 0; sign < SignCount; ++sign)
{
- // Get resource signature from the root signature
const auto* pSignature = GetResourceSignature(sign);
if (pSignature == nullptr || pSignature->GetTotalResourceCount() == 0)
continue; // Skip null and empty signatures