Bug 1555544 - Remove calling TextureClient::CancelWaitForNotifyNotUsed() r=jgilbert

Flickering happened when SharedSurface_ANGLEShareHandle is destroyed before RenderDXGITextureHostOGL::EnsureLockable() is called on Render thread. RenderDXGITextureHostOGL failed at device->OpenSharedResource() . In this case, SharedSurface_ANGLEShareHandle failed to render. Then black was rendered.

If  TextureClient::CancelWaitForNotifyNotUsed() is not called, the refcount is kept until the host side ends its usage. The refcount is removed by CompositorBridgeChild::NotifyNotUsed().

Depends on D33265

Differential Revision: https://phabricator.services.mozilla.com/D33143

--HG--
extra : moz-landing-system : lando
This commit is contained in:
sotaro 2019-05-31 12:35:42 +00:00
parent 16ce9c4a30
commit e9e8848ea1
2 changed files with 0 additions and 4 deletions

View file

@ -276,7 +276,6 @@ SurfaceFactory::~SurfaceFactory() {
while (!mRecycleTotalPool.empty()) {
RefPtr<layers::SharedSurfaceTextureClient> tex = *mRecycleTotalPool.begin();
StopRecycling(tex);
tex->CancelWaitForNotifyNotUsed();
}
MOZ_RELEASE_ASSERT(mRecycleTotalPool.empty(),

View file

@ -498,9 +498,6 @@ void CanvasClientSharedSurface::Updated(wr::RenderRoot aRenderRoot) {
void CanvasClientSharedSurface::OnDetach() { ClearSurfaces(); }
void CanvasClientSharedSurface::ClearSurfaces() {
if (mFront) {
mFront->CancelWaitForNotifyNotUsed();
}
mFront = nullptr;
mNewFront = nullptr;
mShSurfClient = nullptr;