Closed
Bug 1401634
Opened 7 years ago
Closed 6 years ago
[layers.gpu-process.enabled = true] WebRender Fails When GPU Process Is Enabled On Linux
Categories
(Core :: Widget: Gtk, defect)
Tracking
()
RESOLVED
FIXED
mozilla63
Tracking | Status | |
---|---|---|
firefox63 | --- | fixed |
People
(Reporter: kah0922, Assigned: stransky)
References
(Blocks 1 open bug)
Details
(Whiteboard: [gfx-noted])
Attachments
(1 file)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0
Build ID: 20170920100426
Steps to reproduce:
Enable:
gfx.webrender.enabled
layers.gpu-process.enabled
gfx.webrendest.enabled
gfx.webrender.layers-free
gfx.webrender.blob-images
Actual results:
Compositing swittches to OpenGL with the following failure logs:
(#0) Error Compositors might be mixed (5,2)
(#1) GP+[GFX1-]: Failed GL context creation for WebRender: 0
(#2) GP+[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
Expected results:
WebRender and the external GPU process should work with each other.
Reporter | ||
Updated•7 years ago
|
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Updated•7 years ago
|
Blocks: stage-wr-next
Updated•7 years ago
|
Whiteboard: [gfx-noted]
Comment 1•7 years ago
|
||
Nightly 57 x64 20170920100426 de_DE @ Debian Testing (KDE / Radeon RX 480)
My GPU process works. So this might be driver/distro-specific (or another pref).
Reporter | ||
Comment 2•7 years ago
|
||
I reproduced this on my Intel laptop (The previous result was on an RX 460 and both computers run openSUSE Tumbleweed).
The command line shows:
[GFX1-]: Failed GL context creation for WebRender: 0
[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
[GFX1-]: Invalid draw target(s) 0 and 0
[GFX1-]: Invalid draw target(s) 0 and 0
Reporter | ||
Comment 3•7 years ago
|
||
(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment #1)
> Nightly 57 x64 20170920100426 de_DE @ Debian Testing (KDE / Radeon RX 480)
> My GPU process works. So this might be driver/distro-specific (or another
> pref).
The GPU process still works even after WebRender fails.
Comment 4•7 years ago
|
||
Do you have (manually) set extensions.webextensions.remote to true? If yes, this might be bug 1406230.
This is what I get:
> Error Compositors might be mixed (5,2)
> GP+[GFX1-]: Failed GL context creation for WebRender: 0
> GP+[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
> GP+[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
and it's exactly the same you have in comment 0.
Reporter | ||
Updated•7 years ago
|
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Assignee | ||
Comment 6•6 years ago
|
||
I can clearly reproduce that without crashes, there's the related log entry:
[GPU 31151, Renderer] WARNING: [GLX] XGetWindowAttributes() failed: file /home/komat/tmp676-trunk-gtk3/src2/gfx/gl/GLContextProviderGLX.cpp, line 951
Crash Annotation GraphicsCriticalError: |[G0][GFX1-]: Failed GL context creation for WebRender: 0 (t=23.2764) [GFX1-]: Failed GL context creation for WebRender: 0
Reopening to work on that here.
Assignee: nobody → stransky
Status: RESOLVED → REOPENED
Ever confirmed: true
Resolution: DUPLICATE → ---
Assignee | ||
Updated•6 years ago
|
Status: REOPENED → ASSIGNED
Assignee | ||
Comment 7•6 years ago
|
||
Bug 1406230 has to be fixed first.
Depends on: 1406230
Summary: WebRender Fails When GPU Process Is Enabled On Linux → [layers.gpu-process.enabled = true] WebRender Fails When GPU Process Is Enabled On Linux
Assignee | ||
Comment 8•6 years ago
|
||
More log:
[GPU 10986, Renderer] WARNING: [GLX] XGetWindowAttributes() failed: file /home/komat/tmp676-trunk-gtk3/src2/gfx/gl/GLContextProviderGLX.cpp, line 951
Crash Annotation GraphicsCriticalError: |[G0][GFX1-]: Failed GL context creation for WebRender: 0 (t=21.9997) [GFX1-]: Failed GL context creation for WebRender: 0
[GPU 10986, Compositor] WARNING: Possibly dropping task posted to updater thread: file /home/komat/tmp676-trunk-gtk3/src2/gfx/layers/apz/src/APZUpdater.cpp, line 416
[GPU 10986, Compositor] WARNING: [GLX] XGetWindowAttributes() failed: file /home/komat/tmp676-trunk-gtk3/src2/gfx/gl/GLContextProviderGLX.cpp, line 951
[GPU 10986, Compositor] WARNING: Failed to create CompositorOGL context: file /home/komat/tmp676-trunk-gtk3/src2/gfx/layers/opengl/CompositorOGL.cpp, line 243
Crash Annotation GraphicsCriticalError: |[G0][GFX1-]: Failed GL context creation for WebRender: 0 (t=21.9997) |[G1][GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT (t=22.0399) [GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
Assignee | ||
Comment 9•6 years ago
|
||
This may be actually a widget bug as the wrong Window is passed to GtkCompositorWidget::GtkCompositorWidget() - the XGetWindowAttributes() fails also here.
Component: Graphics: WebRender → Widget: Gtk
Comment hidden (mozreview-request) |
Comment 11•6 years ago
|
||
mozreview-review |
Comment on attachment 8995483 [details]
Bug 1401634 - Flush window XID to X server before we pass the XID to gpu process,
https://reviewboard.mozilla.org/r/259914/#review266980
::: commit-message-5c3ea:1
(Diff revision 1)
> +Bug 1401634 - flush X server connectin before we pass the X window to gpu process, r?jhorak
typo: connectin
What do you flush exactly and what for? Could you please elaborate more in the commit message and comment in the sources? Thanks.
Attachment #8995483 -
Flags: review?(jhorak) → review+
Comment 12•6 years ago
|
||
mozreview-review |
Comment on attachment 8995483 [details]
Bug 1401634 - Flush window XID to X server before we pass the XID to gpu process,
https://reviewboard.mozilla.org/r/259914/#review267002
::: widget/gtk/nsWindow.cpp:7200
(Diff revision 1)
> + if (mXDisplay && mXWindow != X11None)
> + XFlush(mXDisplay);
> +
drive-by nit: please use braces to conform to mozilla style
Comment 13•6 years ago
|
||
nouveau -- NV136, 3.1 Mesa 18.1.4
I made a local build of m-c with the proposed change from bug 1406230 comment 16 and with attachment 8995483 [details].
Then I ran:
./mach run --enable-crash-reporter --temp-profile --setpref gfx.webrender.all=true --setpref layers.gpu-process.force-enabled=true https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/
The problem with OOP Webextensions + GPU process + WebRender seems to be fixed. Thank you <3
But it does not fix bug 1478454. I manged to make a debug log and will it upload there.
Comment 14•6 years ago
|
||
*managed
Comment hidden (mozreview-request) |
Assignee | ||
Comment 16•6 years ago
|
||
mozreview-review-reply |
Comment on attachment 8995483 [details]
Bug 1401634 - Flush window XID to X server before we pass the XID to gpu process,
https://reviewboard.mozilla.org/r/259914/#review267002
> drive-by nit: please use braces to conform to mozilla style
fixed, Thanks.
Comment 17•6 years ago
|
||
Pushed by stransky@redhat.com:
https://hg.mozilla.org/integration/autoland/rev/bb6817615317
Flush window XID to X server before we pass the XID to gpu process, r=jhorak
Comment 18•6 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 7 years ago → 6 years ago
status-firefox63:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
You need to log in
before you can comment on or make changes to this bug.
Description
•