Platform/Features/ElectrolysisTextureSharing: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(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...")
 
No edit summary
 
(16 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{| class="fullwidth-table"
{{FeatureStatus
|-
|Feature name=Sharing textures cross-process for Electrolysis
| style="font-weight: bold; background: #DDD;" | Feature
|Feature stage=Development
| style="font-weight: bold; background: #DDD;" | Status
|Feature status=In progress
| style="font-weight: bold; background: #DDD;" | ETA
|Feature version=Q4 of 2011.
| style="font-weight: bold; background: #DDD;" | Owner
|Feature health=OK
|-
|Feature status note=Mostly done.
<section begin="status" />
}}
| [[Platform/Features/ElectrolysisTextureSharing|Sharing textures cross-process for Electrolysis]]
{{FeatureTeam
| {{StatusHealthy|status=being actively worked}}
|Feature product manager=Chris Blizzard
| unknown
|Feature feature manager=Chris Jones
| Chris Jones
|Feature lead engineer=Chris Jones
<section end="status" />
|Feature qa lead=Mihai Morar
|-
}}
|}
{{FeaturePageBody
 
|Feature open issues and risks=Chris Jones is writing the Direct3D 10/D2D texture sharing code, and will write the D3D9 composition of Basic (Cairo) cross-process layers.
== 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.
'''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.
 
|Feature users and use cases=* Draw into textures using Direct2D/D3D10, and share those to the chrome process for D3D10 composition. (Win7/Vista)
== Release Requirements ==
* Draw into textures using Basic layers (Cairo) and share those to the chrome process for D3D9 and OpenGL composition. (WinXP/OS X/Linux)
* 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.
|Feature 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 Direct3D 9 on Windows XP, Windows 7, and Windows Vista.
* Support compositing basic shadow layers using OpenGL on OS X.
* Support compositing basic shadow layers using OpenGL on OS X.
* ''Optional'': Support compositing basic shadow layers using OpenGL on Linux.
* ''Optional'': Support compositing basic shadow layers using OpenGL on Linux.
 
* No major performance regressions on any supported platform.
== Next Steps ==
|Feature non-goals=* Cross-process WebGL.
* Get Chris Jones' Direct3D 10 patches working.
* Anything related to the Azure API.
* Write Direct3D 9 composition of basic shadow layers.
|Feature implementation notes===== Next Steps ====
* Verify OpenGL composition of basic shadow layers on OS X.
* Verify OpenGL composition of basic shadow layers on OS X.
* Verify OpenGL composition of basic shadow layers on Linux.
* Verify OpenGL composition of basic shadow layers on Linux.


== Related Bugs & Dependencies ==
==== Related Bugs & Dependencies ====
* {{bug|641681}} Tracking bug for platform dependencies for multi-process Gecko
* {{bug|641681}} Tracking bug for platform dependencies for multi-process Gecko
* {{bug|648484}} Cross-process rendering with D2D and D3D10
* {{bug|648484}} Cross-process rendering with D2D and D3D10
Line 48: Line 36:
* {{bug|654580}} Cross-process rendering of Basic shadow layers with OpenGL on OS X
* {{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
* {{bug|654581}} Cross-process rendering of Basic shadow layers with OpenGL on Linux
 
}}
== Designs ==
{{FeatureInfo
None listed.
|Feature priority=P1
 
|Feature roadmap=Platform
== Goals/Use Cases ==
|Feature list=Platform
* Draw into textures using Direct2D/D3D10, and share those to the chrome process for D3D10 composition. (Win7/Vista)
|Feature project=Responsiveness
* Draw into textures using Basic layers (Cairo) and share those to the chrome process for D3D9 and OpenGL composition. (WinXP/OS X/Linux)
|Feature engineering team=Graphics
 
}}
== Non-Goals ==
{{FeatureTeamStatus
* Cross-process WebGL.
|Feature security status=sec-review-needed
* Anything related to the Azure API.
|Feature security health=Blocked
 
|Feature security notes={{bug|744944}}
== Other Documentation ==
|Feature qa notes=[http://mzl.la/nzjjUv Test Plan]
None listed.
}}
 
== Legend (remove if you like) ==
{| class="fullwidth-table"
|-
| {{StatusHealthy|status=&nbsp;}}
| Healthy: feature is progressing as expected.
|-
| {{StatusBlocked|status=&nbsp;}}
| Blocked: feature is currently blocked, but not yet at risk of missing this release.
|-
| {{StatusAtRisk|status=&nbsp;}}
| 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.
|}
 
__NOTOC__
 
Please remove this line and any non-relevant categories below.  Add whatever other categories you feel are appropriate.
 
[[Category:Features]]
[[Category:Firefox]]
[[Category:Performance]]
[[Category:Polish]]
[[Category:Priority 1]]
[[Category:Priority 2]]
[[Category:Priority 3]]
[[Category:Unprioritized]]

Latest revision as of 07:19, 22 July 2013

Please use "Edit with form" above to edit this page.

Status

Sharing textures cross-process for Electrolysis
Stage Development
Status In progress
Release target Q4 of 2011.
Health OK
Status note Mostly done.

{{#set:Feature name=Sharing textures cross-process for Electrolysis

|Feature stage=Development |Feature status=In progress |Feature version=Q4 of 2011. |Feature health=OK |Feature status note=Mostly done. }}

Team

Product manager Chris Blizzard
Directly Responsible Individual Chris Jones
Lead engineer Chris Jones
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Mihai Morar
UX lead `
Product marketing lead `
Operations lead `
Additional members `

{{#set:Feature product manager=Chris Blizzard

|Feature feature manager=Chris Jones |Feature lead engineer=Chris Jones |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=Mihai Morar |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=` }}

Open issues/risks

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.

Stage 1: Definition

1. Feature overview

`

2. Users & 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)

3. Dependencies

`

4. 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.
  • No major performance regressions on any supported platform.

Non-goals

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

Stage 2: Design

5. Functional specification

`

6. User experience design

`

Stage 3: Planning

7. Implementation plan

`

8. Reviews

Security review

`

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

`

Operations review

`

Stage 4: Development

9. Implementation

Next Steps

  • 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

Stage 5: Release

10. Landing criteria

` {{#set:Feature open issues and risks=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. |Feature overview=` |Feature users and 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)

|Feature dependencies=` |Feature 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.
  • No major performance regressions on any supported platform.

|Feature non-goals=* Cross-process WebGL.

  • Anything related to the Azure API.

|Feature functional spec=` |Feature ux design=` |Feature implementation plan=` |Feature security review=` |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=` |Feature operations review=` |Feature implementation notes===== Next Steps ====

  • 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

|Feature landing criteria=` }}

Feature details

Priority P1
Rank 999
Theme / Goal `
Roadmap Platform
Secondary roadmap `
Feature list Platform
Project Responsiveness
Engineering team Graphics

{{#set:Feature priority=P1

|Feature rank=999 |Feature theme=` |Feature roadmap=Platform |Feature secondary roadmap=` |Feature list=Platform |Feature project=Responsiveness |Feature engineering team=Graphics }}

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-needed bug 744944
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` Test Plan
User experience ` `
Product marketing ` `
Operations ` `

{{#set:Feature products status=`

|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=sec-review-needed |Feature security health=Blocked |Feature security notes=bug 744944 |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=Test Plan |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}