diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index 3d55698cde1..b9fd6b6b13b 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -568,6 +568,8 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader, case nir_intrinsic_write_invocation_amd: if (shader->info.stage == MESA_SHADER_FRAGMENT) shader->info.fs.needs_all_helper_invocations = true; + if (shader->info.stage == MESA_SHADER_COMPUTE) + shader->info.cs.uses_wide_subgroup_intrinsics = true; break; case nir_intrinsic_end_primitive: diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index fb9349100f9..f890b6c028f 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -378,6 +378,11 @@ typedef struct shader_info { * AddressingModelPhysical64: 64 */ unsigned ptr_size; + + /** + * Uses subgroup intrinsics which can communicate across a quad. + */ + bool uses_wide_subgroup_intrinsics; } cs; /* Applies to both TCS and TES. */