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. ---
Good catch on my silly addition of tokens that never got lexed. But it turns out we didn't need to add those tokens, since [iu]samplerBuffer are defined types in the symbol table, and obviously we can find existing types during parsing. src/glsl/glsl_parser.yy | 1 + src/glsl/glsl_types.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy index 5ce69b6..dc1ef98 100644 --- a/src/glsl/glsl_parser.yy +++ b/src/glsl/glsl_parser.yy @@ -1405,6 +1405,7 @@ basic_type_specifier_nonarray: | SAMPLER2DARRAY { $$ = (char *)"sampler2DArray"; } | SAMPLER1DARRAYSHADOW { $$ = (char *)"sampler1DArrayShadow"; } | SAMPLER2DARRAYSHADOW { $$ = (char *)"sampler2DArrayShadow"; } + | SAMPLERBUFFER { $$ = (char *)"samplerBuffer"; } | ISAMPLER1D { $$ = (char *)"isampler1D"; } | ISAMPLER2D { $$ = (char *)"isampler2D"; } | ISAMPLER3D { $$ = (char *)"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); } -- 1.7.9.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev