On Mon, Aug 20, 2012 at 04:33:24PM +1000, Ben Skeggs wrote:
> On Sun, Aug 19, 2012 at 11:02:00PM +0200, Marcin Slusarz wrote:
> > Commit "drm/nouveau: port all engines to new engine module format" changed
> > IB size calculation to be less wasteful, but didn't take into account 
> > already
> > existing off-by-one bugs :).
> > 
> > So:
> > - ib_max is the last entry, so we need to +1 when calculating number of
> >   free entries
> > - nv50_dma_wait already does +1 (for FIRE_RING), so we don't need another +1
> >   on nouveau_gem_ioctl_pushbuf side
> > - there are 512 allocated IB entries (and it needs to be round number), so 
> > we
> >   can accept at most 511 entries from userspace (we need one for FIRE_RING) 
> > -
> >   fortunately userspace already flushes at 511, so nr_push check change 
> > won't
> >   have any impact
> Also skipped this patch for now as I have work in progress that will improve 
> this and
> related code.  I should have it in the tree soon.

Maybe I should have written this in the changelog, but this patch fixes total
mayhem seen in warsow and nexuiz (at least). It's better to integrate it sooner
than later.

Marcin
_______________________________________________
Nouveau mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to