diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-03-11 21:32:24 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:38:20 +0000 |
| commit | 9ca931f1cb24625b93947ec2be0a84bb61586765 (patch) | |
| tree | d534b786989f2a08be67a7212e44de0f3d18081a /Graphics/GraphicsEngineOpenGL | |
| parent | Updated resource binding validation (diff) | |
| download | DiligentCore-9ca931f1cb24625b93947ec2be0a84bb61586765.tar.gz DiligentCore-9ca931f1cb24625b93947ec2be0a84bb61586765.zip | |
Some minor/cosmetic changes
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
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 |
