Closed Bug 1435586 Opened 7 years ago Closed 6 years ago

gpu process + xrender = Crash in [@ gfxPlatform::Init | mozilla::layers::X11DataTextureSourceBasic::Update ]

Categories

(Core :: Graphics, defect, P3)

x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox-esr60 --- disabled
firefox60 --- disabled
firefox67 --- disabled
firefox68 --- disabled
firefox69 --- disabled

People

(Reporter: jan, Assigned: aosmond)

References

(Regression)

Details

(Keywords: crash, nightly-community, regression, Whiteboard: [gfx-noted])

Crash Data

Attachments

(1 file)

This is an exotic configuration, so this isn't particularly important, but Nicolas may want to know about this.
Flags: needinfo?(nical.bugzilla)
Whiteboard: [gfx-noted]
(bug 1180942) I assume removing XRender will be anyway part of removing support for GTK2? (https://public.etherpad-mozilla.org/p/gfx-code-kill)
Flags: needinfo?(nical.bugzilla)

I had totally forgotten about this bug. Crashes already happened before bug 1549965 landed.
Still reproducible when manually enabling xrender: bp-e0e9b6a1-6041-4b21-b000-338500190601
Solution: Disable gfx.xrender.enabled. It is disabled by default.

Severity: normal → critical
Crash Signature: [@ gfxPlatform::Init | mozilla::layers::X11DataTextureSourceBasic::Update ]
See Also: → 1549965

When I get a moment, I will write a patch to switch uses of gfxPlatform::GetPlatform()->CreateDrawTargetForSurface to gfxPlatform::CreateDrawTargetForSurface. We don't actually need to initialize gfxPlatform to use this method.

Assignee: nobody → aosmond
Regressed by: 1549965
Keywords: regression

gfxPlatform::GetSourceSurfaceForSurface and CreateDrawTargetForSurface
are both static methods that we sometimes use via the pattern
gfxPlatform::GetPlatform()->... This is problematic because this forces
gfxPlatform to be initialized in the process, and in the GPU process, we
don't support this. It should be safe to call these methods without
initializing gfxPlatform, so this patch removes the GetPlatform() call.

GetSourceSurfaceForSurface may end up initializing gfxPlatform anyways,
depending on whether or not a DrawTarget was given. This should not be a
concern for the crashes observed in bug 1435586.

This moved up to the #5 top crash on 69 nightly. Crashes started increasing in the 5-31 build.

Pushed by aosmond@gmail.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/611d4651e151 Use static gfxPlatform methods directly instead of requiring initialization. r=kats
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: