Platform/GFX/Firefox.next
From MozillaWiki
Detailed list of projects
Feature/Request | Contact | Reason | GFX Owner | Priority |
Fennec Layers Acceleration | Blizzard/Stuart | For best possible performance on Fennec layers are required to be accelerated on Fennec. | Jrmuizel & Bjacob | P1 |
Electrolysis Accelerated Layers | Blizzard | In order not to regress performance in electrolysis builds all types of accelerated layers need to be able to operate in conjunction with electrolysis. | Bas & cjones | P1 |
Implement new CSS Font Spec | jdaggett | The new CCS font specification needs to be implemented. | P1 | |
WebGL antialiasing | jgilbert | Even though it's not a normative part of the spec, WebGL defaults to antialiasing, Chrome already supports it, and it's very visible for the end-user | bjacob & jrmuizel | P1 |
Layers 3D Transforms | Roc | CSS 3D transforms need to be supported by layers for good performance when we start supporting them. | Mattwoodrow | P1 |
Azure Cairo Backend | Joe | Azure requires a cairo backend so we can start experimenting with a Thebes wrapper around Azure, using Azure for gecko drawing. | Bas & Roc | P1 |
Fennec Gradient Performance | Blizzard | Common use cases slowed down by poorly performing gradients on ARM | tbd | P2 |
Accelerated Layers on X11 | ? | Important feature that's still not default on X11. Matt's patches in bug 640082 are a large part of the work there, but there remains the Flash crash and probably some reftest failures. | Bjacob & Mattwoodrow | P2 |
WebGL 1.0 full conformance | bjacob | There's a good WebGL conformance test suite, and we already pass 98% of it. Make it 100%. | bjacob | P2 |
WebGL float textures extension | bjacob | This is a massively useful extension, Chrome supports it, and some cool WebGL apps require it. | tbd (I think that Vlad had a patch) | P2 |
Azure Thebes Wrapper | Bas | We should create a Thebes wrapper around Azure so we can get some early indications going on content rendering speed-up using Azure with the Direct2D backend. | Bas & Roc | P2 |
WebGL on Windows: default to OpenGL using D3D interop where possible | bjacob | Not using ANGLE can allow for a great performance boost, given good OpenGL drivers and D3D interop. | bjacob & jrmuizel | P2 |
Cross Process WebGL | Stuart(Fennec) Blizzard(Desktop) | In the future we will need a way to render WebGL fast, without readback from a content process and render it into the composition process, to avoid the performance impact from readback to software. | tbd | P2 |
Fennec 2D HW Acceleration | Stuart | 2D Hardware Acceleration is important on mobile to further improve performance characteristics. | tbd | P2 |
Container Layer Masking/Clipping | Roc | Make container layers support clip-path, filter and mask APIs, including clipping to rounded-rectangles, so we can avoid dropping down to fallback, avoiding performance hits. | tbd | P2 |
Border Drawing Performance | Roc | Border drawing is currently slower than it should be, this requires work. | tbd | P2 |
Accelerated Filters | Roc | Numerous filters could potentially be accelerated through layers. Leading to performance improvements. | tbd bug 644368 (partly) | P2 |
Async Publishing of Video Frames | Roc | Needs motivation | tbd bug 598868 | P2 |
Layers Animation API | Roc | By making animations implicitly supported inside layers, those animations can be executed asynchronously in the composition process, allowing for smoother animation. | tbd | P3 |
NPAPI Async Drawing Extension | Bas | With the release of IE9 and Flash 10.2 IE has created an easier method for windowless plugin drawing. For performance and other reasons (such as the current elaborate background copying/alpha recovery scheme) a more efficient drawing model for windowless plugins is required. | Bas & Roc | P3 |
Common Benchmark Perf Improvements | Blizzard | It's important to perform well on commonly quoted benchmarks. Even when they are not necessarily representative of common browser usage they strongly influence impression of browser performance. | tbd | ? |
Old list
Lower fruit
- Improve video performance - profiling and fixing problems
- better qcms ICCv4 support
- jrmuizel
- CSS 3D transforms
- bjacob
- joe
Medium sized
- Define new 2D API and prototype it on D2D
- Implement cairo-surface-backend and Quartz backends for new 2D API
- Implement GL backend for new 2D API
- border support in layers (9 part layers) - this should let us hardware accelerate border type effects better
- joe
- roc: I'm not sure what the goal is here. We need to rework border drawing on the layout side, but I don't think layers and borders are related.
- accelerated layers on linux
- bjacob
- joe
- switch away from xlib to cairo-gl and/or image backends on linux (note: the size of this item depends a lot on the current status of cairo-gl: how much do we need to fix it ourselves?)
- bjacob
- joe - but we should probably not put more than one person on this
- integrate cairo-gl (maybe just for canvas?) on Mac and Linux (and maybe WinXP with ANGLE?)
- bjacob
- joe
- themeing using GetThemeBitmap() - bug 561265
- Hardware accelerated plugin layers on windows
- Layerize all remaining containers, namely SVG mask/clip-path/filters
- Animation of layer properties offloaded to the compositing process
- any WebGL work that would not make it into 4.0 (optimizations, still-in-flux parts of the spec such as color correction, lost-context events, using ARB_robustness...?)
- bjacob
Things that would be nice
- software rasterizer tuning - we could probably use a quick and dirty rasterizer for mobile where the pixels are small
18 month possibilities
MoCo managers are trying to create a list of the work needing to be accomplished over the next 18 months. The idea is to build a better picture of where we need to hire, train, etc. Following is the work we think we might want the GFX group to accomplish in the next 18 months.
- azure completed
- 2D and 3D parts
- option to use it for all drawing on desktop
- option to use it for all drawing on mobile
- cross process remoting
- webgl
- anti-aliasing
- ongoing spec compliance work (even for 1.0)
- webgl 2.0
- on going security and performance work
- E10S support
- Imagelib
- code debt reduction
- on going security and performance work
- telemetry/metrics
- better measurement of real-world performance
- text
- complete font spec implementation
- harfbuzz full script coverage
- OpenCL/WebCL
- GLES Layers
- Fully color corrected pipeline
- Hardware-accelerated SVG filters
- D3D11 Layers
This list is not a roadmap or a committed plan, its a rough outline of some of the big things we are likely to want to do. In general I think we have the right skillsets, we just need more people with them. The only exceptions are perhaps 6) and 9) - some more hard core shader/HLSL expertise might be helpful.