[Mesa-dev] [PATCH] nv50: fix a SIGSEGV with piglit bin/gl-3.1-vao-broken-attrib

Ilia Mirkin imirkin at alum.mit.edu
Mon Jul 6 14:47:30 PDT 2015


Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

But please change the commit title to mention the actual effect, like
"avoid segfault with enabled but unbound vertex attrib" or something.
The piglit fix should be mentioned in the body of the message -- it's
a nice side-effect, but not really title-worthy.

Also:

Cc: mesa-stable at lists.freedesktop.org

in the commit so that it gets cherry-picked into stable releases.

On Mon, Jul 6, 2015 at 5:34 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> Before validating vertex arrays we need to check if a VBO is present.
> Checking if vb->buffer is not NULL fixes the issue.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  src/gallium/drivers/nouveau/nv50/nv50_vbo.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_vbo.c b/src/gallium/drivers/nouveau/nv50/nv50_vbo.c
> index 1fd33b8..3d200bd 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_vbo.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_vbo.c
> @@ -382,6 +382,11 @@ nv50_vertex_arrays_validate(struct nv50_context *nv50)
>        if (nv50->vbo_user & (1 << b)) {
>           address = addrs[b] + ve->pipe.src_offset;
>           limit = addrs[b] + limits[b];
> +      } else
> +      if (!vb->buffer) {
> +         BEGIN_NV04(push, NV50_3D(VERTEX_ARRAY_FETCH(i)), 1);
> +         PUSH_DATA (push, 0);
> +         continue;
>        } else {
>           struct nv04_resource *buf = nv04_resource(vb->buffer);
>           if (!(refd & (1 << b))) {
> --
> 2.4.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list