Mesa (master): st/mesa: set the MaxVarying GLSL constant

Marek Olšák mareko at kemper.freedesktop.org
Mon Aug 30 11:28:14 UTC 2010


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Wed Aug 25 05:25:41 2010 +0200

st/mesa: set the MaxVarying GLSL constant

---

 src/mesa/state_tracker/st_extensions.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 90e7867..6cd74db 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -161,6 +161,13 @@ void st_init_limits(struct st_context *st)
    pc->MaxNativeTemps           = screen->get_param(screen, PIPE_CAP_MAX_VS_TEMPS);
    pc->MaxNativeAddressRegs     = screen->get_param(screen, PIPE_CAP_MAX_VS_ADDRS);
    pc->MaxNativeParameters      = screen->get_param(screen, PIPE_CAP_MAX_VS_CONSTS);
+
+   /* PIPE_CAP_MAX_FS_INPUTS specifies the number of COLORn + GENERICn inputs
+    * and is set in MaxNativeAttribs. It's always 2 colors + N generic
+    * attributes. The GLSL compiler never uses COLORn for varyings, so we
+    * subtract the 2 colors to get the maximum number of varyings (generic
+    * attributes) supported by a driver. */
+   c->MaxVarying = screen->get_param(screen, PIPE_CAP_MAX_FS_INPUTS) - 2;
 }
 
 




More information about the mesa-commit mailing list