Source code
Revision control
Copy as Markdown
Other Tools
Layers History
==============
This is an overview of the major events in the history of our Layers
infrastructure.
- iPhone released in July 2007 (Built on a toolkit called LayerKit)
- Core Animation (October 2007) LayerKit was publicly renamed to OS X
10.5
- Webkit CSS 3d transforms (July 2009)
- Original layers API (March 2010) Introduced the idea of a layer
manager that would composite. One of the first use cases for this was
hardware accelerated YUV conversion for video.
concept that introduced the idea of persisting the layer content
across paints in gecko controlled buffers instead of just by the OS.
This introduced the concept of buffer rotation to deal with scrolling
instead of using the native scrolling APIs like ScrollWindowEx
edit lists and was originally done for e10s v1
shipped first for Fennec
was done to avoid situations where we had to do a bunch of work for
scrolling a small amount. i.e. buffer rotation. It allowed us to have
a variety of interesting features like progressive painting and lower
resolution painting.
APZ code was in Java for Fennec so this was reimplemented.
to allow OMTC WebGL and avoid the need to glFinish() every frame.
started around November 2012. Layers refactoring created a compositor
API that abstracted away the differences between the D3D vs OpenGL.
The main piece of API is DrawQuad.
mainly porting tiled layers to new textures, implementing
double-buffered tiles and implementing a texture client pool, to be
used by tiled content clients.
A large motivation for the pool was the very slow performance of
allocating tiles because of the sync messages to the compositor.
which allowed us to allocate gralloc buffers without sync messages to
the compositor thread.
work improved the synchronization mechanism between the compositor
and the producer.