Multithreaded tools

Registered by janisozaur

It would be best to have tools run concurrently - preferably using QtConcurrent (http://doc.qt.nokia.com/4.6/threads-qtconcurrent.html) as it provides high level parallelization of work.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Low
Drafter:
janisozaur
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Concurrency would increase the performance of our project. Paint Tool SAI, from what I've observed, uses multi-threading to improve throughput of large brushes - most seen in brush sized 500, usage on my both cores ramps up to the maximum. Most tools should be susceptible to this treatment.
Usage of QtConcurrent would provide care-free implementation base.
We must test the overhead, though. For small brush sizes it might prove too expensive to launch this module.
One day perhaps a CUDA could be employed to fulfill this task.
Recent GSoC updates to krita introduced "multi-threaded canvas updating"; see http://krita.org/component/content/article/10-news/57-last-week-in-krita-week-32-and-a-bit-of-33. Since our code is somewhat simillar to theirs, we could peep how it is done.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.