From 7fce8fce9da3524d16a487d53f057908033fce69 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Sun, 9 Apr 2023 17:27:55 +0200 Subject: [PATCH] Revert "[D3D12] Added workaround for broken Geometry Shader in AMD 7900 Series GPU" This reverts commit 2afd2cc4d69c87a4a04cb012d761efc85bd89c21. --- src/xenia/gpu/d3d12/pipeline_cache.cc | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/xenia/gpu/d3d12/pipeline_cache.cc b/src/xenia/gpu/d3d12/pipeline_cache.cc index ad41e5104..29501b299 100644 --- a/src/xenia/gpu/d3d12/pipeline_cache.cc +++ b/src/xenia/gpu/d3d12/pipeline_cache.cc @@ -61,10 +61,6 @@ DEFINE_int32( DEFINE_bool(d3d12_tessellation_wireframe, false, "Display tessellated surfaces as wireframe for debugging.", "D3D12"); -DEFINE_bool(d3d12_remove_retc_from_geometry_shader, false, - "[ONLY FOR AMD 7900 Series GPU] Workaround for broken Geometry " - "Shader. Warning! Might cause issues and hardlocks!", - "D3D12"); namespace xe { namespace gpu { @@ -2408,9 +2404,7 @@ void PipelineCache::CreateDxbcGeometryShader( dxbc::Src::R(0, 0b1110)); a.OpOr(dxbc::Dest::R(0, 0b0001), dxbc::Src::R(0, dxbc::Src::kXXXX), dxbc::Src::R(0, dxbc::Src::kYYYY)); - if (!cvars::d3d12_remove_retc_from_geometry_shader) { - a.OpRetC(true, dxbc::Src::R(0, dxbc::Src::kXXXX)); - } + a.OpRetC(true, dxbc::Src::R(0, dxbc::Src::kXXXX)); } // Cull the whole primitive if any cull distance for all vertices in the @@ -2436,9 +2430,7 @@ void PipelineCache::CreateDxbcGeometryShader( a.OpAnd(dxbc::Dest::R(0, 0b0001), dxbc::Src::R(0, dxbc::Src::kXXXX), dxbc::Src::R(0, dxbc::Src::kYYYY)); } - if (!cvars::d3d12_remove_retc_from_geometry_shader) { - a.OpRetC(true, dxbc::Src::R(0, dxbc::Src::kXXXX)); - } + a.OpRetC(true, dxbc::Src::R(0, dxbc::Src::kXXXX)); } } @@ -2481,9 +2473,7 @@ void PipelineCache::CreateDxbcGeometryShader( for (uint32_t i = 0; i < 2; ++i) { a.OpLT(dxbc::Dest::R(0, 0b0100), dxbc::Src::LF(0.0f), point_size_src.SelectFromSwizzled(i)); - if (!cvars::d3d12_remove_retc_from_geometry_shader) { - a.OpRetC(false, dxbc::Src::R(0, dxbc::Src::kZZZZ)); - } + a.OpRetC(false, dxbc::Src::R(0, dxbc::Src::kZZZZ)); } // Transform the diameter in the guest screen coordinates to radius in the // normalized device coordinates, and then to the clip space by