From 530d7fbc128953c4affa7897b68defab4975d51f Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 5 Feb 2020 15:17:46 +0000 Subject: [PATCH] Don't try to render triangle size for line or point draws --- renderdoc/driver/d3d12/d3d12_overlay.cpp | 5 +++-- util/test/demos/d3d12/d3d12_helpers.cpp | 6 ++++++ util/test/demos/d3d12/d3d12_helpers.h | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_overlay.cpp b/renderdoc/driver/d3d12/d3d12_overlay.cpp index 53aca8c3a..05627391a 100644 --- a/renderdoc/driver/d3d12/d3d12_overlay.cpp +++ b/renderdoc/driver/d3d12/d3d12_overlay.cpp @@ -909,14 +909,15 @@ ResourceId D3D12Replay::RenderOverlay(ResourceId texid, CompType typeCast, Float { D3D_PRIMITIVE_TOPOLOGY topo = MakeD3DPrimitiveTopology(fmt.topology); + // can't show triangle size for points or lines if(topo == D3D_PRIMITIVE_TOPOLOGY_POINTLIST || topo >= D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST) - pipeDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT; + continue; else if(topo == D3D_PRIMITIVE_TOPOLOGY_LINESTRIP || topo == D3D_PRIMITIVE_TOPOLOGY_LINELIST || topo == D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ || topo == D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ) - pipeDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE; + continue; else pipeDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; diff --git a/util/test/demos/d3d12/d3d12_helpers.cpp b/util/test/demos/d3d12/d3d12_helpers.cpp index b9b79ec33..707a5d6cf 100644 --- a/util/test/demos/d3d12/d3d12_helpers.cpp +++ b/util/test/demos/d3d12/d3d12_helpers.cpp @@ -937,6 +937,12 @@ D3D12PSOCreator &D3D12PSOCreator::InputLayout() return InputLayout(m_Test->DefaultInputLayout()); } +D3D12PSOCreator &D3D12PSOCreator::Topology(D3D12_PRIMITIVE_TOPOLOGY_TYPE topo) +{ + GraphicsDesc.PrimitiveTopologyType = topo; + return *this; +} + D3D12PSOCreator &D3D12PSOCreator::RootSig(ID3D12RootSignaturePtr rootSig) { GraphicsDesc.pRootSignature = rootSig; diff --git a/util/test/demos/d3d12/d3d12_helpers.h b/util/test/demos/d3d12/d3d12_helpers.h index 0c0a1bbeb..7a0bcb445 100644 --- a/util/test/demos/d3d12/d3d12_helpers.h +++ b/util/test/demos/d3d12/d3d12_helpers.h @@ -83,6 +83,8 @@ public: D3D12PSOCreator &InputLayout(const std::vector &elements); D3D12PSOCreator &InputLayout(); + D3D12PSOCreator &Topology(D3D12_PRIMITIVE_TOPOLOGY_TYPE topo); + D3D12PSOCreator &RootSig(ID3D12RootSignaturePtr rootSig); D3D12PSOCreator &RTVs(const std::vector &fmts);