Closed
Bug 1331109
Opened 8 years ago
Closed 3 years ago
Enable GPU Process on Android
Categories
(GeckoView :: Sandboxing, defect, P5)
Tracking
(firefox-esr91 wontfix, firefox53 wontfix, firefox98 wontfix, firefox99 wontfix, firefox100 fixed)
RESOLVED
FIXED
100 Branch
People
(Reporter: rbarker, Assigned: jnicol)
References
(Depends on 1 open bug)
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
Enabling the GPU process on Android would isolate GPU driver crashes and make them recoverable.
Reporter | ||
Updated•8 years ago
|
Assignee: nobody → rbarker
Reporter | ||
Updated•8 years ago
|
Reporter | ||
Updated•8 years ago
|
Depends on: dynamic-toolbar-3
Priority: -- → P5
Updated•6 years ago
|
Product: Firefox for Android → GeckoView
Reporter | ||
Updated•5 years ago
|
Assignee: rbarker → nobody
Comment 1•4 years ago
|
||
Some comments and questions around android Surface with GPU process.
- [1] GeckoProcessManager needs to create GPU process
- [2] Move SurfaceAllocatorService to GPU process
- GonkSurface is used for WebGL and video decoding by MediaDecoder.
- SurfaceAllocatorService allocates SurfaceTexture(BufferQueue/GLConsumer) in a process that the SurfaceAllocatorService exists.
- Then it nees to be created in a process that Compositor/WebRender exists.
- SurfaceTexture is used to bind to GL texture to SurfaceTexture. android Surface just owns buffer produder. SurfaceTexture is buffer consumer(GLConsumer).
- https://github.com/sotaroikeda/firefox-diagrams/blob/master/mobile/mobile_SurfaceAllocatorService_68.pdf
- https://github.com/sotaroikeda/firefox-diagrams/blob/master/mobile/mobile_CodecProxy_68.pdf
- https://github.com/sotaroikeda/android-diagrams/blob/master/graphics/ANativeWindow_5.0.pdf
- [3] Android surface of SurfaceView needs to be delivered from Parent process to GPU process via android Binder ipc.
- Compositor/WebRender create EGLSurface from the Surface and do rendering to it.
- https://github.com/sotaroikeda/firefox-diagrams/blob/master/mobile/mobile_GeckoSession_68.pdf
- [4] Needs to enable SharedSurface_SurfaceTexture in GPU process.
- SharedSurface_SurfaceTexture is disabled for now even in content process(Bug 1654459) since Bug 1632249[WebGL compositing refactor (for out-of-process)].
- It is necessary for performance.
- [5] How to implement video frame upload to WebGL?
- GonkSurface is used for video decoding. SurfaceTexture of GonkSurface does not exist in content process.
- Then current implementation allocates copyback SurfaceTexture in content process and copyback the content to content process.
- If GPU process WebGL is enabled, it might not necessary to use copyback SurfaceTexture.
- But SurfaceTexture has a limination. It could bind to one GL context at a time.
- https://github.com/sotaroikeda/firefox-diagrams/blob/master/mobile/mobile_SurfaceAllocatorService_68.pdf
- [6] How to handle readback of WebGL in content process?
- I do not know how current GPU process WebGL handles it. It seems necessary when BasicLayerMnager is used in content process.
- [7] Do we need to add support of readback of decoded video?
- current gecko does not support it because of surface texture limitation.
- [8] We might need to think about merging GPU process and MediaManager(:media) process for reducing memory usage.
Updated•3 years ago
|
OS: Unspecified → Android
Assignee | ||
Comment 2•3 years ago
|
||
Adding bug 1749745 as blocking, as occasionally it results in a freeze following a GPU process restart
Depends on: 1749745
Assignee | ||
Comment 3•3 years ago
|
||
Updated•3 years ago
|
Assignee: nobody → jnicol
Status: NEW → ASSIGNED
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f93a4ff5c045
Enable GPU process on Android. r=gfx-reviewers,aosmond
Comment 5•3 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
status-firefox99:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 99 Branch
Updated•3 years ago
|
Comment 6•3 years ago
|
||
Backed out for causing Bug 1644486.
Backed out as requested: https://hg.mozilla.org/integration/autoland/rev/3e7157dac2f87609f75ae4cb2a3177e13737b6c5
Status: RESOLVED → REOPENED
status-firefox99:
fixed → ---
Flags: needinfo?(jnicol)
Flags: needinfo?(agi)
Resolution: FIXED → ---
Target Milestone: 99 Branch → ---
Comment 7•3 years ago
|
||
Backout has been merged to central
Comment 8•3 years ago
|
||
We noticed a regression around the time the GPU process was introduced which went away when the GPU process was disabled so I filed bug 1756700 to address that.
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4d8f7af7950c
Enable GPU process on Android. r=gfx-reviewers,aosmond
Comment 10•3 years ago
|
||
Backed out on @Jamie's request
Backout link: https://hg.mozilla.org/integration/autoland/rev/aef9bc4794550cde08b11fad57c5c0c7ea87ac47
Comment 11•3 years ago
|
||
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/39c1f452042d
Enable GPU process on Android. r=gfx-reviewers,aosmond
Comment 12•3 years ago
|
||
bugherder |
Status: REOPENED → RESOLVED
Closed: 3 years ago → 3 years ago
status-firefox100:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
Assignee | ||
Updated•3 years ago
|
Flags: needinfo?(jnicol)
Updated•3 years ago
|
Comment 13•2 years ago
|
||
Moving GPU process bugs to the new GeckoView::Sandboxing component.
Component: General → Sandboxing
You need to log in
before you can comment on or make changes to this bug.
Description
•