So, yesterday we have published an updated packages with improved rendering engine. It’s time to take a look what’s really inside of those builds and summarize the results of the work done in November.
So, let’s get to the benchmarks. We have created a special repository for test files. You can browse it here.
There are three tests here that are in the scope of our special interests. Those are: “10_rapper”, “12_rapper_x8” and “14_images”.
You probably already with the first one. It’s a pure-vector artwork of Rapper character from Morevna Demo. Only Regions, Fills and Groups.
Next one (“12_rapper_x8”) is the same as previous, but repeated 8 times and with applied transparency for each piece.
And with the last one (“14_images”) you are also already familiar with – this is a cutout sample, constructed from bitmap images.
And below you can see the results of our tests. All tests are done on Intel® Core™ i7-2620M CPU @ 2.70GHz. Values are in milliseconds (less is better).
So, how this speedup was achieved? By this moment our hired developer Ivan Mahonin have finished the first implementation of multithreaded renderer. That’s right – now our Cobra rendering engine utilizes multiple CPU threads.
As I mentioned, this is just a first implementation – we still have a room for improvement. The rendering process have two stages – first, it parses the layer tree and converting it to a set of tasks, which could be passed to renderer. At this point only single thread is used. Then comes the second stage, which executes tasks – this is where actual rendering takes place and it uses multiple threads. And, according to our measurements, the first stage currently takes 2/3 of the whole rendering time. We believe this part could be improved in the future. But we will postpone this task for the future.
Our next planned step is to try implementing some bitmap effect (we chose Blur) and see what advantage we will be able to achieve.
Meanwhile, I invite you to download the latest development packages and test the results by yourself. As usual, we appreciate your contributions to our croudfunding campaign to help us keep development of new rendering engine. Thank you!