From 42285ed8c33c163914224719a5dabb54229046a9 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 14 Dec 2017 16:48:01 +0100 Subject: [PATCH] amd/common: scan which components of gl_WorkGroupID are used Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/common/ac_shader_info.c | 8 ++++++++ src/amd/common/ac_shader_info.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c index 09dd4bb..0194977 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 3c809cc..7beefd0 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; }; -- 2.7.4