From 888676ecc7ce38e2afbf5086f837eb11e1436b6d Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 17 Nov 2021 13:07:12 +0000 Subject: [PATCH] Fix crash reading D3D12 pipeline state from vulkan for compute selector --- .../Windows/PipelineState/D3D11PipelineStateViewer.cpp | 10 ++++++---- .../Windows/PipelineState/D3D12PipelineStateViewer.cpp | 10 ++++++---- .../PipelineState/VulkanPipelineStateViewer.cpp | 10 ++++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp index 938ee0ae9..eacc4c2dc 100644 --- a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp @@ -3194,9 +3194,10 @@ void D3D11PipelineStateViewer::on_computeDebugSelector_clicked() if(!action) return; - ShaderReflection *shaderDetails = m_Ctx.CurD3D11PipelineState()->computeShader.reflection; + const ShaderReflection *shaderDetails = + m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Compute); const ShaderBindpointMapping &bindMapping = - m_Ctx.CurD3D11PipelineState()->computeShader.bindpointMapping; + m_Ctx.CurPipelineState().GetBindpointMapping(ShaderStage::Compute); if(!shaderDetails) return; @@ -3212,9 +3213,10 @@ void D3D11PipelineStateViewer::computeDebugSelector_beginDebug( if(!action) return; - ShaderReflection *shaderDetails = m_Ctx.CurD3D12PipelineState()->computeShader.reflection; + const ShaderReflection *shaderDetails = + m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Compute); const ShaderBindpointMapping &bindMapping = - m_Ctx.CurD3D12PipelineState()->computeShader.bindpointMapping; + m_Ctx.CurPipelineState().GetBindpointMapping(ShaderStage::Compute); if(!shaderDetails) return; diff --git a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp index 6df3091af..7df5c964d 100644 --- a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp @@ -3401,9 +3401,10 @@ void D3D12PipelineStateViewer::on_computeDebugSelector_clicked() if(!action) return; - ShaderReflection *shaderDetails = m_Ctx.CurD3D12PipelineState()->computeShader.reflection; + const ShaderReflection *shaderDetails = + m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Compute); const ShaderBindpointMapping &bindMapping = - m_Ctx.CurD3D12PipelineState()->computeShader.bindpointMapping; + m_Ctx.CurPipelineState().GetBindpointMapping(ShaderStage::Compute); if(!shaderDetails) return; @@ -3419,9 +3420,10 @@ void D3D12PipelineStateViewer::computeDebugSelector_beginDebug( if(!action) return; - ShaderReflection *shaderDetails = m_Ctx.CurD3D12PipelineState()->computeShader.reflection; + const ShaderReflection *shaderDetails = + m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Compute); const ShaderBindpointMapping &bindMapping = - m_Ctx.CurD3D12PipelineState()->computeShader.bindpointMapping; + m_Ctx.CurPipelineState().GetBindpointMapping(ShaderStage::Compute); if(!shaderDetails) return; diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp index d0b281cba..64d77bd1a 100644 --- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp @@ -4756,9 +4756,10 @@ void VulkanPipelineStateViewer::on_computeDebugSelector_clicked() if(!action) return; - ShaderReflection *shaderDetails = m_Ctx.CurD3D12PipelineState()->computeShader.reflection; + const ShaderReflection *shaderDetails = + m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Compute); const ShaderBindpointMapping &bindMapping = - m_Ctx.CurD3D12PipelineState()->computeShader.bindpointMapping; + m_Ctx.CurPipelineState().GetBindpointMapping(ShaderStage::Compute); if(!shaderDetails) return; @@ -4774,9 +4775,10 @@ void VulkanPipelineStateViewer::computeDebugSelector_beginDebug( if(!action) return; - ShaderReflection *shaderDetails = m_Ctx.CurD3D12PipelineState()->computeShader.reflection; + const ShaderReflection *shaderDetails = + m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Compute); const ShaderBindpointMapping &bindMapping = - m_Ctx.CurD3D12PipelineState()->computeShader.bindpointMapping; + m_Ctx.CurPipelineState().GetBindpointMapping(ShaderStage::Compute); if(!shaderDetails) return;