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)

57 Branch
x86_64
Linux
defect
Not set
normal

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.
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Whiteboard: [gfx-noted]
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).
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
(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.
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.
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
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 → ---
Status: REOPENED → ASSIGNED
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
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
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 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 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
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.
*managed
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.
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
Status: ASSIGNED → RESOLVED
Closed: 7 years ago6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: