Mesa (arb_geometry_shader4): gs: recognize "varying in|out" language
Zack Rusin
zack at kemper.freedesktop.org
Tue May 19 01:16:53 UTC 2009
Module: Mesa
Branch: arb_geometry_shader4
Commit: baf438c8a5c0927024777956edf807ae3bd6232c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=baf438c8a5c0927024777956edf807ae3bd6232c
Author: Zack Rusin <zackr at vmware.com>
Date: Mon May 18 21:07:25 2009 -0400
gs: recognize "varying in|out" language
---
src/mesa/shader/slang/library/slang_shader.syn | 5 +++++
src/mesa/shader/slang/library/slang_shader_syn.h | 3 +++
src/mesa/shader/slang/slang_compile.c | 2 ++
src/mesa/state_tracker/st_program.c | 2 +-
4 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/src/mesa/shader/slang/library/slang_shader.syn b/src/mesa/shader/slang/library/slang_shader.syn
index f3fd1f8..66e2fd9 100644
--- a/src/mesa/shader/slang/library/slang_shader.syn
+++ b/src/mesa/shader/slang/library/slang_shader.syn
@@ -137,6 +137,7 @@
.emtcode TYPE_QUALIFIER_UNIFORM 4
.emtcode TYPE_QUALIFIER_FIXEDOUTPUT 5
.emtcode TYPE_QUALIFIER_FIXEDINPUT 6
+.emtcode TYPE_QUALIFIER_VARYING_IN 7
/* invariant qualifier */
.emtcode TYPE_VARIANT 90
@@ -957,6 +958,8 @@ centroid_qualifier
* <type_qualifier> ::= "const"
* | "attribute" // Vertex only.
* | "varying"
+ * | "varying out"
+ * | "varying in"
* | "uniform"
* | "__fixed_output"
* | "__fixed_input"
@@ -968,6 +971,8 @@ type_qualifier
"const" .emit TYPE_QUALIFIER_CONST .or
.if (shader_type == 2) "attribute" .emit TYPE_QUALIFIER_ATTRIBUTE .or
"varying" .emit TYPE_QUALIFIER_VARYING .or
+ "varying out" .emit TYPE_QUALIFIER_VARYING .or
+ "varying in" .emit TYPE_QUALIFIER_VARYING_IN .or
"uniform" .emit TYPE_QUALIFIER_UNIFORM .or
.if (parsing_builtin != 0) "__fixed_output" .emit TYPE_QUALIFIER_FIXEDOUTPUT .or
.if (parsing_builtin != 0) "__fixed_input" .emit TYPE_QUALIFIER_FIXEDINPUT;
diff --git a/src/mesa/shader/slang/library/slang_shader_syn.h b/src/mesa/shader/slang/library/slang_shader_syn.h
index 9312270..8c0884f 100644
--- a/src/mesa/shader/slang/library/slang_shader_syn.h
+++ b/src/mesa/shader/slang/library/slang_shader_syn.h
@@ -49,6 +49,7 @@
".emtcode TYPE_QUALIFIER_UNIFORM 4\n"
".emtcode TYPE_QUALIFIER_FIXEDOUTPUT 5\n"
".emtcode TYPE_QUALIFIER_FIXEDINPUT 6\n"
+".emtcode TYPE_QUALIFIER_VARYING_IN 7\n"
".emtcode TYPE_VARIANT 90\n"
".emtcode TYPE_INVARIANT 91\n"
".emtcode TYPE_CENTER 95\n"
@@ -468,6 +469,8 @@
" \"const\" .emit TYPE_QUALIFIER_CONST .or\n"
" .if (shader_type == 2) \"attribute\" .emit TYPE_QUALIFIER_ATTRIBUTE .or\n"
" \"varying\" .emit TYPE_QUALIFIER_VARYING .or\n"
+" \"varying out\" .emit TYPE_QUALIFIER_VARYING .or\n"
+" \"varying in\" .emit TYPE_QUALIFIER_VARYING_IN .or\n"
" \"uniform\" .emit TYPE_QUALIFIER_UNIFORM .or\n"
" .if (parsing_builtin != 0) \"__fixed_output\" .emit TYPE_QUALIFIER_FIXEDOUTPUT .or\n"
" .if (parsing_builtin != 0) \"__fixed_input\" .emit TYPE_QUALIFIER_FIXEDINPUT;\n"
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c
index ebb5f5b..5512b95 100644
--- a/src/mesa/shader/slang/slang_compile.c
+++ b/src/mesa/shader/slang/slang_compile.c
@@ -562,6 +562,7 @@ parse_type_centroid(slang_parse_ctx * C, slang_type_centroid *centroid)
#define TYPE_QUALIFIER_UNIFORM 4
#define TYPE_QUALIFIER_FIXEDOUTPUT 5
#define TYPE_QUALIFIER_FIXEDINPUT 6
+#define TYPE_QUALIFIER_VARYING_IN 7
static int
parse_type_qualifier(slang_parse_ctx * C, slang_type_qualifier * qual)
@@ -578,6 +579,7 @@ parse_type_qualifier(slang_parse_ctx * C, slang_type_qualifier * qual)
*qual = SLANG_QUAL_ATTRIBUTE;
break;
case TYPE_QUALIFIER_VARYING:
+ case TYPE_QUALIFIER_VARYING_IN:
*qual = SLANG_QUAL_VARYING;
break;
case TYPE_QUALIFIER_UNIFORM:
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index d451c26..082a6e9 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -649,7 +649,7 @@ st_translate_geometry_program(struct st_context *st,
* Determine number of outputs, the (default) output register
* mapping and the semantic information for each output.
*/
- for (attr = 0; attr < VERT_RESULT_MAX; attr++) {
+ for (attr = 0; attr < GEOM_RESULT_MAX; attr++) {
if (stgp->Base.Base.OutputsWritten & (1 << attr)) {
GLuint slot;
More information about the mesa-commit
mailing list