Closed Bug 1750234 Opened 3 years ago Closed 3 years ago

Ensure Surfaces get reallocated after GPU process crash on Android

Categories

(GeckoView Graveyard :: Sandboxing, task, P3)

Unspecified
Android

Tracking

(firefox98 fixed)

RESOLVED FIXED
98 Branch
Tracking Status
firefox98 --- fixed

People

(Reporter: jnicol, Assigned: jnicol)

References

Details

Attachments

(1 file)

Spin off from bug 1742569. That one landed basic support for the SurfaceAllocator to exist in the GPU process, allowing video and webgl to work on Android with the GPU process enabled.

This bug will add support for handling a GPU process crash. We need the SurfaceAllocator to reconnect to the new process, and video and webgl to gracefully reallocate their surfaces

Make the SurfaceAllocator save a reference to all Surfaces it has
allocated. When the connection to the remote allocator dies, mark all
of those surfaces as released.

Make GLScreenBuffer (webgl) and RemoteVideoDecoder (video) detect when
the Surfaces they are outputting into have been released, and allocate
new ones. For video decoding on Android Marshmallow and later, we can
use MediaCodec.setOutputSurface to swap the output surface
dynamically. On older Android versions we must reconfigure the codec.

Assignee: nobody → jnicol
Status: NEW → ASSIGNED
Pushed by jnicol@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/29df96468463 Handle GPU process crash when rendering video and webgl on Android. r=jgilbert,jolin
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
Regressions: 1759045

Moving GPU process bugs to the new GeckoView::Sandboxing component.

Component: General → Sandboxing
Product: GeckoView → GeckoView Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: