summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorazhirnov <zh1dron@gmail.com>2020-10-25 12:53:05 +0000
committerazhirnov <zh1dron@gmail.com>2020-10-25 13:08:57 +0000
commit7f26e40e0898391a32e6a05d91ef1a217d885668 (patch)
tree3236316d1a752e5dbbfae863f8180ff994b31d70 /Graphics/GraphicsEngineOpenGL
parentMerge branch 'master' into ray_tracing (diff)
downloadDiligentCore-7f26e40e0898391a32e6a05d91ef1a217d885668.tar.gz
DiligentCore-7f26e40e0898391a32e6a05d91ef1a217d885668.zip
PSO refactoring for ray tracing
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp4
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp6
3 files changed, 12 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp
index 3c34b483..23c0fc9c 100644
--- a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.hpp
@@ -94,6 +94,10 @@ public:
virtual void DILIGENT_CALL_TYPE CreateComputePipelineState(const ComputePipelineStateCreateInfo& PSOCreateInfo,
IPipelineState** ppPipelineState) override final;
+ /// Implementation of IRenderDevice::CreateRayTracingPipelineState() in OpenGL backend.
+ virtual void DILIGENT_CALL_TYPE CreateRayTracingPipelineState(const RayTracingPipelineStateCreateInfo& PSOCreateInfo,
+ IPipelineState** ppPipelineState) override final;
+
void CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo& PSOCreateInfo,
IPipelineState** ppPipelineState,
bool bIsDeviceInternal);
diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
index 8b429094..b911cdde 100644
--- a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
@@ -154,6 +154,8 @@ PipelineStateGLImpl::~PipelineStateGLImpl()
void PipelineStateGLImpl::Destruct()
{
+ TPipelineStateBase::Destruct();
+
auto& RawAllocator = GetRawAllocator();
m_StaticResourceCache.Destroy(RawAllocator);
GetDevice()->OnDestroyPSO(this);
diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp
index ca75a9ca..7707f979 100644
--- a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp
@@ -736,6 +736,12 @@ void RenderDeviceGLImpl::CreateComputePipelineState(const ComputePipelineStateCr
return CreateComputePipelineState(PSOCreateInfo, ppPipelineState, false);
}
+void RenderDeviceGLImpl::CreateRayTracingPipelineState(const RayTracingPipelineStateCreateInfo& PSOCreateInfo, IPipelineState** ppPipelineState)
+{
+ UNSUPPORTED("CreateRayTracingPipelineState is not supported in OpenGL");
+ *ppPipelineState = nullptr;
+}
+
void RenderDeviceGLImpl::CreateFence(const FenceDesc& Desc, IFence** ppFence)
{
CreateDeviceObject(