You might remember that back in August we released details of a program ARM had been working on in conjunction with Szeged University and Samsung Research UK.
TyGL is a new backend for WebKit which demonstrates a huge acceleration in mobile web rendering. While it was developed and tested on an ARM Mali-T628 GPU based Chromebook, it will work on any GPU conforming to OpenGL ES 2.0 and higher and has been shown to achieve a performance uplift of up to eleven times. Full details about the process through which TyGL manages this huge boost are available in one of our previous blogs, TyGL: Hardware Accelerated Web Rendering.
Clever batching of draw calls delivers better results on GPUs (see previous blogs on batching for more information). While the Graphics Context API can result in frequent state changes if implemented in the wrong way, TyGL is designed to catch this problem and group commands together to reduce draw calls – and in this way improve performance.
TyGL enables efficient batching by generating complex shaders from multiple shader fragments – and ensures the batches fit into the shader cache of the GPU.
This section of the engine is under continuous improvement and is planning to take advantage of new GPU capabilities such as the Pixel Local Storage extension for OpenGL ES in order to get that extra bit of performance.
This is a complete GPU-based hardware accelerated solution with no dependency on legacy software and no need to sacrifice optimizations for compatibility.
This month we were delighted to open source the TyGL port and it is now available for the world to see on GitHub and we will truly value community involvement in implementing additional features and improving the code. Take a look, let us know what you think and feel free to contact us if you want more information about the project!
TyGL: Hardware Accelerated Web Rendering
TyGL on GitHub
Blog by our partners, Szeged University
How to build TyGL
A little more than two hours ago, I started cloning the repository, and cloning still isn't finished.
After 3 hours I found out that it is 7.6GB!! -And it contains (Mac-specific) libraries and gz-compressed files (as binary files).
I highly recommend the developers to squash old commits: squashing commits with rebase.
-Also, I recommend removing the libraries if they can be built from the sources.