Note: This is a resend of v3, originally posted March 25. git://people.freedesktop.org/~jljusten/mesa interface-blocks-v3
v3: * Several clean-ups based on v2 code review * Fix (proposed) piglit test: execution/interface-blocks-same-uniform-varying-name.shader_test (varying interface block having the same name as a uniform interface block.) * Fix (proposed) piglit test: compiler/interface-blocks-invalid-member-qualifiers.shader_test v2: * 3 new patches added to series * Add support for interface block instance arrays * Add support for rejecting unmatched interface blocks during the linking phase. * Known issue: fails new piglit glsl-1.50 test: execution/interface-blocks-same-uniform-varying-name.shader_test v1: * Initial support for GLSL 1.50 interface block support * Known issue: interface block arrays are not working * Known issue: rejection of unmatched interface blocks is not working * Piglit tests for known issues have been sent to piglit list Jordan Justen (17): glsl: rename ast_uniform_block to ast_interface_block glsl parser: rename uniform block to interface block glsl: parse in/out types for interface blocks glsl parser: reject VS+in & FS+out interface blocks glsl parser: on desktop GL require GLSL 150 for instance names glsl parser: handle interface block member qualifier glsl ast_to_hir: reject interpolation qualifiers for uniform blocks glsl parser: allow in & out for interface block members glsl_symbol_table: add interface block namespaces glsl ast_to_hir: move uniform block symbols to interface blocks namespace glsl ast_to_hir: reject row/column_major for in/out interface blocks glsl ast_to_hir: support in/out for interface blocks glsl linker: remove interface block instance names glsl link_varyings: link interface blocks using the block name glsl linker: support arrays of interface block instances glsl linker: compare interface blocks during intrastage linking glsl linker: compare interface blocks during interstage linking src/glsl/Makefile.sources | 2 + src/glsl/ast.h | 4 +- src/glsl/ast_to_hir.cpp | 46 ++++-- src/glsl/glsl_parser.yy | 182 ++++++++++++++++------ src/glsl/glsl_symbol_table.cpp | 84 +++++++++- src/glsl/glsl_symbol_table.h | 4 + src/glsl/interface_blocks.cpp | 129 +++++++++++++++ src/glsl/interface_blocks.h | 36 +++++ src/glsl/ir_optimization.h | 1 + src/glsl/link_varyings.cpp | 33 +++- src/glsl/linker.cpp | 19 +++ src/glsl/lower_named_interface_blocks.cpp | 241 +++++++++++++++++++++++++++++ 12 files changed, 711 insertions(+), 70 deletions(-) create mode 100644 src/glsl/interface_blocks.cpp create mode 100644 src/glsl/interface_blocks.h create mode 100644 src/glsl/lower_named_interface_blocks.cpp -- 1.7.10.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev