From fd1b051d2c7b703130f3bc24ffcc7a394e6039e2 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 18 Dec 2020 14:05:54 +0000 Subject: [PATCH] Add helper for selecting sample mask, which varies in location by API --- qrenderdoc/Code/Interface/QRDInterface.h | 7 +++++++ .../Windows/PipelineState/D3D11PipelineStateViewer.cpp | 5 ++++- .../Windows/PipelineState/D3D12PipelineStateViewer.cpp | 5 ++++- qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp | 5 ++++- .../Windows/PipelineState/VulkanPipelineStateViewer.cpp | 5 ++++- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/qrenderdoc/Code/Interface/QRDInterface.h b/qrenderdoc/Code/Interface/QRDInterface.h index 682436afb..b895fa85e 100644 --- a/qrenderdoc/Code/Interface/QRDInterface.h +++ b/qrenderdoc/Code/Interface/QRDInterface.h @@ -310,6 +310,10 @@ DOCUMENT(R"(Specifies a pipeline stage for the :class:`PipelineStateViewer`. .. data:: ComputeShader The compute shader. + +.. data:: SampleMask + + The sample mask. )"); enum class PipelineStage : int { @@ -330,6 +334,9 @@ enum class PipelineStage : int DepthTest = ColorDepthOutput, StencilTest = ColorDepthOutput, ComputeShader, + + // these vary by API + SampleMask, }; DOCUMENT("The pipeline state viewer window."); diff --git a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp index 7bad89989..765c437f1 100644 --- a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp @@ -469,7 +469,10 @@ void D3D11PipelineStateViewer::OnEventChanged(uint32_t eventId) void D3D11PipelineStateViewer::SelectPipelineStage(PipelineStage stage) { - ui->pipeFlow->setSelectedStage((int)stage); + if(stage == PipelineStage::SampleMask) + ui->pipeFlow->setSelectedStage((int)PipelineStage::ColorDepthOutput); + else + ui->pipeFlow->setSelectedStage((int)stage); } void D3D11PipelineStateViewer::on_showUnused_toggled(bool checked) diff --git a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp index 7ce04076c..c0dde3907 100644 --- a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp @@ -503,7 +503,10 @@ void D3D12PipelineStateViewer::OnEventChanged(uint32_t eventId) void D3D12PipelineStateViewer::SelectPipelineStage(PipelineStage stage) { - ui->pipeFlow->setSelectedStage((int)stage); + if(stage == PipelineStage::SampleMask) + ui->pipeFlow->setSelectedStage((int)PipelineStage::ColorDepthOutput); + else + ui->pipeFlow->setSelectedStage((int)stage); } void D3D12PipelineStateViewer::on_showUnused_toggled(bool checked) diff --git a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp index 26cdc6f0a..342da22c6 100644 --- a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp @@ -452,7 +452,10 @@ void GLPipelineStateViewer::OnEventChanged(uint32_t eventId) void GLPipelineStateViewer::SelectPipelineStage(PipelineStage stage) { - ui->pipeFlow->setSelectedStage((int)stage); + if(stage == PipelineStage::SampleMask) + ui->pipeFlow->setSelectedStage((int)PipelineStage::Rasterizer); + else + ui->pipeFlow->setSelectedStage((int)stage); } void GLPipelineStateViewer::on_showUnused_toggled(bool checked) diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp index 79f216982..c1df5c8b6 100644 --- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp @@ -465,7 +465,10 @@ void VulkanPipelineStateViewer::OnEventChanged(uint32_t eventId) void VulkanPipelineStateViewer::SelectPipelineStage(PipelineStage stage) { - ui->pipeFlow->setSelectedStage((int)stage); + if(stage == PipelineStage::SampleMask) + ui->pipeFlow->setSelectedStage((int)PipelineStage::Rasterizer); + else + ui->pipeFlow->setSelectedStage((int)stage); } void VulkanPipelineStateViewer::on_showUnused_toggled(bool checked)