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);