[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