On Tue, Oct 16, 2012 at 3:53 PM, Jesse Barnes <jbarnes at virtuousgeek.org> wrote: > Any thoughts? Would collecting the above info in Mesa be pretty easy? > I think we already collect FPS info if certain debug flags are set, and > frame time seems like a pretty trivial calculation based on some > timestamping in a couple of places... How does this work with 2 and more clients rendering to the gpu, each pretty much oblivious to what the others are doing (i.e. your composited desktop case)? And if that works, how does it figure out that the 25 fps video client indeed doesn't want to draw more than that on a 50 fps screen (which is presumably the frame target)? Note that the 25 fps case is very tricky, since a lot of workloads with too little parrallelism between the gpu and cpu and hence lots of idle time on both run fastest if you lock both gpu and cpu to the max. And since 2d flips a lot between hw/sw rendering, your mostly idle desktop is a prime example of this. Also, I totally don't see how that differs from what the hw does, safe that we don't know the exact algo the hw implements: Instead of the hw generating up/down request userspace does the same. And the pin to max is already implemented in sysfs now. The other issue is that userspace individually lacks the global overview. Cheers, Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch