shader_recompiler: Do not emit Layer when emulating primitive type with tessellation. (#3457)

Layer must be output from the final pre-rasterization stage, so when tessellation is
being used the vertex shader cannot set it. We could pass it through to the tessellation
shaders in some way, but unless it becomes an issue that's more effort than it's worth.
This commit is contained in:
squidbus
2025-08-25 04:17:20 -07:00
committed by GitHub
parent 875724a982
commit 25d1defb5b
3 changed files with 20 additions and 2 deletions

View File

@@ -128,6 +128,9 @@ const Shader::RuntimeInfo& PipelineCache::BuildRuntimeInfo(Stage stage, LogicalS
info.vs_info.emulate_depth_negative_one_to_one =
!instance.IsDepthClipControlSupported() &&
regs.clipper_control.clip_space == Liverpool::ClipSpace::MinusWToW;
info.vs_info.tess_emulated_primitive =
regs.primitive_type == AmdGpu::PrimitiveType::RectList ||
regs.primitive_type == AmdGpu::PrimitiveType::QuadList;
info.vs_info.clip_disable = regs.IsClipDisabled();
if (l_stage == LogicalStage::TessellationEval) {
info.vs_info.tess_type = regs.tess_config.type;