[Mesa-dev] [PATCH] program: Don't reset SamplersValidated when restoring from shader cache
Timothy Arceri
tarceri at itsqueeze.com
Wed Dec 13 05:34:03 UTC 2017
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
On 13/12/17 09:20, Jordan Justen wrote:
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103988
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.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 5f663b3d09f..051ed2225b7 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 */
>
More information about the mesa-dev
mailing list