Platform/GFX: Difference between revisions

 
(129 intermediate revisions by 17 users not shown)
Line 1: Line 1:
== Details on the active work ==
This is a page of useful information about and for the Firefox Graphics team. For an overview of graphics inside of Gecko look [https://wiki.mozilla.org/Gecko:Overview#Graphics here]


=== SkiaGL ===
If you're interested in contributing, check out [[Platform/GFX/Contribute|this]] page.
* Joint effort with Fennec, Taipei teams
* Taipei visited Toronto, May 13-17, 2013
* Toronto et al. visited Taipei May 20-24, 2013
* Visiting Skia team in Chapel Hill, August 5-6, 2013
* See [[Mobile/SkiaGL | Mobile SkiaGL page]]
* Some notes about [https://wiki.mozilla.org/Platform/GFX/Gralloc Gralloc]


=== Scrolling (async, subframe panning) ===
You can find the team in channel #gfx-firefox:mozilla.org on Matrix ([https://wiki.mozilla.org/Matrix info on how to join Matrix]).
* B2G (performance) target applications: gallery, contacts, applist, browser, e-mail [https://wiki.mozilla.org/Mobile/AsyncSubframePanning see here for details]


=== Off main thread ... ===
* {{bug|598873}}: OMTC on all platforms
** {{bug|722012}}: OMTC on Linux
** {{bug|756601}}: OMTC on Mac
** {{bug|756606}}: OMTC D3D10 (Windows)


=== OMT image animation ===
== Roadmaps and Goals==
* {{bug|717872}}: Image animation


=== Moz2D (Azure) ===
===Roadmaps===
* Get the tests going
** On all platforms
** Use https://hg.mozilla.org/users/bschouten_mozilla.com/moz2d/
* OSX Core Graphics
* Migration from thebes to Moz2D
** {{bug|882109}}
* Cairo SW


=== WebGL ===
View our general [https://wiki.mozilla.org/Platform/GFX/roadmap2020 Roadmap for 2020]
* [https://wiki.mozilla.org/Platform/GFX/WebGL2 Details on the WebGL2 work]


=== Testing, replaying, building Moz2D ===
View the [https://wiki.mozilla.org/Platform/GFX/WebRender2020 WebRender-specific roadmap]
* Linux/Mac
** Cairo
*** Get libcairo2-dev (http://cairographics.org/download/)
*** Get qt4-sdk (http://qt-project.org/downloads) if you plan on using player2d
*** hg clone http://hg.mozilla.org/users/bschouten_mozilla.com/moz2d
*** On Mac, add the directory containing the cairo.pc file to your PKG_CONFIG_PATH (if it's not there already).
**** One location seen was /usr/X11/lib/pkgconfig
**** Another location seen was /opt/local/lib/pkgconfig
*** Compiler issues with Player2D target
**** Currently, you need to be building with clang in order for Player2D (Qt dependency) to build.
**** If you don't get qmake producing a Makefile, but instead get a xcodeproj file instead, you may need to create the Makefile yourself, using qmake options (details forthcoming) and run make manually.
*** Build/Useful targets:
**** release: make -f Makefile.standalone release MOZ2D_CAIRO=true
**** debug: make -f Makefile.standalone debug MOZ2D_CAIRO=true
**** check: make -f Makefile.standalone check MOZ2D_CAIRO=true
**** player2d: make -f Makefile.standalone player2d MOZ2D_CAIRO=true
** Skia
*** Get skia: svn checkout http://skia.googlecode.com/svn/trunk skia
*** Build skia with BUILDTYPE=Release: https://sites.google.com/site/skiadocs/user-documentation/quick-start-guides/linux
*** Get qt4-sdk (http://qt-project.org/downloads) if you plan on using player2d
*** hg clone http://hg.mozilla.org/users/bschouten_mozilla.com/moz2d
*** make -f Makefile.standalone clean release MOZ2D_SKIA=skia
**** If you didn't checkout skia under the moz2d src directory then set MOZ2D_SKIA to it's relative path
* Windows
** Dependencies:
*** [http://www.microsoft.com/visualstudio/eng/downloads VS2012], Express 2012 for Windows Desktop is fine
*** A default Cairo and Skia build in the cairo/skia directories in the parent directory of Moz2D if you plan to use skia/cairo
*** [http://qt-project.org/downloads QtSDK] if you plan on using player2d
**** Use the VS2012 32-bit version
**** You will need at least version 5.1.0 since earlier versions don't have a 32-bit binary for VS2012 and have a bug ([https://bugreports.qt-project.org/browse/QTBUG-30822 QTBUG-30822]) that cause Visual Studio to pick up the wrong Windows SDK headers when building in an environment with both VS2010 and VS2012 installed.
**** Older versions can be used if needed. Use one of the installers and select "Source Components" when installing. Then, from a VS2012 command prompt run:
***** <code>C:\Qt\Qt5.0.2\5.0.2\Src\qtbase> configure -opensource -confirm-license -static -debug-and-release -no-angle -no-opengl -nomake examples -nomake tests -platform win32-msvc2012</code>
***** <code>nmake</code>
***** (Requires [http://www.activestate.com/activeperl Perl])
** <code>hg clone http://hg.mozilla.org/users/bschouten_mozilla.com/moz2d</code>
** Open the <code>gfx2d.sln</code> visual studio solution
** Build the solution
*** Build the Debug configuration first since it generates the shader code
*** Don't build Release (Skia) without installing Skia / Cairo first
** For player2d, from a VS2012 command prompt:
*** Go to the <code>moz2d</code> repository clone, <code>cd c:\users\me\moz2d</code>
*** <code>mkdir player2d-build</code>
*** <code>cd player2d-build</code>
*** <code>\qt\Qt5.1.0\5.1.0\msvc2012\bin\qmake.exe ..\player2d\player2d.pro -tp vc -spec win32-msvc2012</code><br>(The final <code>-spec win32-msvc2012</code> might not be necessary, particularly if you only have one version of Visual Studio installed)
*** Open the generated <code>player2d.vcxproj</code> file from the <code>player2d-build</code> directory in VS2012.
*** Press F7 to build.
*** If you get an error about <code>surfaceview.h</code> not being found when referenced from <code>ui_sourcesurfaceview.h</code>, change the line that reads:<br><code>#include &lt;surfaceview.h&gt;</code><br>to<br><code>#include "surfaceview.h"</code>
*** Add the directory containing the QT DLLs to your path (e.g. C:\qt\Qt5.1.0\5.1.0\msvc2012\bin)
*** Run player2d


=== Documentation ===
View a [https://docs.google.com/spreadsheets/d/1ygcw2u1FuC39-b_5iwELAToYYWVYGEfyieW77ouJ9Mc/edit#gid=0 more detailed] roadmap mapped against months/releases
* [[Platform/GFX/Moz2D|Moz2D documentation]]
* [http://people.mozilla.org/~bgirard/doxygen/ Doxygen extracted documentation]
* [https://developer.mozilla.org/en-US/docs/GTest GTest (unit test) instructions]


== Development Planning ==
===Quarterly Goals===


* 2013 Goals: [https://wiki.mozilla.org/index.php?title=Platform/2013-Q1-Goals Q1], [https://wiki.mozilla.org/index.php?title=Platform/2013-Q2-Goals Q2], [https://wiki.mozilla.org/index.php?title=Platform/2013-Q3-Goals Q3], [https://wiki.mozilla.org/index.php?title=Platform/2013-Q4-Goals Q4]
View the [https://wiki.mozilla.org/Platform/GFX/GFXQ2Goals Graphics Team Q2 Goals]
* [[Platform/GFX/InternProjects|Intern Project List]]
* [[Platform/GFX/GLESLayersMeeting|OpenGL ES accelerated layers syncup meeting]]
* [[Platform/GFX/BugKill|BugKill - make our bug lists containable in one person's head]]
* [[Platform/GFX/AzureConversion|Convert code to the new 2D API - the second phase of the Azure project]]
* [[Platform/GFX/2013Thoughts|Things that were being considered for 2013]]
* https://wiki.mozilla.org/Gecko:AcceleratedFilters


== Feature Planning ==
====WebRender Priorities====
* [https://wiki.mozilla.org/Platform/GFX/WebRender2020_Q1 WebRender Q1 Priorities]


* [[Platform/GFX/HardwareAcceleration|Hardware Acceleration]]
* [https://wiki.mozilla.org/Platform/GFX/WebRender2020_Q2 WebRender Q2 Priorities]
* [[Platform/GFX/LayerAPI|Layer API]]
* [[Platform/GFX/Responsiveness|Responsiveness]]
* [[Platform/GFX/PerformanceToDo|PerformanceToDo]]
* [[Platform/GFX/Firefox.next|Firefox.next]]
* [[Platform/GFX/GLLayersOnMobile|OpenGL Layers on Mobile]]
* [[Platform/GFX/OffMainThreadCompositing|Off Main Thread Compositing]]
* [[Platform/GFX/WebCL|WebCL]]
* [[Platform/GFX/WebGL|WebGL]]
* [[Platform/GFX/X11GLLayers|X11 GL Layers]]
* [[Platform/GFX/Fonts|Fonts]]
* [[Platform/GFX/MobileGPUs|MobileGPUs]]
* [[Platform/Imagelib|Imagelib]]
* [[Platform/GFX/Gralloc|Gralloc]]


== Team Meetings ==
* [https://wiki.mozilla.org/Platform/GFX/WebRender2020_Q3 WebRender Q3 Priorities]


{| class="fullwidth-table"
==Meeting Notes==
! align="center" style="width: 25%;" | 2013 Q1
! align="center" style="width: 25%;" | 2013 Q2
! align="center" style="width: 25%;" | 2013 Q3
! align="center" style="width: 25%;" | 2013 Q4
|-
|
* [[Platform/GFX/2013-January-7|7 January 2013]]
* [[Platform/GFX/2013-February-4|4 February 2013]]
* [[Platform/GFX/2013-February-19|19 February 2013]]
* [[Platform/GFX/2013-March-4|4 March 2013]]
* [[Platform/GFX/2013-March-18|18 March 2013]]
|
* [[Platform/GFX/2013-April-2|2 April 2013]]
* [[Platform/GFX/2013-April-22|22 April 2013]]
* [[Platform/GFX/2013-May-6|6 May 2013]]
* [[Platform/GFX/2013-May-13|13 May 2013]]
* [[Platform/GFX/2013-June-3|3 June 2013]]
* [[Platform/GFX/2013-June-17|17 June 2013]]
|
* [[Platform/GFX/2013-July-1|11 July 2013]]
* [[Platform/GFX/2013-July-15|15 July 2013]]
* [[Platform/GFX/2013-July-29|29 July 2013]]
* [[Platform/GFX/2013-August-12|12 August 2013]]
* <font color="red">Next:</font> [[Platform/GFX/2013-August-26|26 August 2013]] 2:30pm PDT
* <font size="-2">9 September 2013 (5:30pm PDT)</font>
* <font size="-2">23 September 2013 (2:30pm PDT)</font>
|
* <font size="-2">7 October 2013 (5:30pm PDT)</font>
* <font size="-2">21 October 2013 (2:30pm PDT)</font>
* <font size="-2">4 November 2013 (5:30pm PDT)</font>
* <font size="-2">18 November 2013 (2:30pm PDT)</font>
* <font size="-2">2 December 2013 (5:30pm PDT)</font>
* <font size="-2">16 December 2013 (2:30pm PDT)</font>
|-
! align="center" style="width: 25%;" | 2012 Q1
! align="center" style="width: 25%;" | 2012 Q2
! align="center" style="width: 25%;" | 2012 Q3
! align="center" style="width: 25%;" | 2012 Q4
|-
|
* [[Platform/GFX/2012-January-9|9 January 2012]]
* [[Platform/GFX/2012-January-16|16 January 2012]]
* [[Platform/GFX/2012-January-23|23 January 2012]]
* [[Platform/GFX/2012-January-30|30 January 2012]]
* [[Platform/GFX/2012-February-6|6 February 2012]]
* [[Platform/GFX/2012-February-13|13 February 2012]]
* [[Platform/GFX/2012-February-21|21 February 2012]]
* [[Platform/GFX/2012-February-27|27 February 2012]]
* [[Platform/GFX/2012-March-5|5 March 2012]]
* [[Platform/GFX/2012-March-12|12 March 2012]]
* [[Platform/GFX/2012-March-19|19 March 2012]]
* [[Platform/GFX/2012-March-26|26 March 2012]]
|
* [[Platform/GFX/2012-April-2|2 April 2012]]
* [[Platform/GFX/2012-April-10|10 April 2012]]
* [[Platform/GFX/2012-April-16|16 April 2012]]
* [[Platform/GFX/2012-April-23|23 April 2012]]
* [[Platform/GFX/2012-April-30|30 April 2012]]
* [[Platform/GFX/2012-May-7|7 May 2012]]
* [[Platform/GFX/2012-May-7-priorities|7 May 2012 GFX Priorities]]
* [[Platform/GFX/2012-May-14|14 May 2012]]
* [[Platform/GFX/2012-May-22|22 May 2012]]
* [[Platform/GFX/2012-June-4|4 June 2012]]
* [[Platform/GFX/2012-June-11|11 June 2012]]
* [[Platform/GFX/2012-June-18|18 June 2012]]
* [[Platform/GFX/2012-June-25|25 June 2012]]
|
* [[Platform/GFX/2012-July-9|9 July 2012]]
* [[Platform/GFX/2012-July-30|30 July 2012]]
* [[Platform/GFX/2012-August-13|13 August 2012]]
* [[Platform/GFX/2012-August-20|20 August 2012]]
* [[Platform/GFX/2012-August-27|27 August 2012]]
* [[Platform/GFX/2012-September-10|10 September 2012]]
* [[Platform/GFX/2012-September-24|24 September 2012]]
|
* [[Platform/GFX/2012-October-1|1 October 2012]]
* [[Platform/GFX/2012-October-15|15 October 2012]]
* [[Platform/GFX/2012-October-22|22 October 2012]]
* [[Platform/GFX/2012-November-5|5 November 2012]]
* [[Platform/GFX/2012-November-26|26 November 2012]]
* [[Platform/GFX/2012-December-10|10 December 2012]]
|}


* [https://wiki.mozilla.org/Platform/GFX/SWWRmeetingnotes Software WebRender]
* [https://wiki.mozilla.org/Platform/GFX/WRperfmeetings WR Perf]
* [https://wiki.mozilla.org/Platform/WRfuture WR Future]
* [https://docs.google.com/document/d/1RnHYno9j-yLwS-DXvd-xyG8RBqe9StjCDu5GbGnXdP8/edit Texture/buffer upload] brainstorming
* [https://wiki.mozilla.org/Platform/GFX/wrmac WebRender-Mac]


{{hidden
== Bug Triage Information ==
|2008-2011
|
* [[Platform/GFX/2011-December-19|19 December 2011]]
* [[Platform/GFX/2011-December-12|12 December 2011]]
* [[Platform/GFX/2011-December-5|5 December 2011]]
* [[Platform/GFX/2011-November-28|28 November 2011]]
* [[Platform/GFX/2011-November-21|21 November 2011]]
* [[Platform/GFX/2011-November-7|7 November 2011]]
* [[Platform/GFX/2011-October-31|31 October 2011]]
* [[Platform/GFX/WebGL-Security-2011-10-28|28 October 2011 WebGL security review]]
* [[Platform/GFX/2011-October-24|24 October 2011]]
* [[Platform/GFX/2011-October-17|17 October 2011]]
* [[Platform/GFX/2011-October-11|11 October 2011]]
* [[Platform/GFX/2011-October-3|3 October 2011]]
* [[Platform/GFX/2011-September-26|26 September 2011]]
* [[Platform/GFX/2011-September-19|19 September 2011]]
* [[Platform/GFX/2011-September-13-with-Apple-and-Google|13 September 2011 informal meeting with Apple and Google engineers]]
* [[Platform/GFX/2011-September-6|6 September 2011]]
* [[Platform/GFX/2011-August-29|29 August 2011]]
* [[Platform/GFX/2011-August-22|22 August 2011]]
* [[Platform/GFX/2011-August-15|15 August 2011]]
* [[Platform/GFX/2011-August-8|8 August 2011]]
* [[Platform/GFX/2011-August-2|2 August 2011]]
* [[Platform/GFX/2011-July-25|25 July 2011]]
* [[Platform/GFX/2011-July-11|11 July 2011]]
* [[Platform/GFX/WebGL-Security-2011-06-29|29 June 2011 WebGL security review]]
* [[Platform/GFX/2011-June-27|27 June 2011]]
* [[Platform/GFX/2011-June-20|20 June 2011]]
* [[Platform/GFX/2011-June-13|13 June 2011]]
* [[Platform/GFX/2011-June-6|6 June 2011]]
* [[Platform/GFX/2011-May-30|30 May 2011]]
* [[Platform/GFX/2011-May-24|24 May 2011]]
* [[Platform/GFX/2011-May-16|16 May 2011]]
* [[Platform/GFX/2011-May-9|9 May 2011]]
* [[Platform/GFX/2011-May-2|2 May 2011]]
* [[Platform/GFX/2011-Apr-18|18 April 2011]]
* [[Platform/GFX/2010-Mar-28|28 March 2011]]
* [[Platform/GFX/2010-Jan-3|3 January 2011]]
* [[Platform/GFX/2010-Aug-30|30 August 2010]]
* [[Platform/GFX/2010-Aug-23|23 August 2010]]
* [[Platform/GFX/2010-Aug-16|16 August 2010]]
* [[Platform/GFX/2010-Aug-9|9 August 2010]]
* [[Platform/GFX/2010-Aug-2|2 August 2010]]
* [[Platform/GFX/2010-Jul-26|26 July 2010]]
* [[Platform/GFX/2010-Jul-19|19 July 2010]]
* [[Platform/GFX/2010-Jul-12|12 July 2010]]
* [[Platform/GFX/2010-Jun-28|28 June 2010]]
* [[Platform/GFX/2010-Jun-21|21 June 2010]]
* [[Platform/GFX/2010-Jun-14|14 June 2010]]
* [[Platform/GFX/2010-Jun-7|7 June 2010]]
* [[Platform/GFX/2010-May-31|31 May 2010]]
* [[Platform/GFX/2010-May-24|24 May 2010]]
* [[Platform/GFX/2010-May-17|17 May 2010]]
* [[Platform/GFX/2010-May-10|10 May 2010]]
* [[Platform/GFX/2010-May-3|3 May 2010]]
* [[Platform/GFX/2010-Apr-26|26 Apr 2010]]
* [[Platform/GFX/2010-Apr-19|19 Apr 2010]]
* [[Platform/GFX/2010-Apr-12|12 Apr 2010]]
* [[Platform/GFX/2010-Apr-5|5 Apr 2010]]
* [[Platform/GFX/2010-Mar-29|29 Mar 2010]]
* [[Platform/GFX/2010-Mar-22|22 Mar 2010]]
* [[Platform/GFX/2010-Mar-15|15 Mar 2010]]
* [[Platform/GFX/2010-Mar-8|8 Mar 2010]]
* [[Platform/GFX/2010-Mar-1|1 Mar 2010]]
* [[Platform/GFX/2010-Feb-15|15 Feb 2010]]
* [[Platform/GFX/2010-Feb-8|8 Feb 2010]]
* [[Platform/GFX/2010-Feb-1|1 Feb 2010]]
* [[Platform/GFX/2010-Jan-25|25 Jan 2010]]
* [[Platform/GFX/2010-Jan-18|18 Jan 2010]]
* [[Platform/GFX/2010-Jan-11|11 Jan 2010]]
* [[Platform/GFX/2010-Jan-04|04 Jan 2010]]
* [[Platform/GFX/2009-Dec-21|21 Dec 2009]]
* [[Platform/GFX/2009-Dec-14|14 Dec 2009]]
* [[Platform/GFX/2009-Nov-30|30 Nov 2009]]
* [[Platform/GFX/2009-Nov-23|23 Nov 2009]]
* [[Platform/GFX/2009-Nov-16|16 Nov 2009]]
* [[Platform/GFX/2009-Nov-9|9 Nov 2009]]
* [[Platform/GFX/2009-Nov-2|2 Nov 2009]]
* [[Platform/GFX/2009-Oct-26|26 Oct 2009]]
* [[Platform/GFX/2009-Oct-19|19 Oct 2009]]
* [[Platform/GFX/2009-Oct-12|12 Oct 2009]]
* [[Platform/GFX/2009-Oct-5|5 Oct 2009]]
* [[Platform/GFX/2009-Sep-28|28 Sep 2009]]
* [[Platform/GFX/2009-Sep-21|21 Sep 2009]]
* [[Platform/GFX/2009-Sep-14|14 Sep 2009]]
* [[Platform/GFX/2009-Sep-7|7 Sep 2009]]
* [[Platform/GFX/2009-Aug-31|31 Aug 2009]]
* [[Platform/GFX/2009-Aug-17|17 Aug 2009]]
* [[Platform/GFX/2009-Aug-10|10 Aug 2009]]
* [[Platform/GFX/2009-Aug-3|3 Aug 2009]]
* [[Platform/GFX/2009-Jul-27|27 July 2009]]
* [[Platform/GFX/2009-Jul-20|20 July 2009]]
* [[Platform/GFX/2009-Jul-13|13 July 2009]]
* [[Platform/GFX/2009-Jul-6|6 July 2009]]
* [[Platform/GFX/2009-Jun-29|29 Jun 2009]]
* [[Platform/GFX/2009-Jun-22|22 Jun 2009]]
* [[Platform/GFX/2009-Jun-15|15 Jun 2009]]
* [[Platform/GFX/2009-Jun-8|8 Jun 2009]]
* [[Platform/GFX/2009-Jun-1|1 Jun 2009]]
* [[Platform/GFX/2009-May-25|25 May 2009]]
* [[Platform/GFX/2009-May-18|18 May 2009]]
* [[Platform/GFX/2009-May-11|11 May 2009]]
* [[Platform/GFX/2009-May-4|4 May 2009]]
* [[Platform/GFX/2009-Apr-20|20 Apr 2009]]
* [[Platform/GFX/2009-Apr-13|13 Apr 2009]]
* [[Platform/GFX/2009-Apr-6|6 Apr 2009]]
* [[Platform/GFX/2009-Mar-30|30 Mar 2009]]
* [[Platform/GFX/2009-Mar-23|23 Mar 2009]]
* [[Platform/GFX/2009-Mar-16|16 Mar 2009]]
* [[Platform/GFX/2009-Mar-9|9 Mar 2009]]
* [[Platform/GFX/2009-Mar-2|2 Mar 2009]]
* [[Platform/GFX/2009-Feb-23|23 Feb 2009]]
* [[Platform/GFX/2009-Feb-16|16 Feb 2009]]
* [[Platform/GFX/2009-Feb-9|9 Feb 2009]]
* [[Platform/GFX/2009-Feb-2|2 Feb 2009]]
* [[Platform/GFX/2009-Jan-26|26 Jan 2009]]
* [[Platform/GFX/2009-Jan-19|19 Jan 2009]]
* [[Platform/GFX/2009-Jan-12|12 Jan 2009]]
* [[Platform/GFX/2009-Jan-5|5 Jan 2009]]
* [[Platform/GFX/2008-Dec-15|15 Dec 2008]]
* [[Platform/GFX/2008-Dec-8|8 Dec 2008]]
* [[Platform/GFX/2008-Dec-1|1 Dec 2008]]
* [[Platform/GFX/2008-Nov-17|17 Nov 2008]]
* [[Platform/GFX/2008-Nov-10|10 Nov 2008]]
* [[Platform/GFX/2008-Nov-3|3 Nov 2008]]
* [[Platform/GFX/2008-Oct-20|20 Oct 2008]]
* [[Platform/GFX/2008-Oct-13|13 Oct 2008]]
* [[Platform/GFX/2008-Oct-6|6 Oct 2008]]
* [[Platform/GFX/2008-Sep-29|29 Sep 2008]]
* [[Platform/GFX/2008-Sep-22|22 Sep 2008]]
* [[Platform/GFX/2008-Sep-15|15 Sep 2008]]
* [[Platform/GFX/2008-Sep-8|8 Sep 2008]]
* [[Platform/GFX/2008-Sep-2|2 Sep 2008]]
* [[Platform/GFX/2008-Aug-19|19 Aug 2008]]
* [[Platform/GFX/2008-Aug-12|12 Aug 2008]]
* [[Platform/GFX/2008-Aug-5|5 Aug 2008]]
* [[Platform/GFX/2008-July-22|22 July 2008]]
* [[Platform/GFX/2008-July-15|15 July 2008]]
|headerstyle=background:#dddddd
}}


== Other Information ==
[https://github.com/FirefoxGraphics/triage/wiki/Triage-guide Triage Guide]


* [[Platform/GFX/HardwareList|Available Hardware List]]
[https://firefoxgraphics.github.io/triage/ Triage Dashboard]
* [[Platform/GFX/Hardware limitations|Hardware Limitations]]
 
* [https://wiki.mozilla.org/Gecko:Overview#Graphics Graphics Overview]
== Technical Overviews ==
* [https://firefox-source-docs.mozilla.org/gfx/index.html Design documents for the Mozilla graphics architecture]
* [https://firefox-source-docs.mozilla.org/gfx/RenderingOverview.html Rendering Overview from HTML to GPU]
* [https://github.com/servo/webrender/tree/master/webrender/doc WebRender specific implementation notes]:
** [https://github.com/servo/webrender/blob/master/webrender/doc/text-rendering.md Text Rendering]
** [https://github.com/servo/webrender/blob/master/webrender/doc/blob.md Blobs]
** [https://github.com/servo/webrender/blob/master/webrender/doc/CLIPPING_AND_POSITIONING.md Clipping & Positioning elements]
** [https://github.com/servo/webrender/blob/master/webrender/doc/swizzling.md Color swizzling optimizations]
* [https://github.com/sotaroikeda/firefox-diagrams A large collection of detailed diagrams on call- and data-flow of IPC/Bridges/Compositor/Video playback/...]
 
== Tools & Workflows ==
 
=== Getting Started ===
* [https://docs.google.com/document/d/1qs9avZSVU4LohaEMUMIHsj64iB9je28KIThy0RTunpU/ Windows-based development] tips and step-by-step set up guide;
 
=== WebRender ===
* [https://github.com/servo/webrender/wiki/Debugging-WebRender Debugging WebRender] including [https://github.com/servo/webrender/issues/3070 an example debugging workflow];
 
== Useful Information ==
 
* [[Platform/GFX/Jargon|Jargon]]
* [[QA/Platform/Graphics/Inventory|QA Graphics Inventory: which hardware do we have and where is it]]
* [https://hackmd.io/lvtOckAtSrmIpZAwgtXptw WebGL Best Practices]
* [https://github.com/servo/webrender/wiki/Driver-issues Driver Issues] in WebRender
* [https://wiki.mozilla.org/Platform/GFX/perf_triage WebRender Perf] Triage
 
== Components ==
 
* [[Platform/GFX/Quantum_Render|Quantum Render]]
** Where have we shipped WebRender? https://wiki.mozilla.org/Platform/GFX/WebRender_Where
* [[Platform/GFX/Telemetry|Telemetry]]
* [[Platform/GFX/APZ|Async Panning and Zooming]]
* [[Platform/GFX/Moz2D|Moz2D]]
* [[Platform/GFX/WebGPU|WebGPU]]
 
== Archive ==
 
We have a lot of older pages that are no longer updated. They've been moved [[Platform/GFX/Archive | here]].

Latest revision as of 17:53, 17 July 2020

This is a page of useful information about and for the Firefox Graphics team. For an overview of graphics inside of Gecko look here

If you're interested in contributing, check out this page.

You can find the team in channel #gfx-firefox:mozilla.org on Matrix (info on how to join Matrix).


Roadmaps and Goals

Roadmaps

View our general Roadmap for 2020

View the WebRender-specific roadmap

View a more detailed roadmap mapped against months/releases

Quarterly Goals

View the Graphics Team Q2 Goals

WebRender Priorities

Meeting Notes

Bug Triage Information

Triage Guide

Triage Dashboard

Technical Overviews

Tools & Workflows

Getting Started

WebRender

Useful Information

Components

Archive

We have a lot of older pages that are no longer updated. They've been moved here.