This is a bit of an RFC, but looks like a good optimisation for throughput and CPU usage in llvmpipe.
It makes the llvmpipe scene pipeline actually function like I assume the original design intended. I used a slab allocator as I'd some plans to possibly reduce the number of allocated scenes in the future if a number of them remain unused, or perhaps just use them in a queue and once they are finished maybe they could be discarded instead of reused. Anyways the slab allocator bit is probably not that important.
With heaven this definitely has reduced frametimes (but it's still at 1fps) but I've checked and gnome-shell even uses up to 3 scenes in some cases so it's likely not a bad thing to have even there.