Module: Mesa Branch: master Commit: dc07bb5fd188a4352ec90edb6c6107ae1ce11b50 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc07bb5fd188a4352ec90edb6c6107ae1ce11b50
Author: Jordan Justen <jordan.l.jus...@intel.com> Date: Tue Dec 12 11:44:01 2017 -0800 program: Don't reset SamplersValidated when restoring from shader cache Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103988 Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> --- src/mesa/program/ir_to_mesa.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 5f663b3d09..29198509a6 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -3115,15 +3115,17 @@ _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog) link_shaders(ctx, prog); } - if (prog->data->LinkStatus) { - /* Reset sampler validated to true, validation happens via the - * LinkShader call below. - */ + /* If LinkStatus is linking_success, then reset sampler validated to true. + * Validation happens via the LinkShader call below. If LinkStatus is + * linking_skipped, then SamplersValidated will have been restored from the + * shader cache. + */ + if (prog->data->LinkStatus == linking_success) { prog->SamplersValidated = GL_TRUE; + } - if (!ctx->Driver.LinkShader(ctx, prog)) { - prog->data->LinkStatus = linking_failure; - } + if (prog->data->LinkStatus && !ctx->Driver.LinkShader(ctx, prog)) { + prog->data->LinkStatus = linking_failure; } /* Return early if we are loading the shader from on-disk cache */ _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit