Igalia / chromium

Old repo. See https://crbug.com/578890 instead.
https://chromium.googlesource.com/chromium/src.git
BSD 3-Clause "New" or "Revised" License
115 stars 16 forks source link

Runtime error [gles2_cmd_decoder.cc] Context lost because SwapBuffers failed. #529

Closed nostdm closed 5 years ago

nostdm commented 5 years ago

Platform: Arch Linux x86_64 GPU: Intel UHD 630 Driver: Mesa 18.3.3 Chromium version: 74.0.3694.0

Build flags:

'custom_toolchain="//build/toolchain/linux/unbundle:default"'
'host_toolchain="//build/toolchain/linux/unbundle:default"'     
'clang_use_chrome_plugins=true'    
'is_official_build=true'     
'treat_warnings_as_errors=false'     
'fieldtrial_testing_like_official_build=true'     
'ffmpeg_branding="Chrome"'     
'proprietary_codecs=true'     
'link_pulseaudio=true'     
'use_gnome_keyring=false'     
'use_sysroot=false'     
'use_ozone=true'     
'use_xkbcommon=true'     
'use_system_minigbm=true'     
'use_vaapi=true'     
'linux_use_bundled_binutils=false'     
'use_custom_libcxx=false'     
'use_jumbo_build=true'     
'remove_webcore_debug_symbols=true'     
'enable_hangout_services_extension=true'     
'enable_widevine=true'     
'enable_nacl=false'     
'enable_swiftshader=false'     

I built the chromium-ozone-wayland binary from Arch Linux User repository: https://aur.archlinux.org/packages/chromium-ozone-wayland-git/#comment-681309

The build went well but when I start the browser I get the following errors (the browser does start but crashes as soon as I click on something):

[25234:25234:0208/131625.166265:ERROR:gles2_cmd_decoder.cc(16290)] Context lost because SwapBuffers failed.
[25234:25234:0208/131625.186114:ERROR:gles2_cmd_decoder.cc(4746)]   GLES2DecoderImpl: Trying to make lost context current. 
[25234:25234:0208/131625.233285:ERROR:gles2_cmd_decoder.cc(16290)] Context lost because SwapBuffers failed. 
[25234:25234:0208/131625.237274:ERROR:gles2_cmd_decoder.cc(4746)]   GLES2DecoderImpl: Trying to make lost context current.

I tried exporting EGL_PLATFORM=wayland and GDK_BACKEND=wayland. And I tried setting the --ozone-platform=wayland and --enable-native-gpu-buffers. But nothing worked.

I haven't had a chance to delve deeper into the issue here, but maybe it's something simple that I'm not aware of.

nostdm commented 5 years ago

I just noticed there's some more informative errors in the beginning of the log:

$ chromium --ozone-platform=wayland 
[/home/admin/.config/pulse/client.conf:1] Unknown lvalue 'auth-cookie' in section 'n/a'. 
[1841:1841:0208/164928.627747:ERROR:vaapi_wrapper.cc(327)] vaInitialize failed: unknown libva error 
[1841:1841:0208/164928.664474:ERROR:sandbox_linux.cc(364)] InitializeSandbox() called with multiple threads in process gpu-process. 
[1815:1986:0208/164928.812643:ERROR:object_proxy.cc(621)] Failed to call method: org.freedesktop.Notifications.GetCapabilities: object_path= /org/freedesktop/Notifications: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files 
[1815:1815:0208/164928.837893:ERROR:desktop_window_tree_host_platform.cc(433)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::InitModalType(ui::ModalType) 
[1815:1815:0208/164928.838308:ERROR:desktop_window_tree_host_platform.cc(443)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::IsAnimatingClosed() const 
[1815:1815:0208/164928.845229:ERROR:desktop_window_tree_host_platform.cc(456)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::SizeConstraintsChanged() 
[1815:1815:0208/164928.882241:ERROR:desktop_window_tree_host_platform.cc(427)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::SetWindowIcons(const gfx::ImageSkia &, const gfx::ImageSkia &) 
[1815:1815:0208/164928.882286:ERROR:desktop_window_tree_host_platform.cc(360)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::SetWindowTitle(const base::string16 &) 
[1815:1815:0208/164928.898505:ERROR:desktop_window_tree_host_platform.cc(298)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::Activate() 
[1815:1815:0208/164928.961838:ERROR:desktop_window_tree_host_platform.cc(366)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::ClearNativeFocus() 
[1815:1815:0208/164928.964645:ERROR:wayland_buffer_manager.cc(428)] Not implemented reached in static void ui::WaylandBufferManager::FeedbackSyncOutput(void *, struct wp_presentation_feedback *, struct wl_output *) 
[1815:1815:0208/164929.041135:ERROR:desktop_window_tree_host_platform.cc(209)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::IsVisible() const

Update: Installing libva-mesa-driver, libva-intel-driver and libva-vdpau-driver seems to have fixed the libva errors.

Update: It also seems that the --force-device-scale-factor flag has no effect, since the interface is scaled to 200% by default and I would like it to be at 100%.

nickdiego commented 5 years ago

Hi @nostdm, thanks for reporting this.

What compositor/version are you running on? Adding --in-process-gpu you get the same result?

PS: I've been running it (not using AUR build) on Arch with Intel GPU and never got something like that.

nostdm commented 5 years ago

Hi @nickdiego I run it with --in-process-gpu which stops the SwapBuffers error but gives this output instead and occasionally segfaults sway:

[25252:25252:0208/204041.829448:ERROR:desktop_window_tree_host_platform.cc(433)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::InitModalType(ui::ModalType)
[25252:25252:0208/204041.829482:ERROR:desktop_window_tree_host_platform.cc(443)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::IsAnimatingClosed() const
[25252:25252:0208/204041.834170:ERROR:desktop_window_tree_host_platform.cc(456)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::SizeConstraintsChanged()
[25252:25252:0208/204041.861690:ERROR:desktop_window_tree_host_platform.cc(427)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::SetWindowIcons(const gfx::ImageSkia &, const gfx::ImageSkia &)
[25252:25252:0208/204041.861721:ERROR:desktop_window_tree_host_platform.cc(360)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::SetWindowTitle(const base::string16 &)
[25252:25252:0208/204041.874109:ERROR:desktop_window_tree_host_platform.cc(298)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::Activate()
error: received delete_id for unknown id (24)
[25252:25252:0208/204041.938106:ERROR:desktop_window_tree_host_platform.cc(366)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::ClearNativeFocus()
[25252:25252:0208/204041.957909:ERROR:desktop_window_tree_host_platform.cc(209)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::IsVisible() const
[25252:25278:0208/204042.054110:ERROR:texture_manager.cc(3488)] [.DisplayCompositor]GL ERROR :GL_INVALID_ENUM : glTexImage2D: <- error from previous GL command
error: received delete_id for unknown id (24)
error: received delete_id for unknown id (25)
error: received delete_id for unknown id (24)
error: received delete_id for unknown id (24)
error: received delete_id for unknown id (27)

P.S. I'm using sway version 1.0-rc1-8-ga1a99421 (Feb 4 2019, branch 'master') as the wayland compositor.

nickdiego commented 5 years ago

Ok, I'll try to reproduce it in my env, with sway. Additionally, could you please run it with WAYLAND_DEBUG=1 and share the output with us? Thanks.

nostdm commented 5 years ago

Great, I upgraded sway to the latest version and it didn't help.

I ran it with WAYLAND_DEBUG=1 and this was the startup output:

[1850706.940]  -> wl_display@1.get_registry(new id wl_registry@2)
[1850706.974]  -> wl_display@1.sync(new id wl_callback@3)
[1850707.084] wl_display@1.delete_id(3)
[1850707.107] wl_registry@2.global(1, "wl_shm", 1)
[1850707.126]  -> wl_registry@2.bind(1, "wl_shm", 1, new id [unknown]@4)
[1850707.150] wl_registry@2.global(2, "zwp_linux_dmabuf_v1", 3)
[1850707.166]  -> wl_registry@2.bind(2, "zwp_linux_dmabuf_v1", 3, new id [unknown]@5)
[1850707.186]  -> wl_display@1.sync(new id wl_callback@6)
[1850707.196] wl_registry@2.global(3, "wl_drm", 2)
[1850707.210] wl_registry@2.global(4, "wl_compositor", 4)
[1850707.225]  -> wl_registry@2.bind(4, "wl_compositor", 4, new id [unknown]@7)
[1850707.244] wl_registry@2.global(5, "wl_subcompositor", 1)
[1850707.259]  -> wl_registry@2.bind(5, "wl_subcompositor", 1, new id [unknown]@8)
[1850707.279] wl_registry@2.global(6, "wl_data_device_manager", 3)
[1850707.293]  -> wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@9)
[1850707.313] wl_registry@2.global(7, "gamma_control_manager", 1)
[1850707.327] wl_registry@2.global(8, "zwlr_gamma_control_manager_v1", 1)
[1850707.341] wl_registry@2.global(9, "gtk_primary_selection_device_manager", 1)
[1850707.355] wl_registry@2.global(10, "zxdg_output_manager_v1", 2)
[1850707.369] wl_registry@2.global(11, "org_kde_kwin_idle", 1)
[1850707.384] wl_registry@2.global(12, "zwp_idle_inhibit_manager_v1", 1)
[1850707.398] wl_registry@2.global(13, "zwlr_layer_shell_v1", 1)
[1850707.412] wl_registry@2.global(14, "zxdg_shell_v6", 1)
[1850707.426]  -> wl_registry@2.bind(14, "zxdg_shell_v6", 1, new id [unknown]@10)
[1850707.446] wl_registry@2.global(15, "xdg_wm_base", 2)
[1850707.460] wl_registry@2.global(16, "org_kde_kwin_server_decoration_manager", 1)
[1850707.474] wl_registry@2.global(17, "zxdg_decoration_manager_v1", 1)
[1850707.488] wl_registry@2.global(18, "zwp_relative_pointer_manager_v1", 1)
[1850707.502] wl_registry@2.global(19, "zwp_pointer_constraints_v1", 1)
[1850707.516] wl_registry@2.global(20, "wp_presentation", 1)
[1850707.530]  -> wl_registry@2.bind(20, "wp_presentation", 1, new id [unknown]@11)
[1850707.551] wl_registry@2.global(21, "zwlr_export_dmabuf_manager_v1", 1)
[1850707.565] wl_registry@2.global(22, "zwlr_screencopy_manager_v1", 1)
[1850707.579] wl_registry@2.global(23, "zwlr_data_control_manager_v1", 1)
[1850707.593] wl_registry@2.global(24, "zwp_virtual_keyboard_manager_v1", 1)
[1850707.607] wl_registry@2.global(25, "zwlr_input_inhibit_manager_v1", 1)
[1850707.621] wl_registry@2.global(26, "wl_seat", 6)
[1850707.635]  -> wl_registry@2.bind(26, "wl_seat", 4, new id [unknown]@12)
[1850707.655]  -> wl_data_device_manager@9.get_data_device(new id wl_data_device@13, wl_seat@12)
[1850707.669] wl_registry@2.global(27, "wl_output", 3)
[1850707.683]  -> wl_registry@2.bind(27, "wl_output", 3, new id [unknown]@14)
[1850707.704] wl_callback@3.done(480)
[1850707.963] wl_display@1.delete_id(6)
[1850707.982] zwp_linux_dmabuf_v1@5.modifier(808669761, 0, 0)
[1850707.998] zwp_linux_dmabuf_v1@5.modifier(808669761, 16777216, 1)
[1850708.013] zwp_linux_dmabuf_v1@5.modifier(808669761, 16777216, 2)
[1850709.191] zwp_linux_dmabuf_v1@5.modifier(1448695129, 0, 0)
[1850709.205] zwp_linux_dmabuf_v1@5.modifier(1448695129, 16777216, 1)
[1850709.219] zwp_linux_dmabuf_v1@5.modifier(1448695129, 16777216, 2)
[1850709.233] zwp_linux_dmabuf_v1@5.modifier(1498831189, 0, 0)
[1850709.247] zwp_linux_dmabuf_v1@5.modifier(1498831189, 16777216, 1)
[1850709.261] zwp_linux_dmabuf_v1@5.modifier(1498831189, 16777216, 2)
[1850709.275] wl_callback@6.done(480)
[1850709.283] wl_seat@12.name("seat0")
[1850709.290] wl_seat@12.capabilities(7)
[1850709.299]  -> wl_seat@12.get_pointer(new id wl_pointer@6)
[1850709.309]  -> wl_compositor@7.create_surface(new id wl_surface@3)
[1850709.318]  -> wl_seat@12.get_keyboard(new id wl_keyboard@15)
[1850709.329]  -> wl_seat@12.get_touch(new id wl_touch@16)
[1850709.338] wl_output@14.geometry(0, 0, 340, 190, 0, "Sharp Corporation", "0x148D", 0)
[1850709.372] wl_output@14.mode(1, 3840, 2160, 59997)
[1850709.391] wl_output@14.scale(2)
[1850709.398] wl_output@14.done()
[/home/admin/.config/pulse/client.conf:1] Unknown lvalue 'auth-cookie' in section 'n/a'.
[3587:3750:0208/211331.054785:ERROR:object_proxy.cc(621)] Failed to call method: org.freedesktop.Notifications.GetCapabilities: object_path= /org/freedesktop/Notifications: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files
[1850939.863]  -> wl_compositor@7.create_surface(new id wl_surface@18)
[1850939.899]  -> zxdg_shell_v6@10.get_xdg_surface(new id zxdg_surface_v6@21, wl_surface@18)
[1850939.914]  -> zxdg_surface_v6@21.get_toplevel(new id zxdg_toplevel_v6@22)
[1850939.924]  -> wl_surface@18.commit()
[3587:3587:0208/211331.075269:ERROR:desktop_window_tree_host_platform.cc(433)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::InitModalType(ui::ModalType)
[3587:3587:0208/211331.075296:ERROR:desktop_window_tree_host_platform.cc(443)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::IsAnimatingClosed() const
[3587:3587:0208/211331.079049:ERROR:desktop_window_tree_host_platform.cc(456)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::SizeConstraintsChanged()
[3587:3587:0208/211331.105341:ERROR:desktop_window_tree_host_platform.cc(427)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::SetWindowIcons(const gfx::ImageSkia &, const gfx::ImageSkia &)
[3587:3587:0208/211331.105409:ERROR:desktop_window_tree_host_platform.cc(360)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::SetWindowTitle(const base::string16 &)
[1850970.836]  -> zxdg_toplevel_v6@22.set_maximized()
[1850980.755]  -> zxdg_toplevel_v6@22.set_maximized()
[3587:3587:0208/211331.115960:ERROR:desktop_window_tree_host_platform.cc(298)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::Activate()
[1850999.916] wl_keyboard@15.keymap(1, fd 72, 61935)
[1851003.811] wl_keyboard@15.repeat_info(25, 250)
[1851003.865] zxdg_shell_v6@10.ping(482)
[1851003.876]  -> zxdg_shell_v6@10.pong(482)
[1851003.884] zxdg_toplevel_v6@22.configure(0, 0, array)
[1851003.900] zxdg_surface_v6@21.configure(481)
[1851003.957]  -> zxdg_surface_v6@21.set_window_geometry(0, 0, 956, 1034)
[1851003.978]  -> zxdg_surface_v6@21.ack_configure(481)
[1851040.003] wl_display@1.delete_id(24)
error: received delete_id for unknown id (24)
[1851040.042] wl_display@1.delete_id(23)
[1851040.054] wl_keyboard@15.enter(486, wl_surface@18, array)
[1851040.078] wl_keyboard@15.modifiers(487, 0, 0, 0, 0)
[1851040.117] wl_data_device@13.selection(nil)
[1851040.129] zxdg_toplevel_v6@22.configure(956, 1032, array)
[3587:3587:0208/211331.175837:ERROR:desktop_window_tree_host_platform.cc(366)] Not implemented reached in virtual void views::DesktopWindowTreeHostPlatform::ClearNativeFocus()
[1851041.245] zxdg_surface_v6@21.configure(483)
[1851041.493]  -> zxdg_surface_v6@21.set_window_geometry(0, 0, 956, 1032)
[1851041.530]  -> zxdg_surface_v6@21.ack_configure(483)
[3587:3587:0208/211331.189653:ERROR:desktop_window_tree_host_platform.cc(209)] Not implemented reached in virtual bool views::DesktopWindowTreeHostPlatform::IsVisible() const
[3587:3611:0208/211331.247695:ERROR:texture_manager.cc(3488)] [.DisplayCompositor]GL ERROR :GL_INVALID_ENUM : glTexImage2D: <- error from previous GL command
[1851121.351] wl_display@1.delete_id(24)
error: received delete_id for unknown id (24)
[1851121.383] wl_surface@18.enter(wl_output@14)
[1851130.408] wl_display@1.delete_id(23)
[1851133.516] wl_display@1.delete_id(25)
error: received delete_id for unknown id (25)
[1851133.555] wl_display@1.delete_id(24)
error: received delete_id for unknown id (24)
[1851213.541] wl_display@1.delete_id(23)
[1851230.223] wl_display@1.delete_id(23)
[1851246.780] wl_display@1.delete_id(23)
[1851263.539] wl_display@1.delete_id(23)
[1851347.207] wl_display@1.delete_id(23)
[1851363.676] wl_display@1.delete_id(23)
[1851380.323] wl_display@1.delete_id(23)
[1851396.786] wl_display@1.delete_id(23)
[1851413.423] wl_display@1.delete_id(23)
nostdm commented 5 years ago

By the way, is the --force-device-scaling-factor flag expected to work under wayland or is there another way to configure the scaling factor?

nickdiego commented 5 years ago

Just reported this on upstream bug tracking tool

Patch fixing it under review at https://chromium-review.googlesource.com/c/chromium/src/+/1465781 So, I'm closing this in favor of the upstream version. Feel free to test it and provide some feedback there.

Thanks.

nickdiego commented 5 years ago

Just uploaded a second fix to subsurfaces-related crashes (actually sway was crashing :fearful:) I was getting after fixing the original issue reported here. Not sure if it will be merged upstream, since it seems to be a sway-specific issue, that should be ideally fixed at sway side. After a quick search, it looks like they already had similar issues in the past [1][2]. Maybe it's time to open a new one on sway bugtracker mentioning this specific case and the temp fix we used to work around the issue?

[1] https://github.com/swaywm/sway/issues/3195 [2] https://github.com/swaywm/sway/pull/3199