glsl: support compilation of geometry shaders
authorBryan Cain <bryancain3@gmail.com>
Fri, 15 Feb 2013 15:46:50 +0000 (09:46 -0600)
committerPaul Berry <stereotype441@gmail.com>
Fri, 2 Aug 2013 03:20:45 +0000 (20:20 -0700)
commit2548092ad80156a407281a124f833a6a93fbf2f3
treee839a3d1c14eb45dbfe1362f5a8f4ce9afeb0c74
parent844bd71736dd59808e1ea4319800db042a7c4267
glsl: support compilation of geometry shaders

This commit adds all of the parsing and semantics for GLSL 150 style
geometry shaders.

v2 (Paul Berry <stereotype441@gmail.com>): Add a few missing calls to
get_pipeline_stage().  Fix some signed/unsigned comparison warnings.
Fix handling of NULL consumer in assign_varying_locations().

v3 (Bryan Cain <bryancain3@gmail.com>): fix indexing order of 2D
arrays.  Also, allow interpolation qualifiers in geometry shaders.

v4 (Paul Berry <stereotype441@gmail.com>): Eliminate
get_pipeline_stage()--it is no longer needed thanks to 030ca23 (mesa:
renumber shader indices according to their placement in pipeline).
Remove 2D stuff.  Move vertices_per_prim() to ir.h, so that it will be
accessible from outside the linker.  Remove
inject_num_vertices_visitor.  Rework for GLSL 1.50.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
v5 (Paul Berry <stereotype441@gmail.com>): Split out
do_set_program_inouts() argument refactoring to a separate patch.
Move geom_array_resizing_visitor to later in the series.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/ast_to_hir.cpp
src/glsl/ir.cpp
src/glsl/ir.h
src/glsl/linker.cpp
src/mesa/main/mtypes.h