2 ms·
Does servo make any speed gains on machines that dont have dedicated gpus?
by ruleabidinguser 10y ago
Does servo make any speed gains on machines that dont have dedicated gpus?
- NiLSPACE 10y agoEven on an iGPU you should see improvements since by offloading things to that GPU the CPU will have time to do other things.
- Sylos 10y agoNot having a dedicated GPU doesn't mean not having a GPU at all. You still have a GPU, it's just built into the same chip as your CPU and at this point in time, it takes up about half of the surface area. This silicon stays nearly unused in other browser engines (only used for hardware-accelerating video decoding and such). Servo will make use of that and makes use of it in the same way that video games do (which is called "retained mode", as opposed to "immediate mode"), so yes, it should still cause a significant performance improvement. Basically, if you've ever wondered why you can run some games at multiple hundreds of FPS, but your browser doesn't manage 60 FPS when scrolling Wikipedia, this is the difference between retained mode and immediate mode, and therefore should be corrected by Servo. Also, current browser engines don't utilize multi-core processors, which Servo does, so even if you don't have a GPU at all, it should even there provide significant performance gains. Mind the difference here between "browser engine" and "browser". Most browsers by now do utilize multi-core processors, but they only do so to run multiple tabs or the GUI in parallel. The actual browser engine still only stays on one processor. And well, with HTML being structured like a tree, it's actually incredibly well suited for parallelization, as you can process individual subtrees in parallel. (And if you're asking yourself why no modern browser engine does utilize multi-core processors, that's because all of them were architectured in the previous millennium when multi-core CPUs weren't really a thing on desktop PCs. Also, the web was still mostly text, which is why no browser engine properly uses the GPU. So, yes, it's high-time for a browser engine being written from scratch.)
- floatboth 10y ago> only used for hardware-accelerating video decoding and such Not true. GPU layer compositing is implemented in all modern engines. That's how the CSS 3d transforms work. That's why the translateZ(0) hack existed to speed up animations (it created a new GPU layer. Now there's an official property for this, will-change.) WebRender (used in Servo) goes a step further — it's not just compositing, it's actually rendering the colors, gradients, borders, shadows, rounded corners and so on in OpenGL. Look at the shaders: https://github.com/servo/webrender/tree/master/webrender/res https://github.com/servo/webrender/tree/master/webrender/res