This is a first pass at implementing the ARB_arrays_of_arrays extension in Mesa. This series allows the Mesa front-end to parse and compile shaders that dont require linking of arrays of arrays e.g. multi dimensional uniforms. I'm sending this extension in parts because my time working on this is about to decrease and I'm not sure how long it will be before I finish the second half. If this is not a good idea please let me know.
Patches 3-4 need to be squashed when commited but I've split them here to make reviewing easier. Patch 5 is optional Whats missing is linking and backend support that goes with it. This includes the linking checks the spec talks about for geometry shaders. Also its possible that some small changes are also needed to support multi dimensional unsized geom shader arrays I havent yet written the piglit tests for this. No piglit regressions with these patches applied. Timothy Arceri (9): Mesa: Add ARB_arrays_of_arrays glsl: add dimension_count to glsl_types glsl: Add arrays_of_arrays to yacc definition glsl: Add array specifier to ast code glsl: only call mark_max_array if we are assigning an array glsl: Implement ARB_arrays_of_arrays support for constructors glsl: Aggregate initializer support for arrays of array glsl: Allow arrays of arrays as input to vertex shader docs: Mark ARB_arrays_of_arrays as started docs/GL3.txt | 2 +- src/glsl/ast.h | 64 +++++++++---- src/glsl/ast_array_index.cpp | 13 +++ src/glsl/ast_function.cpp | 69 ++++++++++++-- src/glsl/ast_to_hir.cpp | 204 +++++++++++++++++++++++++++++----------- src/glsl/ast_type.cpp | 8 +- src/glsl/glsl_parser.yy | 183 ++++++++++++++++++----------------- src/glsl/glsl_parser_extras.cpp | 97 ++++++++++++------- src/glsl/glsl_parser_extras.h | 2 + src/glsl/glsl_types.cpp | 15 ++- src/glsl/glsl_types.h | 17 +++- src/mesa/main/extensions.c | 1 + src/mesa/main/mtypes.h | 1 + 13 files changed, 464 insertions(+), 212 deletions(-) -- 1.8.3.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev