summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2017-12-14 16:48:01 +0100
committerSamuel Pitoiset <[email protected]>2017-12-14 22:22:02 +0100
commit42285ed8c33c163914224719a5dabb54229046a9 (patch)
tree413cdd5e3fb17bde4c644bb79a46022caadc9c0e /src
parent5a761167f53b53569a6d55d9436bdfec071b2b17 (diff)
amd/common: scan which components of gl_WorkGroupID are used
Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/amd/common/ac_shader_info.c8
-rw-r--r--src/amd/common/ac_shader_info.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c
index 09dd4bbd558..01949770d68 100644
--- a/src/amd/common/ac_shader_info.c
+++ b/src/amd/common/ac_shader_info.c
@@ -45,6 +45,14 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, struct ac_shader_info *info)
case nir_intrinsic_load_num_work_groups:
info->cs.uses_grid_size = true;
break;
+ case nir_intrinsic_load_work_group_id: {
+ unsigned mask = nir_ssa_def_components_read(&instr->dest.ssa);
+ while (mask) {
+ unsigned i = u_bit_scan(&mask);
+ info->cs.uses_block_id[i] = true;
+ }
+ break;
+ }
case nir_intrinsic_load_sample_id:
info->ps.force_persample = true;
break;
diff --git a/src/amd/common/ac_shader_info.h b/src/amd/common/ac_shader_info.h
index 3c809cce13a..7beefd02ac5 100644
--- a/src/amd/common/ac_shader_info.h
+++ b/src/amd/common/ac_shader_info.h
@@ -43,6 +43,7 @@ struct ac_shader_info {
} ps;
struct {
bool uses_grid_size;
+ bool uses_block_id[3];
} cs;
};