summaryrefslogtreecommitdiffstats
path: root/Graphics
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-02-13 02:27:51 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:31:36 +0000
commitde98c28b1dbade33adc339ea3aeb42c4d665f732 (patch)
tree683cd5739076d2ca9b1eae6e767505a8388fdabf /Graphics
parentbug fixes for dx12 resource signature (diff)
downloadDiligentCore-de98c28b1dbade33adc339ea3aeb42c4d665f732.tar.gz
DiligentCore-de98c28b1dbade33adc339ea3aeb42c4d665f732.zip
Few minor updates to PSO impls
Diffstat (limited to 'Graphics')
-rw-r--r--Graphics/GraphicsEngine/include/PipelineStateBase.hpp14
-rw-r--r--Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp4
-rw-r--r--Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp4
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp4
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp4
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