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

Dylan Baker baker.dylan.c at gmail.com
Mon Jul 6 16:50:06 PDT 2015


On Mon, Jul 06, 2015 at 11:34:23PM +0200, Samuel Pitoiset 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) {

Should the else and if be on the same line?

> +         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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150706/f8837537/attachment.sig>


More information about the mesa-dev mailing list