freedreno/ir3: fix small RA bug
authorRob Clark <robclark@freedesktop.org>
Fri, 22 Apr 2016 22:39:10 +0000 (18:39 -0400)
committerRob Clark <robclark@freedesktop.org>
Sun, 24 Apr 2016 17:40:57 +0000 (13:40 -0400)
Normally the offset in the group would be the same, but not always.  For
example, in a sam(w) which only writes the 4th component.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3_ra.c

index ed3030d722a3107131039a61677ce2eb68daf501..e0c3c8028dfb13f3974ec73bd69a621312cc52e8 100644 (file)
@@ -469,7 +469,8 @@ get_definer(struct ir3_ra_ctx *ctx, struct ir3_instruction *instr,
 
                *sz = MAX2(*sz, dsz);
 
-               /* Fanout's are grouped, so *off should already valid */
+               debug_assert(instr->opc == OPC_META_FO);
+               *off = MAX2(*off, instr->fo.off);
 
                d = dd;
        }