From: Rob Clark <robcl...@freedesktop.org>

With glsl_to_nir we end up with local variables, instead of global, for
arrays.

Note that we'll eventually have to do something more clever, I think,
when we support multiple functions, but that will probably take some
work in a few places.
---
 src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c 
b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
index e77afcc..cd664bc 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
@@ -2330,11 +2330,17 @@ emit_instructions(struct ir3_compile *ctx)
        setup_vars(ctx, &ctx->s->inputs, setup_input);
        setup_vars(ctx, &ctx->s->outputs, setup_output);
 
-       /* Setup variables (which should only be arrays): */
+       /* Setup global variables (which should only be arrays): */
        nir_foreach_variable(var, &ctx->s->globals) {
                declare_var(ctx, var);
        }
 
+       /* Setup local variables (which should only be arrays): */
+       /* NOTE: need to do something more clever when we support >1 fxn */
+       nir_foreach_variable(var, &fxn->locals) {
+               declare_var(ctx, var);
+       }
+
        /* And emit the body: */
        ctx->impl = fxn;
        emit_function(ctx, fxn);
-- 
2.5.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to