This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Krita and multicore utilization

Tags: None
(comma "," separated)
milanc
Registered Member
Posts
2
Karma
0

Krita and multicore utilization

Fri Jan 29, 2016 10:54 am
Hello,
I am using Krita 2.9.10 on Linux Mint on a PC with 8core ADM FX8300 CPU and 8GB 1866 RAM. I of course also suffer from brush lag and delay when using large pixel brushes, but the problem is that even though lagging gets really bad the CPU is still underutilized at around 50% load. Can Krita utilize a maximum number of only 4 threads for brush rendering or is it memory bandwidth problem or something totally different causing the brush lag without reaching full CPU load?
Thanks
User avatar
TheraHedwig
KDE Developer
Posts
1794
Karma
10
OS
The problem here is that there are certain limits to multi core programming(or threaded programming as it is often called). The primary problem is that all variables and objects used by a single task need to be available to that single task before it can start, and these should be unavailable to all other tasks while the first task is being performed(this is called locking and without it scary things can happen). Krita's brushes all use the same canvas and rely on up-to date information where the previously drawn dab is drawn. This means that brush dabs can only be drawn one at a time.

See it as a kitchen where there's only one knife but four cooks, this means that out of the four cooks, only one can chop vegetables. There is also only one canvas you draw on in Krita, thus the drawing can be only done by done by a limited number of cores(of which only one is handling the main problem of painting onto the canvas) depending on how much we can subdivide the task. So there is a architectural blockage here and multi-threading is not a panacea to all slow-down ills. (Many adjustment filters, on the other hand, can be easily multi-threaded, and you'll find that color balance or hsv-adjustment uses multiple cores if you use them on a filter layer, each core dealing with a layer underneath the filter layer.)

Try out the 3.0 alpha to see what we're trying instead.
milanc
Registered Member
Posts
2
Karma
0

Re: Krita and multicore utilization

Fri Jan 29, 2016 11:56 am
Thank you for your explanation, I see where the problem is. My CPU is not a very good fit for digital painting then.
Alpha version looks nice, feels more responsive and obviously its performence has increased. Still brush lag kicks in after 200px brush size for bristles hairy brush.
BTW does version 3.0 rely more on vector instructions and/or OpenGL for rendering brushes? Beacuse I have both disabled (because of AMD CPU and very poor integrated GPU - Krita works much faster with OpenGL disabled for me ... )


Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], Google [Bot]