Mesa (master): i965: Add support for math on constants in gen6 brw_wm_glsl. c path.

Eric Anholt anholt at kemper.freedesktop.org
Wed Nov 10 04:25:14 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Nov  9 20:17:25 2010 -0800

i965: Add support for math on constants in gen6 brw_wm_glsl.c path.

Fixes 10 piglit cases that were assertion failing.

---

 src/mesa/drivers/dri/i965/brw_wm_emit.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index d037560..96fecc9 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -896,11 +896,12 @@ void emit_math1(struct brw_wm_compile *c,
 		      BRW_MATH_SATURATE_NONE);
    struct brw_reg src;
 
-   if (intel->gen >= 6 && arg0[0].hstride == BRW_HORIZONTAL_STRIDE_0) {
-      /* Gen6 math requires that source and dst horizontal stride be 1.
-       *
+   if (intel->gen >= 6 && (arg0[0].hstride == BRW_HORIZONTAL_STRIDE_0 ||
+			   arg0[0].file != BRW_GENERAL_REGISTER_FILE)) {
+      /* Gen6 math requires that source and dst horizontal stride be 1,
+       * and that the argument be in the GRF.
        */
-      src = *dst;
+      src = dst[dst_chan];
       brw_MOV(p, src, arg0[0]);
    } else {
       src = arg0[0];




More information about the mesa-commit mailing list