Mesa (master): st/mesa: allow negative index for PROGRAM_STATE_VAR

Brian Paul brianp at kemper.freedesktop.org
Fri Feb 5 21:59:15 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Fri Feb  5 14:59:04 2010 -0700

st/mesa: allow negative index for PROGRAM_STATE_VAR

The piglit vp-address-01 test uses negative address-relative
offsets.  In this test we're indexing into PROGRAM_STATE_VAR
which, in turn, contains references to ENV vars.

We previously fixed this issue for PROGRAM_CONSTANT.

piglit/vp-address-01 (the version from Feb 5) passes now.

(cherry picked from commit 64be837b0b171c44f47a3c0b83f566d292ffff50)

---

 src/mesa/state_tracker/st_mesa_to_tgsi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index 6283833..3eb4c1c 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -177,13 +177,13 @@ src_register( struct st_translate *t,
          t->temps[index] = ureg_DECL_temporary( t->ureg );
       return ureg_src(t->temps[index]);
 
-   case PROGRAM_STATE_VAR:
    case PROGRAM_NAMED_PARAM:
    case PROGRAM_ENV_PARAM:
    case PROGRAM_LOCAL_PARAM:
    case PROGRAM_UNIFORM:
       ASSERT(index >= 0);
       return t->constants[index];
+   case PROGRAM_STATE_VAR:
    case PROGRAM_CONSTANT:       /* ie, immediate */
       if (index < 0)
          return ureg_DECL_constant( t->ureg, 0 );




More information about the mesa-commit mailing list