diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp index 66fab21be7..8c7086b55e 100644 --- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp +++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp @@ -1463,7 +1463,9 @@ void EmitContext::DefineInputs(const IR::Program& program) { AddCapability(spv::Capability::GroupNonUniform); subgroup_local_invocation_id = DefineInput(*this, U32[1], false, spv::BuiltIn::SubgroupLocalInvocationId); - Decorate(subgroup_local_invocation_id, spv::Decoration::Flat); + if (stage == Stage::Fragment) { + Decorate(subgroup_local_invocation_id, spv::Decoration::Flat); + } } if (info.uses_fswzadd) { const Id f32_one{Const(1.0f)};