Multithreaded Fill Layers
This MR ports Fill Layers to the Strokes system. This should enable the upcoming SeExpr generator to be multithreaded, thus greatly speeding up render times.
I need help with the following:
-
Slice-and-dice Fill Layer bounds into renderable tiles -
Detecting unthreadable KisGenerator
s and disabling slice-and-dice- It may be possible that a Fill Layer's generator cannot be threaded (SeExpr has this potential, with custom functions).
-
Sync dirty tiles as soon as they are finished -
Fix the Layer docker progress bar - If there is a single
KisSequentialIteratorProgress
pointing to the paint device, all is well. This is not the case.
- If there is a single
This MR is related to my GSoC 2020 project, but is done outside its scope to enable better reviews ;)
Test Plan
Add a Fill Layer and check the render time.
Formalities Checklist
-
I confirmed this builds. -
I confirmed Krita ran and the relevant functions work. -
I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) -
I made sure my commits build individually and have good descriptions as per KDE guidelines. -
I made sure my code conforms to the standards set in the HACKING file. -
I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.
/cc @dkazakov
Edited by Amy spark