nir: Add compute shader shared variable storage class

Previously we were receiving shared variable accesses via a lowered
intrinsic function from glsl. This change allows us to send in
variables instead. For example, when converting from SPIR-V.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Jordan Justen
2016-01-08 17:16:29 -08:00
parent 26f8262698
commit 3c807607df
7 changed files with 26 additions and 3 deletions

View File

@@ -312,7 +312,8 @@ print_var_decl(nir_variable *var, print_state *state)
const char *const patch = (var->data.patch) ? "patch " : "";
const char *const inv = (var->data.invariant) ? "invariant " : "";
const char *const mode[] = { "shader_in ", "shader_out ", "", "",
"uniform ", "shader_storage ", "system " };
"uniform ", "shader_storage ", "shared ",
"system "};
fprintf(fp, "%s%s%s%s%s%s ",
cent, samp, patch, inv, mode[var->data.mode],
@@ -1069,6 +1070,10 @@ nir_print_shader(nir_shader *shader, FILE *fp)
print_var_decl(var, &state);
}
nir_foreach_variable(var, &shader->shared) {
print_var_decl(var, &state);
}
nir_foreach_variable(var, &shader->globals) {
print_var_decl(var, &state);
}