[Mesa-dev] [PATCH 2/2] st/mesa: fix assertion failures with GL_UNSIGNED_INT64_ARB (v2)

Juan A. Suarez Romero jasuarez at igalia.com
Wed May 30 08:16:55 UTC 2018


On Mon, 2018-05-28 at 21:15 -0400, Ilia Mirkin wrote:
> Series is Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
> 
> Thanks for tracking down why this wasn't working cleanly in the first
> place. This should make the NV int64 attrib extension much simpler.
> 
> On Mon, May 28, 2018 at 9:10 PM, Marek Olšák <maraeo at gmail.com> wrote:
> > From: Marek Olšák <marek.olsak at amd.com>
> > 
> > Bindless texture handles can be passed via vertex attribs using this type.
> > They use the double codepath, so don't use st_pipe_vertex_format.
> > 
> > Cc: 18.0 18.1 <mesa-stable at lists.freedesktop.org>

Hello.


Unfortunately, I can't apply this patch in 18.0 branch, as it seems to depends
on 19a91841c3 ("st/mesa: Use Array._DrawVAO in st_atom_array.c.").

If you require this in 18.0, please, submit a backport as soon as possible, as I
expect to propose the release this week.

	J.A.


> > ---
> >  src/mesa/state_tracker/st_atom_array.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/mesa/state_tracker/st_atom_array.c b/src/mesa/state_tracker/st_atom_array.c
> > index 9a0935e21a5..e4fc19eb5e2 100644
> > --- a/src/mesa/state_tracker/st_atom_array.c
> > +++ b/src/mesa/state_tracker/st_atom_array.c
> > @@ -317,21 +317,20 @@ static void init_velement(struct pipe_vertex_element *velement,
> >     velement->vertex_buffer_index = vbo_index;
> >     assert(velement->src_format);
> >  }
> > 
> >  static void init_velement_lowered(const struct st_vertex_program *vp,
> >                                    struct pipe_vertex_element *velements,
> >                                    const struct gl_array_attributes *attrib,
> >                                    int src_offset, int instance_divisor,
> >                                    int vbo_index, int idx)
> >  {
> > -   const unsigned format = st_pipe_vertex_format(attrib);
> >     const GLubyte nr_components = attrib->Size;
> > 
> >     if (attrib->Doubles) {
> >        int lower_format;
> > 
> >        if (nr_components < 2)
> >           lower_format = PIPE_FORMAT_R32G32_UINT;
> >        else
> >           lower_format = PIPE_FORMAT_R32G32B32A32_UINT;
> > 
> > @@ -351,20 +350,22 @@ static void init_velement_lowered(const struct st_vertex_program *vp,
> >                          lower_format, instance_divisor, vbo_index);
> >           } else {
> >              /* The values here are undefined. Fill in some conservative
> >               * dummy values.
> >               */
> >              init_velement(&velements[idx], src_offset, PIPE_FORMAT_R32G32_UINT,
> >                            instance_divisor, vbo_index);
> >           }
> >        }
> >     } else {
> > +      const unsigned format = st_pipe_vertex_format(attrib);
> > +
> >        init_velement(&velements[idx], src_offset,
> >                      format, instance_divisor, vbo_index);
> >     }
> >  }
> > 
> >  static void
> >  set_vertex_attribs(struct st_context *st,
> >                     struct pipe_vertex_buffer *vbuffers,
> >                     unsigned num_vbuffers,
> >                     struct pipe_vertex_element *velements,
> > --
> > 2.17.0
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list