Mesa (master): mesa: implement system values in program interpreter

Brian Paul brianp at kemper.freedesktop.org
Sat Jan 15 17:25:56 UTC 2011


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

Author: Brian Paul <brianp at vmware.com>
Date:   Fri Dec 10 09:29:00 2010 -0700

mesa: implement system values in program interpreter

---

 src/mesa/program/prog_execute.c |    4 ++++
 src/mesa/program/prog_execute.h |    1 +
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/mesa/program/prog_execute.c b/src/mesa/program/prog_execute.c
index 1d97a07..c20347f 100644
--- a/src/mesa/program/prog_execute.c
+++ b/src/mesa/program/prog_execute.c
@@ -159,6 +159,10 @@ get_src_register_pointer(const struct prog_src_register *source,
          return ZeroVec;
       return prog->Parameters->ParameterValues[reg];
 
+   case PROGRAM_SYSTEM_VALUE:
+      assert(reg < Elements(machine->SystemValues));
+      return machine->SystemValues[reg];
+
    default:
       _mesa_problem(NULL,
          "Invalid src register file %d in get_src_register_pointer()",
diff --git a/src/mesa/program/prog_execute.h b/src/mesa/program/prog_execute.h
index cefd468..cdf3708 100644
--- a/src/mesa/program/prog_execute.h
+++ b/src/mesa/program/prog_execute.h
@@ -61,6 +61,7 @@ struct gl_program_machine
    GLfloat (*EnvParams)[4]; /**< Vertex or Fragment env parameters */
    GLuint CondCodes[4];  /**< COND_* value for x/y/z/w */
    GLint AddressReg[MAX_PROGRAM_ADDRESS_REGS][4];
+   GLfloat SystemValues[SYSTEM_VALUE_MAX][4];
 
    const GLubyte *Samplers;  /** Array mapping sampler var to tex unit */
 




More information about the mesa-commit mailing list