vc4: Make sure we allocate idle BOs from the cache.
authorEric Anholt <eric@anholt.net>
Sat, 30 May 2015 01:06:32 +0000 (18:06 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 30 May 2015 01:15:00 +0000 (18:15 -0700)
commit21a22a61c02a1d1807ff03df8eb8fa16ebdd1b74
tree861543ba1ed72db41976e513ab8cf353ea1d61d9
parentc821ccf0e3a051e5e867792898ae9b8f08e4601a
vc4: Make sure we allocate idle BOs from the cache.

We were returning the most recently freed BO, without checking if it
was idle yet.  This meant that we generally stalled immediately on the
previous frame when generating a new one.  Instead, allocate new BOs
when the *oldest* BO is still busy, so that the cache scales with how
much is needed to keep some frames outstanding, as originally
intended.

Note that if you don't have some throttling happening, this means that
you can accidentally run the system out of memory.  The kernel is now
applying some throttling on all execs, to hopefully avoid this.
src/gallium/drivers/vc4/vc4_bufmgr.c