summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEduardo Lima Mitev <elima@igalia.com>2016-04-15 10:00:05 +0200
committerEduardo Lima Mitev <elima@igalia.com>2016-04-15 16:41:41 +0200
commit7e4628da48290f76dd0d4ddc29faf083db0d78ae (patch)
tree0cb8451042595420b48236fcdd7780d85688a216 /src
parentf8752e0d95b0b562ca64e8064e98a0b66e5d1591 (diff)
nir/print: Fix printing variable mode
nir_variable_mode is currently a bitflag enum, while nir_print::print_var_decl() assumes is still a numbered list. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src')
-rw-r--r--src/compiler/nir/nir_print.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c
index 84e926905b4..229539d44ee 100644
--- a/src/compiler/nir/nir_print.c
+++ b/src/compiler/nir/nir_print.c
@@ -315,6 +315,30 @@ print_constant(nir_constant *c, const struct glsl_type *type, print_state *state
}
}
+static const char *
+get_variable_mode_str(nir_variable_mode mode)
+{
+ switch (mode) {
+ case nir_var_shader_in:
+ return "shader_in";
+ case nir_var_shader_out:
+ return "shader_out";
+ case nir_var_uniform:
+ return "uniform";
+ case nir_var_shader_storage:
+ return "shader_storage";
+ case nir_var_system_value:
+ return "system";
+ case nir_var_shared:
+ return "shared";
+ case nir_var_param:
+ case nir_var_global:
+ case nir_var_local:
+ default:
+ return "";
+ }
+}
+
static void
print_var_decl(nir_variable *var, print_state *state)
{
@@ -326,13 +350,9 @@ print_var_decl(nir_variable *var, print_state *state)
const char *const samp = (var->data.sample) ? "sample " : "";
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 ", "shared ",
- "system "};
-
- fprintf(fp, "%s%s%s%s%s%s ",
- cent, samp, patch, inv, mode[var->data.mode],
- glsl_interp_qualifier_name(var->data.interpolation));
+ fprintf(fp, "%s%s%s%s%s %s ",
+ cent, samp, patch, inv, get_variable_mode_str(var->data.mode),
+ glsl_interp_qualifier_name(var->data.interpolation));
glsl_print_type(var->type, fp);