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

Juan A. Suarez Romero jasuarez at igalia.com
Thu Mar 8 11:54:32 UTC 2018


On Tue, 2018-02-20 at 13:47 -0800, Jordan Justen wrote:
> 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.
> 

Thanks.

Including it in 17.3 next release.


	J.A.

> -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
> 
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-stable


More information about the mesa-stable mailing list