[webkit-dev] Announcing the TyGL-WebKit port to accelerate 2D web rendering with GPU

Zoltan Herczeg zherczeg at webkit.org
Tue Nov 18 02:10:32 PST 2014


Hi,

Since EFL supports cairo, we compared EFL-TyGL and EFL-Cairo

* Canvas-performance: 1.7 times faster with TyGL (21 tests run correctly
from 23 tests)

Site:
http://flashcanvas.net/examples/dl.dropbox.com/u/1865210/mindcat/canvas_perf.html

* Asteroids-benchmark: 3.4 times faster with TyGL (4 tests run correctly
from 6 tests)

Site: http://www.kevs3d.co.uk/dev/asteroidsbench/

Regards,
Zoltan

> How does TyGL perform compared to the other rasterizers?
>
> What benchmarks do you use to guide the performance work?
>
> On 11/12/14, 11:12 PM, Zoltan Herczeg wrote:
>> Hi All,
>>
>> We are proud to announce the TyGL port (link:
>> http://github.com/szeged/TyGL) on the top of EFL-WebKit. TyGL
>> (pronounced
>> as tigel) is part of WebKit and provides 2D-accelerated GPU rendering on
>> embedded systems. The engine is purely GPU based. It has been developed
>> on
>> and tested against ARM-Mali GPU, but it is designed to work on any GPU
>> conforming to OpenGL ES 2.0 or higher.
>>
>> The GPU involvement on future graphics is inevitable considering the
>> pixel
>> growth rate of displays, but harnessing the GPU power requires a
>> different
>> approach than CPU-based optimizations. 2D graphics is traditionally
>> software-based however, and 2D APIs are interfaces to these CPU-based
>> algorithms. WebKit GraphicsContext API is no different, so the key
>> challenge of our project was and is producing the expected output in a
>> GPU
>> friendly way.
>>
>> Key features:
>>
>> Batching pipeline:
>>
>> GPU provides the highest performance when a large number of triangles
>> are
>> drawn with a single draw command without any OpenGL state changes. The
>> GraphicsContext API in WebKit provides draw operations for single shapes
>> however, which can result frequent state changes if implemented naively.
>> TyGL was designed to group these commands to reduce the number of draw
>> calls.
>>
>> Automatic shader generator:
>>
>> TyGL can generate complex shaders from multiple shader fragments, which
>> allows efficient batching but it also takes care to make them fit into
>> the
>> shader cache of the GPU.
>>
>> Trapezoid based path rendering:
>>
>> TyGL uses trapezoid-based tesselation of shapes and the GPU renders them
>> with high anti-aliasing quality. We are continuously improving this part
>> of the engine and look forward to make use of new GPU capabilities (like
>> Pixel Local Storage) to squeeze more performance out of it.
>>
>> No software fallback:
>>
>> The whole engine is optimized for GPU without legacy software fallback.
>> Hence we don't need to sacrifice optimizations for compatibility. There
>> are enough software based 2D libraries which can be used when GPU is not
>> available.
>>
>> TyGL is already capable of rendering many web-sites correctly, but some
>> features have not been implemented yet. We continue this work and we are
>> open to contributions from the community. Contact to us if you want more
>> information about the project.
>>
>> Regards,
>> U-Szeged's web browser team.
>>
>>
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
>




More information about the webkit-dev mailing list