“...That was the original idea from day one - the elimination of the tweening process. But it is certainly not the only feature of Synfig that makes it unique. In addition to eliminating the tweening process, I also wanted Synfig to be used for pretty much every part of production except story-boarding and editing.”
Get email notifications about new versions and important updatesSubscribe
Posted by KonstantinDmitriev on December 5, 2015
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!