panfrost: Fix two uninitialized accesses in compiler
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Tue, 7 May 2019 15:28:36 +0000 (17:28 +0200)
committerTomeu Vizoso <tomeu.vizoso@collabora.com>
Fri, 10 May 2019 05:37:57 +0000 (07:37 +0200)
Valgrind was complaining of those.

NIR_PASS only sets progress to TRUE if there was progress.

nir_const_load_to_arr() only sets as many constants as components has
the instruction.

This was causing some dEQP tests to flip-flop, such as:

dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_color_constant_color

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Fixes: 14531d676b11 ("nir: make nir_const_value scalar")
src/gallium/drivers/panfrost/midgard/midgard_compile.c

index eaf473840ca7e92bc28fbfc0d1a9379187cfe5f7..25316cab053c49a5d5d409b90dc0a9af152db5dd 100644 (file)
@@ -1020,7 +1020,7 @@ emit_load_const(compiler_context *ctx, nir_load_const_instr *instr)
 {
         nir_ssa_def def = instr->def;
 
-        float *v = ralloc_array(NULL, float, 4);
+        float *v = rzalloc_array(NULL, float, 4);
         nir_const_load_to_arr(v, instr, f32);
         _mesa_hash_table_u64_insert(ctx->ssa_constants, def.index + 1, v);
 }