summaryrefslogtreecommitdiffstats
path: root/src/freedreno
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2019-02-19 13:25:02 -0500
committerRob Clark <[email protected]>2019-02-20 18:50:08 -0500
commit7fe9e790e72bacd4617e4ed288e6161b69235f7d (patch)
treefe678be5de1fe2c9509ad51e859a506dc0148404 /src/freedreno
parent8c486083d0c132c42e4ad750ebb2fd0f3d5fa2d6 (diff)
freedreno: fix crash w/ masked non-SSA dst
Fixes dEQP-GLES3.functional.shaders.indexing.varying_array.vec3_dynamic_write_dynamic_loop_read regression. Fixes: c1a27ba9baf freedreno/ir3: HIGH reg w/a for a6xx Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/freedreno')
-rw-r--r--src/freedreno/ir3/ir3_context.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/freedreno/ir3/ir3_context.c b/src/freedreno/ir3/ir3_context.c
index 1fc453c15b3..d768c21e6f5 100644
--- a/src/freedreno/ir3/ir3_context.c
+++ b/src/freedreno/ir3/ir3_context.c
@@ -251,6 +251,8 @@ put_dst(struct ir3_context *ctx, nir_dest *dst)
* ir3_cp will clean up the extra mov:
*/
for (unsigned i = 0; i < ctx->last_dst_n; i++) {
+ if (!ctx->last_dst[i])
+ continue;
if (ctx->last_dst[i]->regs[0]->flags & IR3_REG_HIGH) {
ctx->last_dst[i] = ir3_MOV(ctx->block, ctx->last_dst[i], TYPE_U32);
}