[Mesa-dev] [PATCH 0/9] glsl: Start implementing ARB_arrays_of_arrays

Timothy Arceri t_arceri at yahoo.com.au
Wed Jan 15 22:27:21 PST 2014

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(-)


More information about the mesa-dev mailing list