From: Jason Ekstrand Date: Thu, 22 Oct 2015 01:39:06 +0000 (-0700) Subject: nir/spirv: Add support for more CS system values X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=164abff0c017b542604f945fb6c7de77e3403698;p=mesa.git nir/spirv: Add support for more CS system values --- 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"); }