gecko-dev/gfx/docs/LayersHistory.rst
Sebastian Hengst 4f39161869 Backed out 18 changesets (bug 1487647, bug 1487271, bug 1487001, bug 1487105, bug 1486845, bug 1485738, bug 1487595, bug 1347060, bug 1480900, bug 1487889) for accidential push of inbound to central. a=backout
Backed out changeset 331706d8558f (bug 1487595)
Backed out changeset d78b833293db (bug 1487595)
Backed out changeset f292ef31ef0b (bug 1487595)
Backed out changeset ef8c5c529210 (bug 1486845)
Backed out changeset 9cbc8592d649 (bug 1487889)
Backed out changeset 05a0118455e4 (bug 1487105)
Backed out changeset 78b8ff889992 (bug 1487105)
Backed out changeset 5a55e5b74107 (bug 1480900)
Backed out changeset ea2402bdef40 (bug 1347060)
Backed out changeset 3f831b709e37 (bug 1485738)
Backed out changeset d1c29bfb5ea9 (bug 1480900)
Backed out changeset 8e60483ec824 (bug 1480900)
Backed out changeset 328589a86dd1 (bug 1487647)
Backed out changeset d974ef1647f3 (bug 1480900)
Backed out changeset 0509636cc5d5 (bug 1487001)
Backed out changeset c57165730494 (bug 1487271)
Backed out changeset a55d81761fc4 (bug 1480900)
Backed out changeset eaa2d0e9b62d (bug 1480900)

--HG--
rename : gfx/docs/AsyncPanZoomArchitecture.png => gfx/doc/AsyncPanZoom-HighLevel.png
rename : gfx/webrender_bindings/README.webrender => gfx/doc/README.webrender
rename : gfx/docs/SilkArchitecture.png => gfx/doc/silkArchitecture.png
2018-09-01 02:01:23 +03:00

64 lines
2.6 KiB
ReStructuredText
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.
- Retained layers (July 7 2010 - Bug 564991) This was an important
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
- Layers IPC (July 2010 - Bug 570294) This introduced shadow layers and
edit lists and was originally done for e10s v1
- 3D transforms (September 2011 - Bug 505115)
- OMTC (December 2011 - Bug 711168) This was prototyped on OS X but
shipped first for Fennec
- Tiling v1 (April 2012 - Bug 739679) Originally done for Fennec. This
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.
- C++ Async pan zoom controller (July 2012 - Bug 750974) The existing
APZ code was in Java for Fennec so this was reimplemented.
- Streaming WebGL Buffers (February 2013 - Bug 716859) Infrastructure
to allow OMTC WebGL and avoid the need to glFinish() every frame.
- Compositor API (April 2013 - Bug 825928) The planning for this
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.
- Tiling v2 (Mar 7 2014 - Bug 963073) Tiling for B2G. This work is
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.
The slow performance of allocating was directly addressed by bug 959089
which allowed us to allocate gralloc buffers without sync messages to
the compositor thread.
- B2G WebGL performance (May 2014 - Bug 1006957, 1001417, 1024144) This
work improved the synchronization mechanism between the compositor
and the producer.