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>
This commit is contained in:
@@ -609,8 +609,7 @@ builtin_builder::find(_mesa_glsl_parse_state *state,
|
||||
* that the "no matching signature" error will list potential candidates
|
||||
* from the available built-ins.
|
||||
*/
|
||||
state->builtins_to_link[0] = shader;
|
||||
state->num_builtins_to_link = 1;
|
||||
state->uses_builtin_functions = true;
|
||||
|
||||
ir_function *f = shader->symbols->get_function(name);
|
||||
if (f == NULL)
|
||||
|
||||
Reference in New Issue
Block a user