diff --git a/Source/Engine/GraphicsDevice/DirectX/DX11/GPUPipelineStateDX11.cpp b/Source/Engine/GraphicsDevice/DirectX/DX11/GPUPipelineStateDX11.cpp index 5b5bbdb4c..99cadde7e 100644 --- a/Source/Engine/GraphicsDevice/DirectX/DX11/GPUPipelineStateDX11.cpp +++ b/Source/Engine/GraphicsDevice/DirectX/DX11/GPUPipelineStateDX11.cpp @@ -31,7 +31,8 @@ bool GPUPipelineStateDX11::IsValid() const bool GPUPipelineStateDX11::Init(const Description& desc) { - ASSERT(!IsValid()); + if (IsValid()) + OnReleaseGPU(); // Cache shaders VS = (GPUShaderProgramVSDX11*)desc.VS; diff --git a/Source/Engine/GraphicsDevice/DirectX/DX12/GPUPipelineStateDX12.cpp b/Source/Engine/GraphicsDevice/DirectX/DX12/GPUPipelineStateDX12.cpp index 7695260cd..2abfb3e48 100644 --- a/Source/Engine/GraphicsDevice/DirectX/DX12/GPUPipelineStateDX12.cpp +++ b/Source/Engine/GraphicsDevice/DirectX/DX12/GPUPipelineStateDX12.cpp @@ -135,7 +135,8 @@ void GPUPipelineStateDX12::OnReleaseGPU() bool GPUPipelineStateDX12::Init(const Description& desc) { - ASSERT(!IsValid()); + if (IsValid()) + OnReleaseGPU(); // Create description D3D12_GRAPHICS_PIPELINE_STATE_DESC psDesc; diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUPipelineStateVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUPipelineStateVulkan.cpp index b8357e29f..927e4fbca 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUPipelineStateVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUPipelineStateVulkan.cpp @@ -355,7 +355,8 @@ bool GPUPipelineStateVulkan::IsValid() const bool GPUPipelineStateVulkan::Init(const Description& desc) { - ASSERT(!IsValid()); + if (IsValid()) + OnReleaseGPU(); // Reset description RenderToolsVulkan::ZeroStruct(_desc, VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO);