Platform/Features/ElectrolysisTextureSharing

< Platform‎ | Features
Revision as of 22:28, 3 May 2011 by JoeDrew (talk | contribs) (Created page with "{| class="fullwidth-table" |- | style="font-weight: bold; background: #DDD;" | Feature | style="font-weight: bold; background: #DDD;" | Status | style="font-weight: bold; backgro...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Feature Status ETA Owner
Sharing textures cross-process for Electrolysis being actively worked unknown Chris Jones

Summary

When Firefox is running with content processes, we need the ability to composite the layers the content process creates ("shadow" layers), using hardware acceleration, in the chrome process. This means we have to be able to composite Basic shadow layers (those drawn using Cairo) using Direct3D 9/OpenGL, but it also means we have to share texture data for compositing Direct3D 10/Direct2D-drawn shadow layers using Direct3D 10.

Team

Who's working on this?

  • Lead Developer: Chris Jones
  • Product Manager: Chris Blizzard
  • QA: unknown
  • Security: unknown; necessary?

Chris Jones is writing the Direct3D 10/D2D texture sharing code, and will write the D3D9 composition of Basic (Cairo) cross-process layers.

It has not yet been decided who will do this work for OpenGL on OS X and Linux. This may be a simple task, because we already support compositing basic shadow layers using OpenGL.

Release Requirements

  • Support sharing D3D10 textures on Windows Vista and 7. Draw into these textures using the regular path of the Direct2D backend to Cairo. Composite these Direct3D 10 shadow layers using Direct3D 10 in the chrome process.
  • Support compositing basic shadow layers using Direct3D 9 on Windows XP, Windows 7, and Windows Vista.
  • Support compositing basic shadow layers using OpenGL on OS X.
  • Optional: Support compositing basic shadow layers using OpenGL on Linux.

Next Steps

  • Get Chris Jones' Direct3D 10 patches working.
  • Write Direct3D 9 composition of basic shadow layers.
  • Verify OpenGL composition of basic shadow layers on OS X.
  • Verify OpenGL composition of basic shadow layers on Linux.

Related Bugs & Dependencies

  • bug 641681 Tracking bug for platform dependencies for multi-process Gecko
  • bug 648484 Cross-process rendering with D2D and D3D10
  • bug 648480 Cross-process rendering of Basic shadow layers with D3D9
  • bug 654580 Cross-process rendering of Basic shadow layers with OpenGL on OS X
  • bug 654581 Cross-process rendering of Basic shadow layers with OpenGL on Linux

Designs

None listed.

Goals/Use Cases

  • Draw into textures using Direct2D/D3D10, and share those to the chrome process for D3D10 composition. (Win7/Vista)
  • Draw into textures using Basic layers (Cairo) and share those to the chrome process for D3D9 and OpenGL composition. (WinXP/OS X/Linux)

Non-Goals

  • Cross-process WebGL.
  • Anything related to the Azure API.

Other Documentation

None listed.

Legend (remove if you like)

  Healthy: feature is progressing as expected.
  Blocked: feature is currently blocked, but not yet at risk of missing this release.
  At Risk: feature is at risk of missing this release.
ETA Estimated date for completion of the current feature task. Overall ETA for the feature is the product release date.


Please remove this line and any non-relevant categories below. Add whatever other categories you feel are appropriate.