[Nouveau] "enable ctxprog xfer only when we need it to save power" introduces big performance regression

Marcin Slusarz marcin.slusarz at gmail.com
Wed Nov 9 14:10:09 PST 2011


On Sat, Oct 29, 2011 at 09:09:38PM +0200, Marcin Slusarz wrote:
> On Sat, Oct 29, 2011 at 07:29:23PM +0200, Marcin Slusarz wrote:
> > On Sat, Oct 29, 2011 at 07:08:01PM +0200, Marcin Slusarz wrote:
> > > Hi
> > > 
> > > I've bisected pretty big performance regression (nv92):
> > > 
> > > $ git bisect good
> > > b2737681d5442f05ab6419e05468c3d2511a5ced is the first bad commit
> > > commit b2737681d5442f05ab6419e05468c3d2511a5ced
> > > Author: Martin Peres <martin.peres at ensi-bourges.fr>
> > > Date:   Sat Jul 30 23:08:45 2011 +0200
> > > 
> > >     drm/nv50/gr: enable ctxprog xfer only when we need it to save power
> > 
> > Weird, reverting it on top of current git does not restore it - in
> > glxgears it's even worse (-~50%).
> 
> It seems "drm/nv50/gr: refactor initialisation" relies on the above.
> 
> So, reverting these commits:
> 
> drm/nv50/gr: typo fix, how about we not reset fifo during graph init?
> drm/nv50/gr: refactor initialisation
> drm/nv50/gr: enable ctxprog xfer only when we need it to save power
> 
> on top of current git restores performance to the previous state.
> 
> (First commit fixes bug in 2nd, so it needs to be reverted first)

For anyone who don't read IRC logs - it turns out it regressed only on my
box, because I have page flipping disabled (due to page flipping being very
buggy here, see https://bugs.freedesktop.org/show_bug.cgi?id=42398), which
forces gpu context switch on every frame - even with (OpenGL) full screen apps.
And this patch slows down context switches.

So, can we disable xfers in ctxprog only when page flipping is enabled?
Or is there any other option?

Marcin


More information about the Nouveau mailing list