Platform/GFX/Firefox.next: Difference between revisions

No edit summary
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Detailed list of projects =
{| cellspacing="1" cellpadding="1" border="1" style="width: 100%; height: 113px;"
{| cellspacing="1" cellpadding="1" border="1" style="width: 100%; height: 113px;"
|-
|-
Line 4: Line 6:
| '''Contact'''
| '''Contact'''
| '''Reason'''
| '''Reason'''
| '''Target'''
| '''GFX Owner'''
| '''GFX Owner'''
| '''Estimated Work'''
| '''Priority'''
|-
|-
| Fennec Layers Acceleration
| Fennec Layers Acceleration
| Blizzard/Stuart
| Blizzard/Stuart
| For best possible performance on Fennec layers are required to be accelerated on Fennec.
| For best possible performance on Fennec layers are required to be accelerated on Fennec.
| ?
| Jrmuizel & Bjacob
| tbd
| P1
| ?
|-
|-
| Electrolysis Accelerated Layers
| Electrolysis Accelerated Layers
| Blizzard
| 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.
| In order not to regress performance in electrolysis builds all types of accelerated layers need to be able to operate in conjunction with electrolysis.
| e10s (Fx7?)
| Bas & cjones
| tbd
| 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
| Fennec Gradient Performance
| Blizzard
| Blizzard
| Common use cases slowed down by poorly performing gradients on ARM
| Common use cases slowed down by poorly performing gradients on ARM
| ?
| tbd
| 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
|-
|-
| Common Benchmark Perf Improvements
| WebGL on Windows: default to OpenGL using D3D interop where possible
| Blizzard
| bjacob
| 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.
| Not using ANGLE can allow for a great performance boost, given good OpenGL drivers and D3D interop.
| Continuous
| bjacob & jrmuizel
| tbd
| P2
| ?
|-
|-
| Cross Process WebGL
| Cross Process WebGL
| Stuart(Fennec) Blizzard(Desktop)
| 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.
| 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.
| Fennec Unknown(ASAP?), Desktop e10s (Fx7)
| tbd
| tbd
| ?
| P2
|-
|-
| Fennec 2D HW Acceleration
| Fennec 2D HW Acceleration
| Stuart(Fennec)
| Stuart
| 2D Hardware Acceleration is important on mobile to further improve performance characteristics.
| 2D Hardware Acceleration is important on mobile to further improve performance characteristics.
| ?
| tbd
| ?
|-
| '''NGFX'''
| Internal
| Replacing cairo with a more modern, flexible graphics library is deemed needed for a variety of performance & long term multiprocess needs
| ? (Fx8?)
| tbd
| ?
|-
| 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.
| ?
| tbd
| tbd
| ?
| P2
|-
|-
| Container Layer Masking/Clipping
| Container Layer Masking/Clipping
| Roc
| 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.
| 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
| tbd
| ?
| P2
|-
|-
| Border Drawing Performance
| Border Drawing Performance
| Roc
| Roc
| Border drawing is currently slower than it should be, this requires work.
| Border drawing is currently slower than it should be, this requires work.
| ?
| tbd
| tbd
| ?
| P2
|-
|-
| Layers 3D Transforms
| Accelerated Filters
| Roc
| Roc
| CSS 3D transforms need to be supported by layers for good performance when we start supporting them.
| Numerous filters could potentially be accelerated through layers. Leading to performance improvements.
| ?
| tbd {{bug|644368}} (partly)
| tbd
| P2
| ?
|-
|-
| Accelerated Filters
| Async Publishing of Video Frames
| Roc
| Roc
| Numerous filters could potentially be accelerated through layers. Leading to performance improvements.
| Needs motivation
| ?
| tbd {{bug|598868}}
| tbd
| P2
| ?
|-
|-
| Layers Animation API
| Layers Animation API
| Roc
| Roc
| By making animations implicitly supported inside layers, those animations can be executed asynchronously in the composition process, allowing for smoother animation.
| By making animations implicitly supported inside layers, those animations can be executed asynchronously in the composition process, allowing for smoother animation.
| ?
| tbd
| 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
|-
|-
| Async Publishing of Video Frames
| Common Benchmark Perf Improvements
| Roc
| Blizzard
| Needs motivation
| 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
| tbd
| ?
| ?
Line 145: Line 173:


*software rasterizer tuning - we could probably use a quick and dirty rasterizer for mobile where the pixels are small
*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.
Confirmed users
138

edits