Closed
Bug 1285561
Opened 8 years ago
Closed 8 years ago
gdk_cairo_create is called off the main thread
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
mozilla50
Tracking | Status | |
---|---|---|
firefox50 | --- | fixed |
People
(Reporter: acomminos, Assigned: acomminos)
References
Details
Attachments
(1 file)
When we are unable to acquire a MIT-SHM backed draw target, we use gdk_cairo_create on the compositor thread to create a cairo context. gdk_cairo_create touches internal GDK state and should not be called off the main thread. I believe it is causing crashes such as; https://public-artifacts.taskcluster.net/M_kK7CwEReSbobk_kjr-yw/0/public/logs/live_backing.log
Assignee | ||
Comment 1•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/63546/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/63546/
Attachment #8769852 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 2•8 years ago
|
||
This patch refactors swapping to an X11 window on GTK. Some things of interest; - Adds WindowSurface class which fills the void of an opaque native SourceSurface that can be locked and drawn to. May be useful on other platforms. - SHM backend currently wraps nsShmImage, but there are plans to replace with an XCB-based implementation. - Uses BufferMode::BUFFER_NONE for all cases, allowing the removal of BufferMode::BUFFERED. - Native cairo is avoided entirely. This removes the wayland path, which breaks sometimes anyway due to gdk_cairo_create being unreliable off the main thread. We're going to focus on EGL as a wayland target for now once we have CSD anyway. Thanks!
Assignee | ||
Comment 3•8 years ago
|
||
Comment on attachment 8769852 [details] Bug 1285561 - Refactor surface blitting on X11. Review request updated; see interdiff: https://reviewboard.mozilla.org/r/63546/diff/1-2/
Assignee | ||
Comment 4•8 years ago
|
||
FWIW, in the future we could also add a Wayland WindowSurface backend using wl_shm.
Comment 5•8 years ago
|
||
https://reviewboard.mozilla.org/r/63546/#review60416 ::: widget/gtk/nsWindow.h:458 (Diff revision 2) > > // for touch event handling > nsRefPtrHashtable<nsPtrHashKey<GdkEventSequence>, mozilla::dom::Touch> mTouches; > #endif > > + RefPtr<mozilla::widget::WindowSurface> mWindowSurface; It doesn't seem like we need to share these things so lets not refcount them.
Assignee | ||
Comment 6•8 years ago
|
||
Comment on attachment 8769852 [details] Bug 1285561 - Refactor surface blitting on X11. Review request updated; see interdiff: https://reviewboard.mozilla.org/r/63546/diff/2-3/
Comment 7•8 years ago
|
||
Comment on attachment 8769852 [details] Bug 1285561 - Refactor surface blitting on X11. https://reviewboard.mozilla.org/r/63546/#review61158 This is a great looking patch.
Attachment #8769852 -
Flags: review?(jmuizelaar) → review+
Pushed by acomminos@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/586815d86b50 Refactor surface blitting on X11. r=jrmuizel
Comment 9•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/586815d86b50
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
You need to log in
before you can comment on or make changes to this bug.
Description
•