Platform/GFX/Firefox.next: Difference between revisions

From MozillaWiki
< Platform‎ | GFX
Jump to navigation Jump to search
 
(3 intermediate revisions by 2 users not shown)
Line 8: Line 8:
| '''GFX Owner'''
| '''GFX Owner'''
| '''Priority'''
| '''Priority'''
| '''Estimated Work'''
|-
|-
| Fennec Layers Acceleration
| Fennec Layers Acceleration
Line 15: Line 14:
| Jrmuizel & Bjacob
| Jrmuizel & Bjacob
| P1
| P1
| ?
|-
| 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
| P1
| ?
|-
| NPAPI Mac Plugin Async Drawing
| josh
| to be filled in
| Benwa & Josh
| P1
| ?
|-
|-
| Electrolysis Accelerated Layers
| Electrolysis Accelerated Layers
Line 36: Line 20:
| Bas & cjones
| Bas & cjones
| P1
| P1
| ?
|-
|-
| '''Azure'''
| Implement new CSS Font Spec
| Internal
| jdaggett
| Replacing cairo with a more modern, flexible graphics library is deemed needed for a variety of performance & long term multiprocess needs
| The new CCS font specification needs to be implemented.
| Bas & Roc
| 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
| P1
| ?
|-
|-
| Layers 3D Transforms
| Layers 3D Transforms
Line 50: Line 37:
| Mattwoodrow
| Mattwoodrow
| P1
| P1
| ?
|-
|-
| Text Rasterization Options
| Azure Cairo Backend
| jfkthame & jdaggett
| Joe
| In order to diagnose text rasterization issues some people are experiencing we want to expose some additional rasterization options through about:config to allow users to evaluate their text rendering.
| Azure requires a cairo backend so we can start experimenting with a Thebes wrapper around Azure, using Azure for gecko drawing.
| jfkthame & jdaggett
| Bas & Roc
| P1
| P1
| ?
|-
| WebGL antialiasing
| bjacob
| 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
| P2
| 1 week
|-
|-
| Fennec Gradient Performance
| Fennec Gradient Performance
Line 71: Line 49:
| tbd
| tbd
| P2
| P2
| ?
|-
|-
| Accelerated Layers on X11
| Accelerated Layers on X11
Line 78: Line 55:
| Bjacob & Mattwoodrow
| Bjacob & Mattwoodrow
| P2
| P2
| ?
|-
|-
| WebGL 1.0 full conformance
| WebGL 1.0 full conformance
Line 85: Line 61:
| bjacob
| bjacob
| P2
| P2
| 2 weeks
|-
|-
| WebGL float textures extension
| WebGL float textures extension
Line 92: Line 67:
| tbd (I think that Vlad had a patch)
| tbd (I think that Vlad had a patch)
| P2
| P2
| 1 week
|-
| 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
| WebGL on Windows: default to OpenGL using D3D interop where possible
Line 99: Line 79:
| bjacob & jrmuizel
| bjacob & jrmuizel
| P2
| P2
| ?
|-
|-
| Cross Process WebGL
| Cross Process WebGL
Line 106: Line 85:
| tbd
| tbd
| P2
| P2
| ?
|-
|-
| Fennec 2D HW Acceleration
| Fennec 2D HW Acceleration
Line 113: Line 91:
| tbd
| tbd
| P2
| P2
| ?
|-
|-
| Container Layer Masking/Clipping
| Container Layer Masking/Clipping
Line 120: Line 97:
| tbd
| tbd
| P2
| P2
| ?
|-
|-
| Border Drawing Performance
| Border Drawing Performance
Line 127: Line 103:
| tbd
| tbd
| P2
| P2
| ?
|-
|-
| Accelerated Filters
| Accelerated Filters
Line 134: Line 109:
| tbd {{bug|644368}} (partly)
| tbd {{bug|644368}} (partly)
| P2
| P2
| ?
|-
|-
| Async Publishing of Video Frames
| Async Publishing of Video Frames
Line 141: Line 115:
| tbd {{bug|598868}}
| tbd {{bug|598868}}
| P2
| P2
| ?
|-
| Implement new CSS Font Spec
| jfkthame & jdaggett
| tbd
| P2
| ?
|-
|-
| Layers Animation API
| Layers Animation API
Line 154: Line 121:
| tbd
| tbd
| P3
| 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
| Common Benchmark Perf Improvements
Line 160: Line 132:
| 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.
| 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 209: Line 180:
# azure completed
# azure completed
## 2D and 3D parts
## 2D and 3D parts
## option for accelerated layers on desktop
## option to use it for all drawing on desktop
## option for accelerated layers on mobile
## option to use it for all drawing on mobile
## cross process remoting
## cross process remoting
# webgl
# webgl

Latest revision as of 13:05, 15 July 2011

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.

  1. azure completed
    1. 2D and 3D parts
    2. option to use it for all drawing on desktop
    3. option to use it for all drawing on mobile
    4. cross process remoting
  2. webgl
    1. anti-aliasing
    2. ongoing spec compliance work (even for 1.0)
    3. webgl 2.0
    4. on going security and performance work
    5. E10S support
  3. Imagelib
    1. code debt reduction
    2. on going security and performance work
  4. telemetry/metrics
    1. better measurement of real-world performance
  5. text
    1. complete font spec implementation
    2. harfbuzz full script coverage
  6. OpenCL/WebCL
  7. GLES Layers
  8. Fully color corrected pipeline
  9. Hardware-accelerated SVG filters
  10. 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.