[Mesa-dev] [PATCH] program: Don't reset SamplersValidated when restoring from shader cache

Jordan Justen jordan.l.justen at intel.com
Tue Feb 20 21:47:29 UTC 2018


On 2018-02-20 06:46:24, Andres Gomez wrote:
> Jordan, this looks like a good candidate to nominate for inclusion in
> the 17.3 stable queue.
> 
> What do you think?

I saw this on i965, which does not have shader cache support in 17.3.
I'm not certain it also happens on the other drivers that do support
the shader cache in 17.3, but yeah, it does seem reasonable to add it
to 17.3.

-Jordan

> 
> On Tue, 2017-12-12 at 14:20 -0800, 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 */
> -- 
> Br,
> 
> Andres


More information about the mesa-dev mailing list