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

Dylan Baker dylan at pnwbakers.com
Wed May 30 16:01:33 UTC 2018


Quoting Marek Olšák (2018-05-28 18:10:42)
> 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>
> ---
>  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

Hi Marek,

The first patch in this series is in my 18.1 branch, but this patch doesn't
apply cleanly. I'm not sure that it's actually needed since
19a91841c347107d877bc750371c5fa4e9b4de19 isn't in the 18.1 tree, and a quick
glance shows that this patch is changing code from that commit. Let me know what
you want to do.

Thanks,
Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180530/d7506041/attachment.sig>


More information about the mesa-dev mailing list