Module: Mesa
Branch: master
Commit: 197a19f9ed0ba12cc431542ac09f2af0a8bd0bce
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=197a19f9ed0ba12cc431542ac09f2af0a8bd0bce

Author: Ilia Mirkin <[email protected]>
Date:   Wed Jul  1 18:22:23 2015 -0400

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]>

---

 src/mesa/program/prog_opt_constant_fold.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/mesa/program/prog_opt_constant_fold.c 
b/src/mesa/program/prog_opt_constant_fold.c
index 3811c0d..e2518e6 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;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to