From: Timothy Arceri Date: Thu, 11 May 2017 04:59:41 +0000 (+1000) Subject: mesa: move use_program() inside _mesa_use_program() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=35a9b9a70c90436105d702e0da0b8e99a27c4b8b;p=mesa.git mesa: move use_program() inside _mesa_use_program() Reviewed-by: Nicolai Hähnle --- diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 7430cfeeb8d..f63215a07be 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -1242,33 +1242,6 @@ _mesa_active_program(struct gl_context *ctx, struct gl_shader_program *shProg, } -static void -use_program(struct gl_context *ctx, gl_shader_stage stage, - struct gl_shader_program *shProg, struct gl_program *new_prog, - struct gl_pipeline_object *shTarget) -{ - struct gl_program **target; - - target = &shTarget->CurrentProgram[stage]; - if (new_prog) { - _mesa_program_init_subroutine_defaults(ctx, new_prog); - } - - if (*target != new_prog) { - /* Program is current, flush it */ - if (shTarget == ctx->_Shader) { - FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS); - } - - _mesa_reference_shader_program(ctx, - &shTarget->ReferencedPrograms[stage], - shProg); - _mesa_reference_program(ctx, target, new_prog); - return; - } -} - - /** * Use the named shader program for subsequent rendering. */ @@ -1280,7 +1253,7 @@ _mesa_use_shader_program(struct gl_context *ctx, struct gl_program *new_prog = NULL; if (shProg && shProg->_LinkedShaders[i]) new_prog = shProg->_LinkedShaders[i]->Program; - use_program(ctx, i, shProg, new_prog, &ctx->Shader); + _mesa_use_program(ctx, i, shProg, new_prog, &ctx->Shader); } _mesa_active_program(ctx, shProg, "glUseProgram"); } @@ -2164,7 +2137,26 @@ _mesa_use_program(struct gl_context *ctx, gl_shader_stage stage, struct gl_shader_program *shProg, struct gl_program *prog, struct gl_pipeline_object *shTarget) { - use_program(ctx, stage, shProg, prog, shTarget); + struct gl_program **target; + + target = &shTarget->CurrentProgram[stage]; + if (prog) { + _mesa_program_init_subroutine_defaults(ctx, prog); + } + + if (*target != prog) { + /* Program is current, flush it */ + if (shTarget == ctx->_Shader) { + FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS); + } + + _mesa_reference_shader_program(ctx, + &shTarget->ReferencedPrograms[stage], + shProg); + _mesa_reference_program(ctx, target, prog); + return; + } + }