Closed Bug 1644678 Opened 4 months ago Closed 4 months ago

Assertion failure: !(aFlags & TextureFlags::DEALLOCATE_CLIENT) when running webgl on android with webrender enabled

Categories

(Core :: Graphics: WebRender, defect)

Unspecified
Android
defect

Tracking

()

RESOLVED FIXED
mozilla79
Tracking Status
firefox79 --- fixed

People

(Reporter: jnicol, Assigned: jnicol)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

When running any webgl page (such as https://get.webgl.org/) with a debug geckoview build and webrender enabled, we hit this assertion.

We set the DEALLOCATE_CLIENT flag here.

The flag is definitely required for SharedSurface_EGLImage, because we need to ensure the data is destroyed on the client side, after the host has forgotten it. (That was bug 1210444).

But for SharedSurface_SurfaceTexture I don't think that is necessary - when the client side is destroyed we will call SurfaceAllocator::DisposeSurface(), which will simply release a reference to the GeckoSurfaceTexture. The remaining reference held by the host side will keep it alive until it is no longer needed by the host.

Bugzilla has also helpfully suggested bug 1251523 as relevant, in which we removed the flag from AndroidSurfaceTextureData.

The flag is not required for SharedSurface_SurfaceTexture, as
GeckoSurfaceTexture is reference counted. When the GeckoSurface is
disposed on the client side it simply decrements the refcount of the
GeckoSurfaceTexture on the host side, which will remain alive until
the TextureHost's reference is also dropped.

Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/15beac7ebecb
Don't set DEALLOCATE_CLIENT flag for SharedSurface_SurfaceTextures. r=sotaro
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla79
You need to log in before you can comment on or make changes to this bug.