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

@@ -82,6 +82,7 @@ using OutputMap = std::array<Output, 4>;
struct VertexRuntimeInfo {
u32 num_outputs;
std::array<OutputMap, 3> outputs;
bool tess_emulated_primitive{};
bool emulate_depth_negative_one_to_one{};
bool clip_disable{};
u32 step_rate_0;
@@ -94,6 +95,7 @@ struct VertexRuntimeInfo {
bool operator==(const VertexRuntimeInfo& other) const noexcept {
return num_outputs == other.num_outputs && outputs == other.outputs &&
tess_emulated_primitive == other.tess_emulated_primitive &&
emulate_depth_negative_one_to_one == other.emulate_depth_negative_one_to_one &&
clip_disable == other.clip_disable && tess_type == other.tess_type &&
tess_topology == other.tess_topology &&