diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2015-07-01 18:22:23 -0400 |
---|---|---|
committer | Ilia Mirkin <imirkin@alum.mit.edu> | 2015-07-02 13:29:51 -0400 |
commit | 197a19f9ed0ba12cc431542ac09f2af0a8bd0bce (patch) | |
tree | bce65b354f18d1d01cfba67f0188321a30c1ea2b /src/mesa/program | |
parent | fe2b748a39ff676949fcefccf739aff967fc38c5 (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>
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/prog_opt_constant_fold.c | 2 |
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; |