A report about profiling openGL pipeline in Krita
Boudewijn Rempt
boud at valdyas.org
Mon Jun 9 06:57:29 UTC 2014
On Saturday 07 June 2014 Jun 23:13:58 Dmitry Kazakov wrote:
> Hi!
>
> Today I new about the existence of apitrace... :)
>
> Here is a small report with numbers, which I'd like to share with all of
> you:
>
> Preconditions:
>
> 1) I tested on a RGB8 image 6000x6000 pixels in size. To test the updates
> pipeline I filled the image with color (which caused the full update of the
> openGL textures).
> 2) Tested on Intel Haswel integrated GPU.
>
>
> Uploading of textures:
>
> Uploading of the whole image to GPU takes:
> * Texture Buffers enabled: 640 ms
> * Texture Buffers disabled: 413 ms
This depends a lot on the gpu/driver, though. On NVidia, enabling texture buffers improves performance, last time I measured.
>
> During every upload we spend about 30% of time on handling Qt's queued
> signals. The overhead is about 1 ms per patch (default is 512x512 piece),
> which is about 120 ms for a 6k image. This can (and must) be fixed.
> Probably with aggregating these signals somehow.
>
>
> Rendering of the image:
>
> * First update (mipmaps are not yet generated): 160 ms
> * Consequent updates (mipmaps are already in cache): 59 ms
>
> We also have a drain of efficiency in drawDecorations() call
> (kis_opengl_canvas2.cpp:242). It does nothing, but eats about 10ms per
> every update. More than that, this value is constant(!), that is doesn't
> depend on the dirty area size.
>
Well, I must be missing something here -- as far as I know, drawDecorations draws the canvas decorations: brush outline, grids, canvas extension buttons, tool decorations.
--
Boudewijn Rempt
http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl
More information about the kimageshop
mailing list