Platform/GFX/Contribute: Difference between revisions

From MozillaWiki
< Platform‎ | GFX
Jump to navigation Jump to search
(Undo revision 362573 by Bjacob (talk))
No edit summary
Line 35: Line 35:


= Current projects =
= Current projects =
Here are the projects on which we're currently focusing. Help with these is welcome!


== OpenGL-accelerated Layers on Mobile ==
== OpenGL-accelerated Layers on Mobile ==
Line 64: Line 66:


== Color management improvements ==
== Color management improvements ==
= Other areas of the code base =
Here are some other areas of the code base that are useful to know about, but that aren't the main projects we're working on at the moment.


== Driver Blacklisting ==
== Driver Blacklisting ==
We blacklist bad/old graphics drivers to steer clear of driver bugs.
See the [https://bugzilla.mozilla.org/show_bug.cgi?id=668008 tracking bug] for blacklisting improvements.
Contacts: [[Platform/GFX/Meet#jrmuizel|joe]], [[Platform/GFX/Meet#bjacob|bjacob]], [[Platform/GFX/Meet#jrmuizel|jrmuizel]], [[Platform/GFX/Meet#ajuma|ajuma]]
Files:
* [http://hg.mozilla.org/mozilla-central/file/tip/widget/src/xpwidgets widget/src/xpwidgets] has the cross-platform code, see GfxInfoBase.* and GfxDriverInfo.* in this directory.
* The Windows-specific code is in [http://hg.mozilla.org/mozilla-central/file/tip/widget/src/windows/GfxInfo.cpp widget/src/windows/GfxInfo.cpp].
* The Mac-specific code is in [http://hg.mozilla.org/mozilla-central/file/tip/widget/src/cocoa/GfxInfo.mm widget/src/cocoa/GfxInfo.mm].
* The X11-specific code is in [http://hg.mozilla.org/mozilla-central/file/tip/widget/src/xpwidgets/GfxInfoX11.cpp widget/src/xpwidgets/GfxInfoX11.cpp] and the separate "probe" process is implemented in [http://hg.mozilla.org/mozilla-central/file/tip/toolkit/xre/glxtest.cpp toolkit/xre/glxtest.cpp].


[[Category:New_Contributor_Landing_Page]]
[[Category:New_Contributor_Landing_Page]]

Revision as of 19:11, 31 October 2011

You've reached the Gfx team! This page aims to give useful information to get started as a contributor in the Gfx team.

What we are doing

Gfx stands for Graphics. This is the part of the browser engine (Gecko) that concerns itself with the final stages of the rendering of web pages, when we actually draw the contents of the page: text, images, canvas, video... Whenever possible, we use the GPU, via OpenGL or DirectX, to accelerate the drawing.

The Meet the Gfx team page presents us and explains who's working on what.

Get started

To get started, you need to do these few things, in any order:

  • Make your own build of Firefox, from the source code of the development version (mozilla-central). This page explains how to do that.
  • Find a mentored bug: Find a task to work on. Use this search to find a mentored bug to work on. See below the list of current projects.
  • Register an account on Bugzilla.

Contact

  • IRC channel: #gfx on Mozilla IRC (irc.mozilla.org). The Meet the Gfx team page helps making sense of IRC nicknames.
  • Weekly conference calls: we have weekly team meetings taking place over the phone/videoconference, usually on Mondays 2:30 pm Pacific time. Everyone is welcome to attend them. Dial-in details, agendas and minutes are given on each meeting's page, on that page. If you want to talk about something, please first edit the agenda.
  • Mentors: Once you've found a mentored bug that you would like to work on, adding a comment on that bug is a good way to get in contact with the mentor.
  • Montly Gfx team contact: For the month of November, the Monthly Gfx team contact is bjacob
  • Development discussion: mostly happens on Bugzilla.
  • Mailing list: The mailing list to use for serious discussion that doesn't fit on Bugzilla, is dev-platform.
  • Gfx Team: Don't miss the Meet the Gfx team page!

Tools

Here's a quick overview of the tools we're using:

  • Bugzilla is where most development discussion takes place. Here's some Bugzilla documentation.
  • Mercurial is the SCM (source code management) tool we're using for Mozilla source code.
  • Mercurial Queues is not mandatory, but is a very useful tool to work with patches.
  • Languages: Gecko source code is C++, the build-system is GNU Makefiles, unit tests are typically JavaScript/HTML.
  • Compilers: we currently use Visual Studio on Windows, and GCC on other platforms. We have a plan to start building with Clang/LLVM wherever we can, starting on Mac.
  • Patch review: Once you have made a patch for a bug, attach it to the bug and request review for it. It's just a matter of setting 'review?' on it and selecting an appropriate reviewer.

Current projects

Here are the projects on which we're currently focusing. Help with these is welcome!

OpenGL-accelerated Layers on Mobile

Firefox Mobile is the version of Firefox for cell phones and tablets. It uses the same Gecko as desktop Firefox, but has different requirements, so specific work is required in Gecko to make Firefox Mobile faster and more beautiful.

The two Mobile platforms we're currently targeting are Android and Meego. To be clear, Android is the current priority of Mozilla Corporation, but other community members are working actively on Meego support, and much of the code is shared between these two platforms.

Content acceleration

WebGL

WebGL is a DOM API exposing OpenGL ES 2.0 functionality to web pages, allowing for fast 3D graphics.

Work is ongoing on conformance with the WebGL specification, and on performance.

Contacts: bjacob and jgilbert.

Mentored bugs: (TODO: none yet)

Files:


OpenGL-accelerated Layers on desktop Linux

Color management improvements

Other areas of the code base

Here are some other areas of the code base that are useful to know about, but that aren't the main projects we're working on at the moment.

Driver Blacklisting

We blacklist bad/old graphics drivers to steer clear of driver bugs.

See the tracking bug for blacklisting improvements.

Contacts: joe, bjacob, jrmuizel, ajuma

Files: