[Scummvm-devel] Wintermute profiling

Tobia Tesan tobia.tesan at gmail.com
Sun Aug 25 10:18:45 CEST 2013

Hi wjp, and wow!

Il 24/08/2013 17:57, Willem Jan Palenstijn ha scritto:
> By far the most expensive bits in these two screens turn out to be the loops
> over the _renderQueue in drawSurface and the functions it calls.

Yes, more or less the same I found myself, but I find blit() to be 
(well, obviously) very costly also.

> One thing I only explicitly realized due to this profiling is that calling
> _renderQueue.size() (_renderQueue is a Common::List) is very expensive as it
> doesn't maintain the current size of the list and iterates through it entirely.

Interesting. This could be fixed quite easily, perhaps.
Although, when I profiled with MSVC it did not look particularly hot (I 
remember somearray.size() being slightly bigger than expected, but that 
could simply be because of the sheer amount of calls).
Could this perhaps be a matter of optimizations?

> It would be interesting to see what other problematic screens there are in
> Wintermute games, and how this interacts with t0by's dirty rect improvements.
> All these things combined should lead to very nice results I think.

Let me get done with UITIledImage - which is the only thing that, I've 
found, hinders the effectiveness of said rect changes -, reprofile the 
whole deal and optimized when needed (I may have  been misled by said 
UITIledImage when working on the rect system) and then we can start 
having fun.

Tobia Tesan
<tobia.tesan at gmail.com>
+39 393 4427709
"At age 48 I wrote the first novel of my life, and then I
  had the problem of understanding whether it was an exception,
  a mere accident or the beginning of something new. Suppose a
  vicious dog chases you, and to escape you jump over a river.
  Once you've done this, you wonder if it was chance or could
  you do it a second time?" -- Umberto Eco

More information about the Scummvm-devel mailing list