From: Ilia Mirkin Date: Wed, 1 Jul 2015 22:22:23 +0000 (-0400) Subject: mesa/prog: relative offsets into constbufs are not constant X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=197a19f9ed0ba12cc431542ac09f2af0a8bd0bce;p=mesa.git mesa/prog: relative offsets into constbufs are not constant The optimization logic relies on being able to read out constbuf values from program parameters. However that only works if there's no relative addressing involved. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91173 Signed-off-by: Ilia Mirkin Cc: "10.5 10.6" Reviewed-by: Chris Forbes --- diff --git a/src/mesa/program/prog_opt_constant_fold.c b/src/mesa/program/prog_opt_constant_fold.c index 3811c0d8aa6..e2518e660e6 100644 --- a/src/mesa/program/prog_opt_constant_fold.c +++ b/src/mesa/program/prog_opt_constant_fold.c @@ -38,6 +38,8 @@ src_regs_are_constant(const struct prog_instruction *inst, unsigned num_srcs) for (i = 0; i < num_srcs; i++) { if (inst->SrcReg[i].File != PROGRAM_CONSTANT) return false; + if (inst->SrcReg[i].RelAddr) + return false; } return true;