Closed Bug 1319521 Opened 8 years ago Closed 8 years ago

Fix GLXBadDrawable abort during running reftest on linux, take 2

Categories

(Core :: Graphics: WebRender, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla54

People

(Reporter: kats, Assigned: kats)

References

Details

(Whiteboard: [gfx-noted])

+++ This bug was initially created as a clone of Bug #1319303 +++ Attempting to run reftests in automation sometimes results in this crash where we try to MakeCurrent() on the GLContext after the widget has been torn down. Bug 1319303 seemed to help somewhat but didn't fix it entirely.
There seems to be a consistent theme across all these crashes - it seems like the parent WebRenderBridgeParent is getting destroyed before the "child" WebRenderBridgeParent that corresponds to the content process. This is the same root cause as bug 1319510 and bug 1319508, and is probably the root cause here as well. What's happening is that the "child" WRBP holds a RefPtr to the GLContext and prevents it from getting torn down when the parent WRBP is destroyed. The GLContext is destroyed later, at which point the widget is no longer valid. I think we should take a look at how normal builds (without webrender) ensure that the child stuff is torn down before the parent stuff. It's likely I missed something when adding the WR codepaths for e10s.
That looks better. No GLXBadDrawable crashes, just regular test failures. I'll land the fixes.
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/projects/graphics/rev/33f60336b599 Send PWebRenderBridge::Destroy earlier. r=gfx? https://hg.mozilla.org/projects/graphics/rev/7aaf9790febb Properly tear down the LayerTreeState for content. r=gfx?
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
You need to log in before you can comment on or make changes to this bug.