A report about profiling openGL pipeline in Krita
Dmitry Kazakov
dimula73 at gmail.com
Sat Jun 7 19:13:58 UTC 2014
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
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.
--
Dmitry Kazakov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kimageshop/attachments/20140607/934e16f8/attachment.html>
More information about the kimageshop
mailing list