glsl: Simplify the built-in function linking code.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 23 Nov 2013 20:11:34 +0000 (12:11 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Sun, 1 Dec 2013 23:33:04 +0000 (15:33 -0800)
commit5b331f6fcbf226f18e0c517ffdce30a39bb92982
tree213e292ef49855ba3165f281d2ccc40c56f82126
parent1b557b1606ffcf05d2612d66226306e876b6b937
glsl: Simplify the built-in function linking code.

Previously, we stored an array of up to 16 additional shaders to link,
as well as a count of how many each shader actually needed.

Since the built-in functions rewrite, all the built-ins are stored in a
single shader.  So all we need is a boolean indicating whether a shader
needs to link against built-ins or not.

During linking, we can avoid creating the temporary array if none of the
shaders being linked need built-ins.  Otherwise, it's simply a copy of
the array that has one additional element.  This is much simpler.

This patch saves approximately 128 bytes of memory per gl_shader object.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/ast_function.cpp
src/glsl/builtin_functions.cpp
src/glsl/glsl_parser_extras.cpp
src/glsl/glsl_parser_extras.h
src/glsl/linker.cpp
src/mesa/main/ff_fragment_shader.cpp
src/mesa/main/mtypes.h