Platform/Features/ElectrolysisTextureSharing: Difference between revisions

no edit summary
(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]]
Confirmed users
138

edits