On Tue, Dec 10, 2013 at 12:59 PM, Lauri Kasanen cand@gmx.com wrote:
On Mon, 9 Dec 2013 23:45:12 +0100 Marek Olšák maraeo@gmail.com wrote:
Note that the hotness calculation will be in userspace, as only there are the necessary counters available. So the finished hotness score will be passed to the kernel, instead of sending all the necessary data there. Ought to be less context switches that way.
This sounds good, but you will also need to update the DDX for everything up to and including Cayman. Hopefully the DDX doesn't emit IBs outside of glamor on Southern Islands and later chips.
Do you mean to pass an empty score (0) for 2d buffers, or that 2d buffers should also get the calculation? I suppose this depends on which ioctl is used to pass it.
IMHO for 2d use the current behavior is ok, so passing a dummy value and falling back should be enough.
It should be robust enough to handle 3D and 2D at the same time. Note that the DDX is responsible for putting OpenGL framebuffers on the screen, so even though it's not an OpenGL operation, it affects OpenGL performance.
Marek