Revert "[D3D12] Added workaround for broken Geometry Shader in AMD 7900 Series GPU"

This reverts commit 2afd2cc4d6.
This commit is contained in:
Gliniak 2023-04-09 17:27:55 +02:00
parent 190cef9872
commit 7fce8fce9d
1 changed files with 3 additions and 13 deletions

View File

@ -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