Mesa (master): mesa: change MAX_PROGRAM_ADDRESS_REGS to 1, clamp to it in state tracker

Brian Paul brianp at kemper.freedesktop.org
Tue Jun 4 19:36:25 UTC 2013


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

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Jun  4 09:51:15 2013 -0700

mesa: change MAX_PROGRAM_ADDRESS_REGS to 1, clamp to it in state tracker

We've never properly supported more than one address register.  There
isn't even a field in prog_src_register or prog_dst_register to indicate
which address register to use if RelAddr!=0.

In the state tracker, clamp MaxAddressRegs against MAX_PROGRAM_ADDRESS_REGS
since many gallium drivers do support more.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65226

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

---

 src/mesa/main/config.h                 |    2 +-
 src/mesa/state_tracker/st_extensions.c |    3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index 4a4fdc9..4855cc0 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -187,7 +187,7 @@
 #define MAX_PROGRAM_MATRIX_STACK_DEPTH 4
 #define MAX_PROGRAM_CALL_DEPTH         8
 #define MAX_PROGRAM_TEMPS              256
-#define MAX_PROGRAM_ADDRESS_REGS       2
+#define MAX_PROGRAM_ADDRESS_REGS       1
 #define MAX_VARYING                    32    /**< number of float[4] vectors */
 #define MAX_SAMPLERS                   MAX_TEXTURE_IMAGE_UNITS
 #define MAX_PROGRAM_INPUTS             32
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 46acc87..ddae956 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -187,7 +187,8 @@ void st_init_limits(struct st_context *st)
       pc->MaxTemps           = pc->MaxNativeTemps           =
          screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEMPS);
       pc->MaxAddressRegs     = pc->MaxNativeAddressRegs     =
-         screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ADDRS);
+         _min(screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ADDRS),
+              MAX_PROGRAM_ADDRESS_REGS);
       pc->MaxParameters      = pc->MaxNativeParameters      =
          screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_CONSTS);
 




More information about the mesa-commit mailing list