Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Is there an article somewhere comparing how Servo and Chromium threaded compositing differ? I guess there is some work on Chromium side to render pages using multiple threads, but I couldn't find more information and how it compares to Servo's mechanism.


The compositing is very different: Servo does almost everything on the GPU in "retained mode" as opposed to "immediate mode," which is much faster and similar to how modern game engines work. There's a good talk here explaining it here: https://air.mozilla.org/bay-area-rust-meetup-february-2016/


Chromium doesn't have multithreaded layout, and restyle/layout/painting runs on the DOM ("main") thread.

Retrofitting multithreaded, off-main-thread restyle/layout/painting onto an existing engine is an enormous undertaking, almost on the level of rewriting from scratch. This is much of the reason why Servo's rendering is from scratch, in fact.


We're planning some more in depth blog posts on how Servo works, and this was already one of the topics I wanted to cover.

The gist is that Servo runs most subsystems on separate threads (including sandboxed and cross origin iframes for example), and so each tab or page is not fighting over the same JS engine's time. On top of that, painting/compositing is combined in WebRender and is parallel as well.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: