summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glsl/nir/nir.c2
-rw-r--r--src/glsl/nir/nir_intrinsics.h1
-rw-r--r--src/glsl/nir/nir_lower_system_values.c3
3 files changed, 6 insertions, 0 deletions
diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c
index aafcb939e3a..1774e1c13f4 100644
--- a/src/glsl/nir/nir.c
+++ b/src/glsl/nir/nir.c
@@ -1457,6 +1457,8 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
return SYSTEM_VALUE_SAMPLE_POS;
case nir_intrinsic_load_sample_mask_in:
return SYSTEM_VALUE_SAMPLE_MASK_IN;
+ case nir_intrinsic_load_local_invocation_id:
+ return SYSTEM_VALUE_LOCAL_INVOCATION_ID;
/* FINISHME: Add tessellation intrinsics.
return SYSTEM_VALUE_TESS_COORD;
return SYSTEM_VALUE_VERTICES_IN;
diff --git a/src/glsl/nir/nir_intrinsics.h b/src/glsl/nir/nir_intrinsics.h
index 07dd5cf1ec3..83966129462 100644
--- a/src/glsl/nir/nir_intrinsics.h
+++ b/src/glsl/nir/nir_intrinsics.h
@@ -141,6 +141,7 @@ SYSTEM_VALUE(sample_id, 1)
SYSTEM_VALUE(sample_pos, 2)
SYSTEM_VALUE(sample_mask_in, 1)
SYSTEM_VALUE(invocation_id, 1)
+SYSTEM_VALUE(local_invocation_id, 3)
/*
* The format of the indices depends on the type of the load. For uniforms,
diff --git a/src/glsl/nir/nir_lower_system_values.c b/src/glsl/nir/nir_lower_system_values.c
index 440fb0b1b8e..91228e367a4 100644
--- a/src/glsl/nir/nir_lower_system_values.c
+++ b/src/glsl/nir/nir_lower_system_values.c
@@ -70,6 +70,9 @@ convert_instr(nir_intrinsic_instr *instr)
case SYSTEM_VALUE_INVOCATION_ID:
op = nir_intrinsic_load_invocation_id;
break;
+ case SYSTEM_VALUE_LOCAL_INVOCATION_ID:
+ op = nir_intrinsic_load_local_invocation_id;
+ break;
default:
unreachable("not reached");
}