Display quad overdraw as disabled when MSAA is enabled on vulkan

* No API supports the quad overdraw with MSAA, but on other APIs it's feasible
  to downgrade and render the overlay at single sampled. On Vulkan with
  renderpasses this is not possible.
This commit is contained in:
baldurk
2024-09-09 14:45:30 +01:00
parent 3c6520d250
commit 1ca4b70bf9
2 changed files with 20 additions and 1 deletions
+18
View File
@@ -3129,6 +3129,24 @@ void TextureViewer::OnEventChanged(uint32_t eventId)
ShaderStage::Pixel, ShaderStage::Task, ShaderStage::Mesh,
};
QFont font = ui->overlay->font();
if(m_Ctx.APIProps().pipelineType == GraphicsAPI::Vulkan &&
m_Ctx.CurVulkanPipelineState()->multisample.rasterSamples > 1)
{
font.setItalic(true);
ui->overlay->setItemText((int)DebugOverlay::QuadOverdrawDraw, tr("Overdraw (N/A on MSAA)"));
ui->overlay->setItemText((int)DebugOverlay::QuadOverdrawPass, tr("Overdraw (N/A on MSAA)"));
ui->overlay->setItemData((int)DebugOverlay::QuadOverdrawDraw, font, Qt::FontRole);
ui->overlay->setItemData((int)DebugOverlay::QuadOverdrawPass, font, Qt::FontRole);
}
else
{
ui->overlay->setItemText((int)DebugOverlay::QuadOverdrawDraw, tr("Quad Overdraw (Draw)"));
ui->overlay->setItemText((int)DebugOverlay::QuadOverdrawPass, tr("Quad Overdraw (Pass)"));
ui->overlay->setItemData((int)DebugOverlay::QuadOverdrawDraw, font, Qt::FontRole);
ui->overlay->setItemData((int)DebugOverlay::QuadOverdrawPass, font, Qt::FontRole);
}
int count = 7;
if(compute)
+2 -1
View File
@@ -2786,7 +2786,8 @@ ResourceId VulkanReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, D
}
else if(overlay == DebugOverlay::QuadOverdrawPass || overlay == DebugOverlay::QuadOverdrawDraw)
{
if(m_Overlay.m_QuadResolvePipeline[0] != VK_NULL_HANDLE && !state.rastDiscardEnable)
if(m_Overlay.m_QuadResolvePipeline[0] != VK_NULL_HANDLE && !state.rastDiscardEnable &&
m_Overlay.Samples == VK_SAMPLE_COUNT_1_BIT)
{
VulkanRenderState prevstate = state;