summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2015-07-01 18:22:23 -0400
committerIlia Mirkin <[email protected]>2015-07-02 13:29:51 -0400
commit197a19f9ed0ba12cc431542ac09f2af0a8bd0bce (patch)
treebce65b354f18d1d01cfba67f0188321a30c1ea2b
parentfe2b748a39ff676949fcefccf739aff967fc38c5 (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 <[email protected]> Cc: "10.5 10.6" <[email protected]> Reviewed-by: Chris Forbes <[email protected]>
-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;