Open Bug 1836397 Opened 2 years ago Updated 1 year ago

[Wayland] SW WR OpenGL startup crash on Wayland

Categories

(Core :: Graphics: WebRender, defect)

x86_64
Linux
defect

Tracking

()

ASSIGNED
Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- wontfix
firefox113 --- unaffected
firefox114 --- unaffected
firefox115 --- wontfix
firefox116 --- wontfix
firefox117 --- wontfix
firefox118 --- wontfix

People

(Reporter: jan, Assigned: aosmond, NeedInfo)

References

(Blocks 2 open bugs, Regression)

Details

(Keywords: crash, nightly-community, regression)

Crash Data

Attachments

(1 obsolete file)

Tested on KDE Wayland, Debian Testing, Intel.

=================================================================
==102241==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f32e5f5804b bp 0x7ffc6fa69b70 sp 0x7ffc6fa695a0 T0)
==102241==The signal is caused by a WRITE memory access.
==102241==Hint: address points to the zero page.
    #0 0x7f32e5f5804b in gfxPlatform::FallbackFromAcceleration(mozilla::gfx::FeatureStatus, char const*, nsTSubstring<char> const&, bool) /builds/worker/checkouts/gecko/gfx/thebes/gfxPlatform.cpp:3744:5
    #1 0x7f32e6119ea1 in mozilla::gfx::GPUProcessManager::FallbackFromAcceleration(mozilla::wr::WebRenderError, nsTString<char> const&) /builds/worker/checkouts/gecko/gfx/ipc/GPUProcessManager.cpp:613:12
    #2 0x7f32e611cc4c in mozilla::gfx::GPUProcessManager::DisableWebRenderConfig(mozilla::wr::WebRenderError, nsTString<char> const&) /builds/worker/checkouts/gecko/gfx/ipc/GPUProcessManager.cpp:655:22
    #3 0x7f32e611e413 in DisableWebRender /builds/worker/checkouts/gecko/gfx/ipc/GPUProcessManager.cpp:673:7
    #4 0x7f32e611e413 in mozilla::gfx::GPUProcessManager::NotifyWebRenderError(mozilla::wr::WebRenderError) /builds/worker/checkouts/gecko/gfx/ipc/GPUProcessManager.cpp:693:3
    #5 0x7f32e5cad4da in mozilla::layers::CompositorManagerChild::RecvNotifyWebRenderError(mozilla::wr::WebRenderError const&&) /builds/worker/checkouts/gecko/gfx/layers/ipc/CompositorManagerChild.cpp:250:29
    #6 0x7f32e5a63faf in mozilla::layers::PCompositorManagerChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PCompositorManagerChild.cpp:571:90
    #7 0x7f32e4cc2230 in mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1811:25
    #8 0x7f32e4cbeee4 in mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message, mozilla::DefaultDelete<IPC::Message>>) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1736:9
    #9 0x7f32e4cbff43 in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1536:3
    #10 0x7f32e4cc0ea2 in mozilla::ipc::MessageChannel::MessageTask::Run() /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1634:14
    #11 0x7f32e32460fa in mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:555:16
    #12 0x7f32e32379e1 in mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:879:26
    #13 0x7f32e32345f5 in mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:702:15
    #14 0x7f32e3234e34 in mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:491:36
    #15 0x7f32e324b131 in operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:218:37
    #16 0x7f32e324b131 in mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:548:5
    #17 0x7f32e327678b in nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1240:16
    #18 0x7f32e32844e2 in NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:479:10
    #19 0x7f32e4cca848 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21
    #20 0x7f32e4b1ba3a in RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:368:10
    #21 0x7f32e4b1ba3a in RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:361:3
    #22 0x7f32e4b1ba3a in MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:343:3
    #23 0x7f32edb21ccc in nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27
    #24 0x7f32f31876b5 in nsAppStartup::Run() /builds/worker/checkouts/gecko/toolkit/components/startup/nsAppStartup.cpp:295:30
    #25 0x7f32f348c1ea in XREMain::XRE_mainRun() /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5659:22
    #26 0x7f32f348e2e7 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5859:8
    #27 0x7f32f348f469 in XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5915:21
    #28 0x55e36d32bb43 in do_main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:227:22
    #29 0x55e36d32bb43 in main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:445:16
    #30 0x7f32fd32f189  (/lib/x86_64-linux-gnu/libc.so.6+0x27189) (BuildId: 0401bd8da6edab3e45399d62571357ab12545133)
    #31 0x7f32fd32f244 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x27244) (BuildId: 0401bd8da6edab3e45399d62571357ab12545133)
    #32 0x55e36d255688 in _start (/home/darkspirit/firefox-asan/firefox-bin+0xa7688) (BuildId: ee146fb816bf808656567d7aea7a8eeaa5d66f96)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /builds/worker/checkouts/gecko/gfx/thebes/gfxPlatform.cpp:3744:5 in gfxPlatform::FallbackFromAcceleration(mozilla::gfx::FeatureStatus, char const*, nsTSubstring<char> const&, bool)
==102241==ABORTING

Crash report: https://crash-stats.mozilla.org/report/index/aaf1a669-0af0-443c-a716-e970f0230601

MOZ_CRASH Reason: MOZ_CRASH(Fallback configurations exhausted)

Top 10 frames of crashing thread:

0  libxul.so  gfxPlatform::FallbackFromAcceleration  gfx/thebes/gfxPlatform.cpp:3744
1  libxul.so  mozilla::gfx::GPUProcessManager::FallbackFromAcceleration  gfx/ipc/GPUProcessManager.cpp
2  libxul.so  mozilla::gfx::GPUProcessManager::DisableWebRenderConfig  gfx/ipc/GPUProcessManager.cpp:655
3  libxul.so  mozilla::gfx::GPUProcessManager::DisableWebRender  gfx/ipc/GPUProcessManager.cpp:673
4  libxul.so  mozilla::gfx::GPUProcessManager::NotifyWebRenderError  gfx/ipc/GPUProcessManager.cpp:693
5  libxul.so  mozilla::layers::CompositorManagerChild::RecvNotifyWebRenderError  gfx/layers/ipc/CompositorManagerChild.cpp:250
6  libxul.so  mozilla::layers::PCompositorManagerChild::OnMessageReceived  ipc/ipdl/PCompositorManagerChild.cpp:571
7  libxul.so  mozilla::ipc::MessageChannel::DispatchAsyncMessage  ipc/glue/MessageChannel.cpp:1811
7  libxul.so  mozilla::ipc::MessageChannel::DispatchMessage  ipc/glue/MessageChannel.cpp:1736
8  libxul.so  mozilla::ipc::MessageChannel::RunMessage  ipc/glue/MessageChannel.cpp:1536

mozregression --launch 2023-06-01 --pref gfx.webrender.software:true gfx.webrender.software.opengl:true -B debug -P stdout

0:28.45 INFO: b'[96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:28.45 INFO: b'[96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:28.52 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:28.56 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:28.56 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:29.17 INFO: b'[WARN rkv::backend::impl_safe::environment] load_ratio() is irrelevant for this storage backend.'
0:29.82 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:29.93 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:29.93 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/base/nsPresContext.cpp:1202'
0:29.93 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/base/nsPresContext.cpp:1202'
0:29.93 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/base/nsPresContext.cpp:1202'
0:29.94 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:30.05 INFO: b"[Socket 96633, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpHandler.cpp:371"
0:30.75 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/base/nsPresContext.cpp:1202'
0:30.75 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/base/nsPresContext.cpp:1202'
0:30.75 INFO: b'[Parent 96548, Main Thread] WARNING: NS_ENSURE_TRUE(mPresShell) failed: file /builds/worker/checkouts/gecko/layout/base/nsPresContext.cpp:1202'
0:30.79 INFO: b'[Parent 96548, GMPThread] WARNING: Failed to delete GMP storage directory: file /builds/worker/checkouts/gecko/dom/media/gmp/GMPServiceParent.cpp:1759'
0:30.84 INFO: b'[Child 96652, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:30.87 INFO: b'[Child 96652, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:30.87 INFO: b'[Child 96652, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:30.93 INFO: b'[Child 96652, Main Thread] WARNING: Fallback to FallbackRenderer: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp:2689'
0:30.93 INFO: b'[Child 96652, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:30.94 INFO: b'[Child 96652, Main Thread] WARNING: Fallback to FallbackRenderer: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp:2689'
0:30.94 INFO: b'[Child 96652, Main Thread] WARNING: Fallback to FallbackRenderer: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp:2689'
0:30.95 INFO: b'[Child 96652, Main Thread] WARNING: Fallback to FallbackRenderer: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp:2689'
0:30.95 INFO: b'[Child 96652, Main Thread] WARNING: Fallback to FallbackRenderer: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp:2689'
0:31.08 INFO: b'[Child 96677, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:31.09 INFO: b'Initializing context 0x7efda1097970 surface (nil) on display 0x7efda12b8b00'
0:31.09 INFO: b'GL_VENDOR: Intel'
0:31.09 INFO: b'mVendor: Intel'
0:31.09 INFO: b'GL_RENDERER: Mesa Intel(R) Iris(R) Graphics 6100 (BDW GT3)'
0:31.09 INFO: b'mRenderer: Unknown'
0:31.09 INFO: b'mIsMesa: 1'
0:31.09 INFO: b'[Parent 96548, Renderer] WARNING: robust_buffer_access_behavior marked as unsupported: file /builds/worker/checkouts/gecko/gfx/gl/GLContextFeatures.cpp:638'
0:31.09 INFO: b'[Parent 96548, Renderer] WARNING: Robustness supported, strategy is not LOSE_CONTEXT_ON_RESET!: file /builds/worker/checkouts/gecko/gfx/gl/GLContext.cpp:999'
0:31.09 INFO: b'[Parent 96548, Renderer] WARNING: robustness marked as unsupported: file /builds/worker/checkouts/gecko/gfx/gl/GLContextFeatures.cpp:638'
0:31.10 INFO: b'[WARN webrender::renderer::init] asking to enable_gpu_markers but no supporting extension was found'
0:31.11 INFO: b'[Child 96677, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:31.11 INFO: b'[Child 96677, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/toolkit/xre/nsXREDirProvider.cpp:475'
0:31.47 INFO: b'[Parent 96548, Renderer] WARNING: Failed to get native window: file /builds/worker/checkouts/gecko/gfx/gl/GLContextProviderEGL.cpp:505'
0:31.60 INFO: b'[GFX1-]: Handling webrender error 3'
0:31.60 INFO: b'Hit MOZ_CRASH(Fallback configurations exhausted) at /builds/worker/checkouts/gecko/gfx/thebes/gfxPlatform.cpp:3744'
0:31.60 INFO: b'#01: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x58c37a5]'
0:31.60 INFO: b'#02: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5945a25]'
0:31.60 INFO: b'#03: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x594695b]'
0:31.60 INFO: b'#04: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5946aa6]'
0:31.60 INFO: b'#05: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5946db6]'
0:31.60 INFO: b'#06: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5806235]'
0:31.60 INFO: b'#07: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x575e9bc]'
0:31.60 INFO: b'#08: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5362d7f]'
0:31.60 INFO: b'#09: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5361d99]'
0:31.61 INFO: b'#10: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5362134]'
0:31.61 INFO: b'#11: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5362746]'
0:31.61 INFO: b'#12: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4bb0395]'
0:31.61 INFO: b'#13: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4bac61c]'
0:31.61 INFO: b'#14: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4bab7f6]'
0:31.61 INFO: b'#15: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4baba83]'
0:31.61 INFO: b'#16: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4bb3b7f]'
0:31.61 INFO: b'#17: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4bc3762]'
0:31.61 INFO: b'#18: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x4bc7d66]'
0:31.61 INFO: b'#19: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x536559b]'
0:31.61 INFO: b'#20: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x5303707]'
0:31.61 INFO: b'#21: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x8039c23]'
0:31.61 INFO: b'#22: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x94c9c28]'
0:31.61 INFO: b'#23: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x95c3b77]'
0:31.61 INFO: b'#24: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x95c47a8]'
0:31.61 INFO: b'#25: ???[/tmp/tmpjjn_9vbm/firefox/libxul.so +0x95c4c38]'
0:31.61 INFO: b'#26: ???[/tmp/tmpjjn_9vbm/firefox/firefox +0x454cc]'
0:31.61 INFO: b'#27: ???[/lib/x86_64-linux-gnu/libc.so.6 +0x2718a]'
0:31.61 INFO: b'#28: __libc_start_main[/lib/x86_64-linux-gnu/libc.so.6 +0x27245]'
0:31.61 INFO: b'#29: ???[/tmp/tmpjjn_9vbm/firefox/firefox +0x45049]'
0:31.61 INFO: b'#30: ??? (???:???)'
0:31.62 INFO: b'ExceptionHandler::GenerateDump cloned child 96715'
0:31.62 INFO: b'ExceptionHandler::SendContinueSignalToChild sent continue signal to child'
0:31.62 INFO: b'ExceptionHandler::WaitForContinueSignal waiting for continue signal...'
0:31.75 INFO: b'[Parent 96548, Renderer] WARNING: Failed to get native window: file /builds/worker/checkouts/gecko/gfx/gl/GLContextProviderEGL.cpp:505'
0:31.75 INFO: b'[Parent 96548, Renderer] WARNING: Framebuffer not complete -- CheckFramebufferStatus returned 0x8219, GLContext=7efda149bc00, IsOffscreen()=0, mFBO=0, aRect.width=1280, aRect.height=1040: file /builds/worker/checkouts/gecko/gfx/layers/opengl/CompositingRenderTargetOGL.cpp:64


mozregression --good 2023-01-01 --bad 2023-06-01 --pref gfx.webrender.software:true gfx.webrender.software.opengl:true -a about:support

[...]
1:18.76 INFO: Last good revision: aba9dab44bb878b46f9a1c57b1dae3cbbeeb0166
1:18.76 INFO: First bad revision: 56620e525a7cafd3f4f9cf2bb91bcc2fd678639f
1:18.76 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=aba9dab44bb878b46f9a1c57b1dae3cbbeeb0166&tochange=56620e525a7cafd3f4f9cf2bb91bcc2fd678639f

56620e525a7cafd3f4f9cf2bb91bcc2fd678639f stransky — Bug 1829414 [Wayland] Don't crash if we're getting EGL window for hidden GtkWindow on Wayland r=lsalzman

:stransky, since you are the author of the regressor, bug 1829414, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(stransky)

EGL/Xwayland:

  • "last good" = good
    MOZ_ENABLE_WAYLAND=0 mozregression --repo autoland --launch aba9dab44bb878b46f9a1c57b1dae3cbbeeb0166 --pref gfx.webrender.software:true gfx.webrender.software.opengl:true -a about:support
  • "first bad" = good
    MOZ_ENABLE_WAYLAND=0 mozregression --repo autoland --launch 56620e525a7cafd3f4f9cf2bb91bcc2fd678639f --pref gfx.webrender.software:true gfx.webrender.software.opengl:true -a about:support

GLX/Xwayland:

  • "last good" = crash
    MOZ_ENABLE_WAYLAND=0 mozregression --repo autoland --launch aba9dab44bb878b46f9a1c57b1dae3cbbeeb0166 --pref gfx.x11-egl.force-disabled:true gfx.webrender.software:true gfx.webrender.software.opengl:true -a about:support
  • "first bad" = crash
    MOZ_ENABLE_WAYLAND=0 mozregression --repo autoland --launch 56620e525a7cafd3f4f9cf2bb91bcc2fd678639f --pref gfx.x11-egl.force-disabled:true gfx.webrender.software:true gfx.webrender.software.opengl:true -a about:support
  • I will put GLX/Xwayland regression range into bug 1745582.
Summary: SW WR OpenGL startup crash on Wayland, but not on Xwayland → SW WR OpenGL startup crash on Wayland, but not on Xwayland. Consider removing SW WR OpenGL support from MOZ_WIDGET_GTK as it has always been broken in some way.
Duplicate of this bug: 1745582

Darkspirit, do I understand correctly that this isn't default SW WR setup but you need to flip gfx.webrender.software.opengl to true to trigger it?
Thanks.

Flags: needinfo?(stransky) → needinfo?(jan)

Also I wonder is there any benefit to run SW WR on OpenGL? Why not to run regular Webrender then?

(In reply to Martin Stránský [:stransky] (ni? me) from comment #5)

Darkspirit, do I understand correctly that this isn't default SW WR setup but you need to flip gfx.webrender.software.opengl to true to trigger it?
Thanks.

Yes.
SW WR OpenGL/Wayland = crash since bug 1829414.
SW WR OpenGL/EGL/Xwayland = no crash, but broken (for example, affected by bug 1635186 comment 49).
SW WR OpenGL/GLX/Xwayland = crash since bug 1762424. Before that it has been affected by bug 1745582.

(In reply to Martin Stránský [:stransky] (ni? me) from comment #6)

Also I wonder is there any benefit to run SW WR on OpenGL?

bug 1697443 comment 0 said "It helps to investigate SoftwareWebRender with CompositorOGL problem".
= Back then it helped to debug Android bugs on desktop Linux.

In theory, GLES 2-only Linux clients (like Raspberry Pi below 4) could use this as well, but it has always been broken in some way and now it just crashes.
Those users should better keep using regular SW WR.

Why not to run regular Webrender then?

Yes. I suggest removing this broken MOZ_WIDGET_GTK feature:

#ifdef MOZ_WIDGET_ANDROID
- name: gfx.webrender.software.opengl
  type: bool
  value: true
  mirror: once
#endif
Flags: needinfo?(jan)

Andrew, what do you think? Shall we remove SW WR with OpenGL on Linux? Does it brings any benefits?
Thanks.

Flags: needinfo?(aosmond)

We don't want anyone using it in the wild, but it is useful for testing. Particularly because it can be easier to work with a local build on Linux using SWGL + OpenGL, over debugging on Android, as the two share a lot of the same plumbing in this code path.

With that said, our use case is mostly about nightly, so perhaps we could restrict it in release/beta.

Assignee: nobody → aosmond
Severity: -- → S4
Status: NEW → ASSIGNED
Flags: needinfo?(aosmond)

Set release status flags based on info from the regressing bug 1829414

Sotaro, it seems like the fallback from the OpenGL layers compositor is asserting in FallbackFromAcceleration for some reason, when it should just be falling back to the SW compositor. Can you look into why this is broken?

Flags: needinfo?(sotaro.ikeda.g)
Attachment #9337702 - Attachment is obsolete: true

(In reply to Andrew Osmond [:aosmond] (he/him) from comment #9)

We don't want anyone using it in the wild, but it is useful for testing. Particularly because it can be easier to work with a local build on Linux using SWGL + OpenGL, over debugging on Android, as the two share a lot of the same plumbing in this code path.

Yes, I originally added SWGL + OpenGL on Linux for android development.

(In reply to Lee Salzman [:lsalzman] from comment #12)

Sotaro, it seems like the fallback from the OpenGL layers compositor is asserting in FallbackFromAcceleration for some reason, when it should just be falling back to the SW compositor. Can you look into why this is broken?

On Android, we do not want to fallback from SW-WR(OpenGL) to SW-WR. Then the fallback handling part is not implemented yet. Though it is necessary for non-Android.

The following parts block the falling back to the SW compositor.

Let's clarify what's going on here and what's root cause of the issue on Linux. We fallback from SW-WR(OpenGL) to SW-WR in case we paint too early and underlying GtkWidget is not mapped yet. That's not so big issue on X11 as we can have hidden GtkWidget/XWindow and create EGLWindow for it. But it's broken on Wayland where we can't paint to hidden GtkWidget as it's juts missing.

That's kind of race condition between window creation/mapping and painting so we may randomly fallback to SW-WR here.
The right fix on Linux is to hold rendering until GtkWidget/nsWindow is mapped/visible. When we don't fallback to from SW-WR(OpenGL) to SW-WR.

Blocks: wayland
Summary: SW WR OpenGL startup crash on Wayland, but not on Xwayland. Consider removing SW WR OpenGL support from MOZ_WIDGET_GTK as it has always been broken in some way. → [Wayland] SW WR OpenGL startup crash on Wayland

This is Wayland only. X11 is not affected.

Depends on: 1837938
Flags: needinfo?(sotaro.ikeda.g)

Andrew, should be plan a fix for 117? If we do, would that be an uplift to 116 beta? Thanks

Flags: needinfo?(aosmond)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: