From b0256fb75f40a4e428366fcc69ebee47970fd01d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 17 Sep 2014 13:10:51 -0700 Subject: [PATCH] vc4: Initialize the various qreg arrays when allocating them. This is particularly important for outputs, where we try to MOV the whole vec4 to the VPM, even if only 1-3 components had been set up. It might also be important for temporaries, if the shader reads components before writing them. --- src/gallium/drivers/vc4/vc4_program.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index a662dc2ce54..539fede50a1 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -73,12 +73,16 @@ resize_qreg_array(struct vc4_compile *c, if (*size >= decl_size) return; + uint32_t old_size = *size; *size = MAX2(*size * 2, decl_size); *regs = reralloc(c, *regs, struct qreg, *size); if (!*regs) { fprintf(stderr, "Malloc failure\n"); abort(); } + + for (uint32_t i = old_size; i < *size; i++) + (*regs)[i] = c->undef; } static struct qreg -- 2.30.2