From 3ba16d640e8ae1b3f34dcb1254f169fb1ccb1dba Mon Sep 17 00:00:00 2001 From: Plamena Manolova Date: Fri, 25 May 2018 22:49:47 +0100 Subject: [PATCH] nir: Add global invocation id intrinsic. Add the missing nir intrinsic for the gl_GlobalInvocationID compute shader variable. Signed-off-by: Plamena Manolova Reviewed-by: Jordan Justen --- src/compiler/nir/nir.c | 4 ++++ src/compiler/nir/nir_intrinsics.py | 1 + 2 files changed, 5 insertions(+) diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index dc1c560319e..36a79f57ee5 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -2051,6 +2051,8 @@ nir_intrinsic_from_system_value(gl_system_value val) return nir_intrinsic_load_subgroup_id; case SYSTEM_VALUE_LOCAL_GROUP_SIZE: return nir_intrinsic_load_local_group_size; + case SYSTEM_VALUE_GLOBAL_INVOCATION_ID: + return nir_intrinsic_load_global_invocation_id; default: unreachable("system value does not directly correspond to intrinsic"); } @@ -2130,6 +2132,8 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin) return SYSTEM_VALUE_SUBGROUP_ID; case nir_intrinsic_load_local_group_size: return SYSTEM_VALUE_LOCAL_GROUP_SIZE; + case nir_intrinsic_load_global_invocation_id: + return SYSTEM_VALUE_GLOBAL_INVOCATION_ID; default: unreachable("intrinsic doesn't produce a system value"); } diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index ac8a67f44bb..484b2d4fd68 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -449,6 +449,7 @@ system_value("subgroup_lt_mask", 0) system_value("num_subgroups", 1) system_value("subgroup_id", 1) system_value("local_group_size", 3) +system_value("global_invocation_id", 3) # Blend constant color values. Float values are clamped.# system_value("blend_const_color_r_float", 1) -- 2.30.2