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
