From 6aa0263ace0bc4f750ff4d7fe544ffd605e4d898 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 4 Dec 2023 19:11:47 +0000 Subject: [PATCH] Don't crash if no mesh shader reflection is avialable on a mesh draw * This is possible after a device lost event. --- .../Windows/PipelineState/D3D12PipelineStateViewer.cpp | 5 ++++- .../Windows/PipelineState/VulkanPipelineStateViewer.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp index d6dc79412..529b76d0a 100644 --- a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp @@ -1695,7 +1695,10 @@ void D3D12PipelineStateViewer::setState() setShaderState(state.rootElements, state.meshShader, ui->msShader, ui->msRootSig, ui->msResources, ui->msSamplers, ui->msCBuffers, ui->msUAVs); - ui->msTopology->setText(ToQStr(state.meshShader.reflection->outputTopology)); + if(state.meshShader.reflection) + ui->msTopology->setText(ToQStr(state.meshShader.reflection->outputTopology)); + else + ui->msTopology->setText(QString()); } else { diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp index c697630e3..291163fea 100644 --- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp @@ -2300,7 +2300,10 @@ void VulkanPipelineStateViewer::setState() setShaderState(state.taskShader, state.graphics, ui->tsShader, ui->tsResources, ui->tsUBOs); setShaderState(state.meshShader, state.graphics, ui->msShader, ui->msResources, ui->msUBOs); - ui->msTopology->setText(ToQStr(state.meshShader.reflection->outputTopology)); + if(state.meshShader.reflection) + ui->msTopology->setText(ToQStr(state.meshShader.reflection->outputTopology)); + else + ui->msTopology->setText(QString()); } else {