Mesa (master): st/mesa: check for PROG_PARAM_BIT_CYL_WRAP flag

Michał Król michal at kemper.freedesktop.org
Tue Feb 9 14:35:33 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Feb  4 16:36:55 2010 -0700

st/mesa: check for PROG_PARAM_BIT_CYL_WRAP flag

---

 src/mesa/state_tracker/st_mesa_to_tgsi.c |   17 +++++++++++++----
 src/mesa/state_tracker/st_program.c      |   10 +++++++++-
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index 3eb4c1c..06cf6d2 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -825,10 +825,19 @@ st_translate_mesa_program(
    if (procType == TGSI_PROCESSOR_FRAGMENT) {
       struct gl_fragment_program* fp = (struct gl_fragment_program*)program;
       for (i = 0; i < numInputs; i++) {
-         t->inputs[i] = ureg_DECL_fs_input(ureg,
-                                           inputSemanticName[i],
-                                           inputSemanticIndex[i],
-                                           interpMode[i]);
+         if (program->InputFlags[0] & PROG_PARAM_BIT_CYL_WRAP) {
+            t->inputs[i] = ureg_DECL_fs_input_cyl(ureg,
+                                                  inputSemanticName[i],
+                                                  inputSemanticIndex[i],
+                                                  interpMode[i],
+                                                  TGSI_CYLINDRICAL_WRAP_X);
+         }
+         else {
+            t->inputs[i] = ureg_DECL_fs_input(ureg,
+                                              inputSemanticName[i],
+                                              inputSemanticIndex[i],
+                                              interpMode[i]);
+         }
       }
 
       if (program->InputsRead & FRAG_BIT_WPOS) {
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 21ad6fe..e939ab3 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -33,6 +33,7 @@
 
 #include "main/imports.h"
 #include "main/mtypes.h"
+#include "shader/prog_parameter.h"
 #include "shader/prog_print.h"
 #include "shader/programopt.h"
 
@@ -367,7 +368,14 @@ st_translate_fragment_program(struct st_context *st,
             assert(attr >= FRAG_ATTRIB_TEX0);
             stfp->input_semantic_index[slot] = (attr - FRAG_ATTRIB_TEX0);
             stfp->input_semantic_name[slot] = TGSI_SEMANTIC_GENERIC;
-            interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE;
+
+            /* XXX this test is very temporary */
+            if (stfp->Base.Base.InputFlags[0] & PROG_PARAM_BIT_CYL_WRAP) {
+               interpMode[slot] = TGSI_INTERPOLATE_LINEAR;
+            }
+            else {
+               interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE;
+            }
             break;
          }
       }




More information about the mesa-commit mailing list