summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2015-07-01 18:22:23 -0400
committerEmil Velikov <emil.l.velikov@gmail.com>2015-07-08 13:34:06 +0100
commit0b5a9660dc1210558e093d8690516c833a87a330 (patch)
treebb7ce67551f4f50a6ec82a2ee280b18df8253580
parent1e8c43f4d0f6dd6699d5d72efbc02538733a38ec (diff)
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 <imirkin@alum.mit.edu> Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> (cherry picked from commit 197a19f9ed0ba12cc431542ac09f2af0a8bd0bce)
-rw-r--r--src/mesa/program/prog_opt_constant_fold.c2
1 files changed, 2 insertions, 0 deletions
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;