Mesa (master): glsl: Add support for parsing [iu] samplerBuffer types in GLSL 1.40.

Eric Anholt anholt at kemper.freedesktop.org
Mon Apr 9 21:50:33 UTC 2012


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Mar 26 14:13:17 2012 -0700

glsl: Add support for parsing [iu]samplerBuffer types in GLSL 1.40.

The samplerBuffer type will be undefined in !glsl 1.40, and the
keyword is marked as reserved.  The [iu]samplerBuffer types are not
marked as reserved pre-1.40, so they don't have separate tokens and
fall through to normal type handling.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/glsl/glsl_parser.yy |    1 +
 src/glsl/glsl_types.cpp |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 26cdc16..920213c 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1405,6 +1405,7 @@ basic_type_specifier_nonarray:
 	| SAMPLER2DARRAY	{ $$ = "sampler2DArray"; }
 	| SAMPLER1DARRAYSHADOW	{ $$ = "sampler1DArrayShadow"; }
 	| SAMPLER2DARRAYSHADOW	{ $$ = "sampler2DArrayShadow"; }
+	| SAMPLERBUFFER		{ $$ = "samplerBuffer"; }
 	| ISAMPLER1D		{ $$ = "isampler1D"; }
 	| ISAMPLER2D		{ $$ = "isampler2D"; }
 	| ISAMPLER3D		{ $$ = "isampler3D"; }
diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index 069ebd1..8a34b8e 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -146,7 +146,6 @@ glsl_type::sampler_index() const
    case GLSL_SAMPLER_DIM_RECT:
       return TEXTURE_RECT_INDEX;
    case GLSL_SAMPLER_DIM_BUF:
-      assert(!"FINISHME: Implement ARB_texture_buffer_object");
       return TEXTURE_BUFFER_INDEX;
    case GLSL_SAMPLER_DIM_EXTERNAL:
       return TEXTURE_EXTERNAL_INDEX;
@@ -213,6 +212,10 @@ glsl_type::generate_140_types(glsl_symbol_table *symtab)
 
    add_types_to_symbol_table(symtab, builtin_140_types,
 			     Elements(builtin_140_types), false);
+
+   add_types_to_symbol_table(symtab, builtin_EXT_texture_buffer_object_types,
+			     Elements(builtin_EXT_texture_buffer_object_types),
+			     false);
 }
 
 




More information about the mesa-commit mailing list