From 5305603b9de52e59b9c5eec440f90a12cafa91a1 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 17 Sep 2015 18:18:45 -0400 Subject: [PATCH] nir/print: print variable names Signed-off-by: Rob Clark Reviewed-by: Timothy Arceri --- src/glsl/nir/nir_print.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/glsl/nir/nir_print.c b/src/glsl/nir/nir_print.c index ca8059fc920..6e86140ed9d 100644 --- a/src/glsl/nir/nir_print.c +++ b/src/glsl/nir/nir_print.c @@ -430,6 +430,36 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state) } fprintf(fp, ")"); + + if (!state->shader) + return; + + struct exec_list *var_list = NULL; + + switch (instr->intrinsic) { + case nir_intrinsic_load_uniform: + case nir_intrinsic_load_uniform_indirect: + var_list = &state->shader->uniforms; + break; + case nir_intrinsic_load_input: + case nir_intrinsic_load_input_indirect: + var_list = &state->shader->inputs; + break; + case nir_intrinsic_store_output: + case nir_intrinsic_store_output_indirect: + var_list = &state->shader->outputs; + break; + default: + return; + } + + foreach_list_typed(nir_variable, var, node, var_list) { + if ((var->data.driver_location == instr->const_index[0]) && + var->name) { + fprintf(fp, "\t/* %s */", var->name); + break; + } + } } static void -- 2.30.2