From: Jason Ekstrand Date: Tue, 21 Jul 2020 16:55:27 +0000 (-0500) Subject: nir/gl_nir_linker: Call add_vars_with_modes once for GL_PROGRAM_INPUT X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fc1363cc6039110f9dcd6a5c7cf8b8453042823b;p=mesa.git nir/gl_nir_linker: Call add_vars_with_modes once for GL_PROGRAM_INPUT Now that nir_foreach_variable_with_modes can handle multiple modes at one time, we can simplify things a bit and only walk the list once. Reviewed-by: Iago Toral Quiroga Reviewed-by: Timothy Arceri Part-of: --- diff --git a/src/compiler/glsl/gl_nir_linker.c b/src/compiler/glsl/gl_nir_linker.c index 68ecc7e5851..aa8f0f3083b 100644 --- a/src/compiler/glsl/gl_nir_linker.c +++ b/src/compiler/glsl/gl_nir_linker.c @@ -311,12 +311,12 @@ add_shader_variable(const struct gl_context *ctx, } static bool -add_vars_with_mode(const struct gl_context *ctx, - struct gl_shader_program *prog, struct set *resource_set, - nir_shader *nir, nir_variable_mode mode, - unsigned stage, GLenum programInterface) +add_vars_with_modes(const struct gl_context *ctx, + struct gl_shader_program *prog, struct set *resource_set, + nir_shader *nir, nir_variable_mode modes, + unsigned stage, GLenum programInterface) { - nir_foreach_variable_with_modes(var, nir, mode) { + nir_foreach_variable_with_modes(var, nir, modes) { if (var->data.how_declared == nir_var_hidden) continue; @@ -405,18 +405,14 @@ add_interface_variables(const struct gl_context *ctx, switch (programInterface) { case GL_PROGRAM_INPUT: { - bool result = add_vars_with_mode(ctx, prog, resource_set, - nir, nir_var_shader_in, - stage, programInterface); - result &= add_vars_with_mode(ctx, prog, resource_set, - nir, nir_var_system_value, - stage, programInterface); - return result; + return add_vars_with_modes(ctx, prog, resource_set, + nir, nir_var_shader_in | nir_var_system_value, + stage, programInterface); } case GL_PROGRAM_OUTPUT: - return add_vars_with_mode(ctx, prog, resource_set, - nir, nir_var_shader_out, - stage, programInterface); + return add_vars_with_modes(ctx, prog, resource_set, + nir, nir_var_shader_out, + stage, programInterface); default: assert("!Should not get here"); break;