[Mesa-dev] [PATCH] mesa: save/restore SSO flag when using ARB_get_program_binary

Jordan Justen jordan.l.justen at intel.com
Thu Jul 11 21:03:32 UTC 2019


Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

On 2019-07-10 17:39:24, Timothy Arceri wrote:
> Ping! The spec bug was updated and they have agreed to update the spec 
> to define this behavior.
> 
> I've also sent a piglit test for this:
> 
> https://patchwork.freedesktop.org/patch/317112/
> 
> On 1/7/19 12:25 pm, Timothy Arceri wrote:
> > Without this the restored program will fail the pipeline validation
> > checks when we attempt to use an SSO program.
> > 
> > Fixes: c20fd744fef1 ("mesa: Add Mesa ARB_get_program_binary helper functions")
> > 
> > Cc: Jordan Justen <jordan.l.justen at intel.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111010
> > ---
> >   src/mesa/main/program_binary.c | 4 ++++
> >   1 file changed, 4 insertions(+)
> > 
> > diff --git a/src/mesa/main/program_binary.c b/src/mesa/main/program_binary.c
> > index 7390fef5887..39537cfccce 100644
> > --- a/src/mesa/main/program_binary.c
> > +++ b/src/mesa/main/program_binary.c
> > @@ -178,6 +178,8 @@ write_program_payload(struct gl_context *ctx, struct blob *blob,
> >                                                         shader->Program);
> >      }
> >   
> > +   blob_write_uint32(blob, sh_prog->SeparateShader);
> > +
> >      serialize_glsl_program(blob, ctx, sh_prog);
> >   
> >      for (unsigned stage = 0; stage < MESA_SHADER_STAGES; stage++) {
> > @@ -195,6 +197,8 @@ static bool
> >   read_program_payload(struct gl_context *ctx, struct blob_reader *blob,
> >                        GLenum binary_format, struct gl_shader_program *sh_prog)
> >   {
> > +   sh_prog->SeparateShader = blob_read_uint32(blob);
> > +
> >      if (!deserialize_glsl_program(blob, ctx, sh_prog))
> >         return false;
> >   
> > 


More information about the mesa-dev mailing list