From 164abff0c017b542604f945fb6c7de77e3403698 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 21 Oct 2015 18:39:06 -0700 Subject: [PATCH] nir/spirv: Add support for more CS system values --- src/glsl/nir/spirv_to_nir.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/glsl/nir/spirv_to_nir.c b/src/glsl/nir/spirv_to_nir.c index 63f58bc2b2a..a3d38831267 100644 --- a/src/glsl/nir/spirv_to_nir.c +++ b/src/glsl/nir/spirv_to_nir.c @@ -708,18 +708,24 @@ vtn_get_builtin_location(SpvBuiltIn builtin, int *location, *location = FRAG_RESULT_DEPTH; *mode = nir_var_shader_out; break; - case SpvBuiltInHelperInvocation: - unreachable("unsupported builtin"); /* XXX */ - break; case SpvBuiltInNumWorkgroups: case SpvBuiltInWorkgroupSize: /* these are constants, need to be handled specially */ unreachable("unsupported builtin"); - case SpvBuiltInWorkgroupId: - case SpvBuiltInLocalInvocationId: + break; case SpvBuiltInGlobalInvocationId: case SpvBuiltInLocalInvocationIndex: - unreachable("no compute shader support"); + /* these are computed values, need to be handled specially */ + unreachable("unsupported builtin"); + case SpvBuiltInWorkgroupId: + *location = SYSTEM_VALUE_WORK_GROUP_ID; + *mode = nir_var_system_value; + break; + case SpvBuiltInLocalInvocationId: + *location = SYSTEM_VALUE_LOCAL_INVOCATION_ID; + *mode = nir_var_system_value; + break; + case SpvBuiltInHelperInvocation: default: unreachable("unsupported builtin"); } -- 2.30.2