On Fri, Apr 14, 2017 at 6:47 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Fri, Apr 14, 2017 at 12:42 PM, Marek Olšák <mar...@gmail.com> wrote: >> On Fri, Apr 14, 2017 at 5:45 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >>> On Fri, Apr 14, 2017 at 11:07 AM, Marek Olšák <mar...@gmail.com> wrote: >>>> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_vbo.c >>>> b/src/gallium/drivers/nouveau/nv30/nv30_vbo.c >>>> index bc9b9a1..295c394 100644 >>>> --- a/src/gallium/drivers/nouveau/nv30/nv30_vbo.c >>>> +++ b/src/gallium/drivers/nouveau/nv30/nv30_vbo.c >>>> @@ -543,20 +543,23 @@ nv30_draw_elements(struct nv30_context *nv30, bool >>>> shorten, >>>> } >>>> } >>>> >>>> static void >>>> nv30_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info >>>> *info) >>>> { >>>> struct nv30_context *nv30 = nv30_context(pipe); >>>> struct nouveau_pushbuf *push = nv30->base.pushbuf; >>>> int i; >>>> >>>> + if (!u_trim_pipe_prim(info->mode, (unsigned*)&info->count)) >>>> + return; >>>> + >>> >>> Should this also have a !info->primitive_restart? It's supported on >>> nv4x (covered by this driver). >> >> In that case, I wonder if u_trim_pipe_prim is required with this >> driver. It might be better to just remove that call. > > Based on a quick look, this seems to exist to prevent short draws and > trim the count to the nearest prim size, i.e. if you try to draw a tri > with %3 != 0 vertices, or a line with %2 != 0? I'm not 100% sure that > the NV30 HW handles those correctly, but it probably does. I can > double-check tonight, as I have one plugged in these days.
I'll just add this. Is it OK? diff --git a/src/gallium/drivers/nouveau/nv30/nv30_vbo.c b/src/gallium/drivers/nouveau/nv30/nv30_vbo.c index 295c394..316f868 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_vbo.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_vbo.c @@ -550,7 +550,8 @@ nv30_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info) struct nouveau_pushbuf *push = nv30->base.pushbuf; int i; - if (!u_trim_pipe_prim(info->mode, (unsigned*)&info->count)) + if (!info->primitive_restart && + !u_trim_pipe_prim(info->mode, (unsigned*)&info->count)) return; /* For picking only a few vertices from a large user buffer, push is better, Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev