diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-02-13 02:27:51 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:31:36 +0000 |
| commit | de98c28b1dbade33adc339ea3aeb42c4d665f732 (patch) | |
| tree | 683cd5739076d2ca9b1eae6e767505a8388fdabf /Graphics | |
| parent | bug fixes for dx12 resource signature (diff) | |
| download | DiligentCore-de98c28b1dbade33adc339ea3aeb42c4d665f732.tar.gz DiligentCore-de98c28b1dbade33adc339ea3aeb42c4d665f732.zip | |
Few minor updates to PSO impls
Diffstat (limited to 'Graphics')
5 files changed, 15 insertions, 15 deletions
diff --git a/Graphics/GraphicsEngine/include/PipelineStateBase.hpp b/Graphics/GraphicsEngine/include/PipelineStateBase.hpp index 193777c4..1d5cde09 100644 --- a/Graphics/GraphicsEngine/include/PipelineStateBase.hpp +++ b/Graphics/GraphicsEngine/include/PipelineStateBase.hpp @@ -199,10 +199,10 @@ public: m_pRayTracingPipelineData->~RayTracingPipelineData(); } - if (m_pRawMem) + if (m_pPipelineDataRawMem) { - GetRawAllocator().Free(m_pRawMem); - m_pRawMem = nullptr; + GetRawAllocator().Free(m_pPipelineDataRawMem); + m_pPipelineDataRawMem = nullptr; } #if DILIGENT_DEBUG m_IsDestructed = true; @@ -529,7 +529,7 @@ protected: { this->m_pGraphicsPipelineData = MemPool.Construct<GraphicsPipelineData>(); void* Ptr = MemPool.ReleaseOwnership(); - VERIFY_EXPR(Ptr == m_pRawMem); + VERIFY_EXPR(Ptr == m_pPipelineDataRawMem); auto& GraphicsPipeline = this->m_pGraphicsPipelineData->Desc; auto& pRenderPass = this->m_pGraphicsPipelineData->pRenderPass; @@ -663,7 +663,7 @@ protected: void InitializePipelineDesc(const ComputePipelineStateCreateInfo& CreateInfo, FixedLinearAllocator& MemPool) { - m_pRawMem = MemPool.ReleaseOwnership(); + m_pPipelineDataRawMem = MemPool.ReleaseOwnership(); CopyResourceLayout(CreateInfo.PSODesc.ResourceLayout, this->m_Desc.ResourceLayout, MemPool); } @@ -686,7 +686,7 @@ protected: this->m_pRayTracingPipelineData->ShaderDataSize = ShaderDataSize; void* Ptr = MemPool.ReleaseOwnership(); - VERIFY_EXPR(Ptr == m_pRawMem); + VERIFY_EXPR(Ptr == m_pPipelineDataRawMem); TNameToGroupIndexMap& NameToGroupIndex = this->m_pRayTracingPipelineData->NameToGroupIndex; CopyRTShaderGroupNames(NameToGroupIndex, CreateInfo, MemPool); @@ -797,7 +797,7 @@ protected: { GraphicsPipelineData* m_pGraphicsPipelineData; RayTracingPipelineData* m_pRayTracingPipelineData; - void* m_pRawMem = nullptr; + void* m_pPipelineDataRawMem = nullptr; }; #ifdef DILIGENT_DEBUG diff --git a/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp index 03d79832..933e2978 100644 --- a/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp @@ -203,8 +203,6 @@ PipelineStateD3D11Impl::~PipelineStateD3D11Impl() void PipelineStateD3D11Impl::Destruct() { - TPipelineStateBase::Destruct(); - if (m_pStaticResourceLayouts != nullptr) { for (Uint32 l = 0; l < GetNumShaderStages(); ++l) @@ -225,6 +223,8 @@ void PipelineStateD3D11Impl::Destruct() // All subobjects are allocated in contiguous chunks of memory. if (auto* pRawMem = m_pStaticResourceCaches) GetRawAllocator().Free(pRawMem); + + TPipelineStateBase::Destruct(); } IMPLEMENT_QUERY_INTERFACE(PipelineStateD3D11Impl, IID_PipelineStateD3D11, TPipelineStateBase) diff --git a/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp index e9515ea2..ca0d0fb8 100644 --- a/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp @@ -1016,8 +1016,6 @@ PipelineStateD3D12Impl::~PipelineStateD3D12Impl() void PipelineStateD3D12Impl::Destruct() { - TPipelineStateBase::Destruct(); - m_Signatures.fill({}); m_RootSig.Release(); @@ -1026,6 +1024,8 @@ void PipelineStateD3D12Impl::Destruct() // D3D12 object can only be destroyed when it is no longer used by the GPU m_pDevice->SafeReleaseDeviceObject(std::move(m_pd3d12PSO), m_Desc.CommandQueueMask); } + + TPipelineStateBase::Destruct(); } bool PipelineStateD3D12Impl::IsCompatibleWith(const IPipelineState* pPSO) const diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp index 6cf6bd45..43cfc9e0 100644 --- a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp @@ -154,8 +154,6 @@ PipelineStateGLImpl::~PipelineStateGLImpl() void PipelineStateGLImpl::Destruct() { - TPipelineStateBase::Destruct(); - auto& RawAllocator = GetRawAllocator(); m_StaticResourceCache.Destroy(RawAllocator); GetDevice()->OnDestroyPSO(this); @@ -184,6 +182,8 @@ void PipelineStateGLImpl::Destruct() { RawAllocator.Free(pRawMem); } + + TPipelineStateBase::Destruct(); } IMPLEMENT_QUERY_INTERFACE(PipelineStateGLImpl, IID_PipelineStateGL, TPipelineStateBase) diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp index d12a64b9..bab4d247 100644 --- a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp @@ -1066,10 +1066,10 @@ PipelineStateVkImpl::~PipelineStateVkImpl() void PipelineStateVkImpl::Destruct() { - TPipelineStateBase::Destruct(); - m_pDevice->SafeReleaseDeviceObject(std::move(m_Pipeline), m_Desc.CommandQueueMask); m_PipelineLayout.Release(m_pDevice, m_Desc.CommandQueueMask); + + TPipelineStateBase::Destruct(); } bool PipelineStateVkImpl::IsCompatibleWith(const IPipelineState* pPSO) const |
