From: Samuel Pitoiset Date: Thu, 14 Dec 2017 15:48:02 +0000 (+0100) Subject: amd/common: scan which components of gl_LocalInvocationID are used X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e0019444104722e8084aa76a090af5fbaeb77943;p=mesa.git amd/common: scan which components of gl_LocalInvocationID are used Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c index 01949770d68..87744ed23e1 100644 --- a/src/amd/common/ac_shader_info.c +++ b/src/amd/common/ac_shader_info.c @@ -45,11 +45,16 @@ 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_local_invocation_id: 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; + + if (instr->intrinsic == nir_intrinsic_load_work_group_id) + info->cs.uses_block_id[i] = true; + else + info->cs.uses_thread_id[i] = true; } break; } diff --git a/src/amd/common/ac_shader_info.h b/src/amd/common/ac_shader_info.h index 7beefd02ac5..0136d5af403 100644 --- a/src/amd/common/ac_shader_info.h +++ b/src/amd/common/ac_shader_info.h @@ -44,6 +44,7 @@ struct ac_shader_info { struct { bool uses_grid_size; bool uses_block_id[3]; + bool uses_thread_id[3]; } cs; };