Mesa (gallium-cylindrical-wrap): st/mesa: check for PROG_PARAM_BIT_CYL_WRAP flag
Brian Paul
brianp at kemper.freedesktop.org
Thu Feb 4 23:48:44 UTC 2010
Module: Mesa
Branch: gallium-cylindrical-wrap
Commit: a4e3db0e7923cf576252e2289c28c2b4216295c7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4e3db0e7923cf576252e2289c28c2b4216295c7
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 6283833..f62099b 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 a639003..3613405 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"
@@ -358,7 +359,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