Summary: | [bisected] Steam crashes when newest Iris built with LTO | ||
---|---|---|---|
Product: | Mesa | Reporter: | Mike Lothian <mike> |
Component: | Drivers/Gallium/Iris | Assignee: | Mark Janes <mark.a.janes> |
Status: | RESOLVED MOVED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | mike |
Version: | git | Keywords: | bisected, regression |
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Mike Lothian
2019-08-12 09:46:17 UTC
hi, confirming the crash. In my case I cut installation script (check below). I believe that simply iris enabled would be enough. meson setup . mbuild_dbg_x64 \ -Dplatforms=surfaceless,x11,wayland,drm \ -Dprefix=/home/den/mesa64/mesa-commit_test/ \ -Dlmsensors=true \ -Dlibunwind=false \ -Dgallium-nine=false \ -Dgallium-xa=false \ -Dgallium-xvmc=false \ -Dgallium-opencl=disabled \ -Dglx-read-only-text=false \ -Dosmesa=none \ -Dbuild-tests=false \ -Dglx=dri \ -Dshared-glapi=true \ -Ddri3=true \ -Degl=true \ -Dgbm=true \ -Dgles1=false \ -Dgles2=true \ -Dglvnd=false \ -Dselinux=false \ -Dvalgrind=false \ -Ddri-drivers= \ -Dgallium-drivers=iris \ -Dvulkan-drivers= \ -Dvulkan-overlay-layer=true \ -Db_ndebug=true \ -Dbuildtype=debug Mike, Your last comment does not configure LTO/O3. Does this reproduce for you on debug builds? What is your hardware and kernel? thanks! I suspect it's something crashing in iris_monitor_init_metrics. The only thing in that commit of real relevance is the new driver hooks, and... [Sunday, August 11, 2019] [4:13:07 PM PDT] <Kayden> does it help if you drop the iris_screen.c changes? + pscreen->get_driver_query_group_info = iris_get_monitor_group_info; and + pscreen->get_driver_query_info = iris_get_monitor_info; [Sunday, August 11, 2019] [4:29:12 PM PDT] <FireBurn> Yip that worked I have no idea why LTO would matter. If I enable debugging and still pass LTO flags in I don't see the issue I'll see if I can get anything more useful out Here's a slightly different back trace: Thread 1 "steam" received signal SIGSEGV, Segmentation fault. 0xf6411277 in ir_function::clone(void*, hash_table*) const () from /usr/lib/dri/iris_dri.so (gdb) bt #0 0xf6411277 in ir_function::clone(void*, hash_table*) const () from /usr/lib/dri/iris_dri.so #1 0xf641ce8c in clone_ir_list(void*, exec_list*, exec_list const*) () from /usr/lib/dri/iris_dri.so #2 0xf5e0c875 in link_intrastage_shaders(void*, gl_context*, gl_shader_program*, gl_shader**, unsigned int, bool) [clone .constprop.0] () from /usr/lib/dri/iris_dri.so #3 0xf640c187 in link_shaders(gl_context*, gl_shader_program*) [clone .part.0] () from /usr/lib/dri/iris_dri.so #4 0xf64c70f3 in _mesa_glsl_link_shader () from /usr/lib/dri/iris_dri.so #5 0xf66787a2 in _mesa_get_fixed_func_fragment_program () from /usr/lib/dri/iris_dri.so #6 0xf675c63b in update_program () from /usr/lib/dri/iris_dri.so #7 0xf6772b0f in _mesa_update_state_locked () from /usr/lib/dri/iris_dri.so #8 0xf6773217 in _mesa_update_state () from /usr/lib/dri/iris_dri.so #9 0xf64974a7 in _mesa_Clear () from /usr/lib/dri/iris_dri.so #10 0xed1a3806 in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/vgui2_s.so #11 0xed1b24ed in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/vgui2_s.so #12 0xf054bc6d in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/steamui.so #13 0xf054bef5 in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/steamui.so #14 0xf053e28f in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/steamui.so #15 0xf0491eaa in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/steamui.so #16 0xf0493c2e in ?? () from /home/fireburn/.local/share/Steam/ubuntu12_32/steamui.so #17 0x5658e1b0 in RunSteam(int, char**, bool) () #18 0x5658f0ab in ?? () #19 0x5657a06c in ?? () #20 0xf78a5021 in __libc_start_main () from /lib/libc.so.6 #21 0x5657dd29 in _start () As a workaround, this disables LTO on GCC just for iris: ---8<--- diff --git a/src/gallium/drivers/iris/meson.build b/src/gallium/drivers/iris/meson.build index 3f611c2b5698be71ba08..c9f62a877c0df6889411 100644 --- a/src/gallium/drivers/iris/meson.build +++ b/src/gallium/drivers/iris/meson.build @@ -85,8 +85,8 @@ libiris = static_library( # these should not be necessary, but main/macros.h... inc_mesa, inc_mapi ], - c_args : [c_vis_args, c_sse2_args], - cpp_args : [cpp_vis_args, c_sse2_args], + c_args : [c_vis_args, c_sse2_args, gcc_lto_quirk], + cpp_args : [cpp_vis_args, c_sse2_args, gcc_lto_quirk], dependencies : [dep_libdrm, dep_valgrind, idep_genxml, idep_libintel_common], link_with : [ iris_gen_libs, libintel_compiler, libintel_dev, libisl, --->8--- Does this help? Have you checked if LTO causes any issues on Clang for instance? Thanks, I'm currently working around it with: diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index e92685d4ae6..97eaeb15d4d 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -684,8 +684,6 @@ iris_screen_create(int fd, const struct pipe_screen_config *config) pscreen->flush_frontbuffer = iris_flush_frontbuffer; pscreen->get_timestamp = iris_get_timestamp; pscreen->query_memory_info = iris_query_memory_info; - pscreen->get_driver_query_group_info = iris_get_monitor_group_info; - pscreen->get_driver_query_info = iris_get_monitor_info; return pscreen; } Using clang-10 from git also works around the issue I think this could be related to glibc 2.30 I've see another issue in libacl with systemd-tmpfiles that looks similar Hi Mike, Did you get any more information about glibc 2.30 / 32bit LTO issues? I'm stumped as to how the bisected commit could trigger a segfault in a completely different code path. I might be able to change the initialization to defer querying the performance counters until first use. However, it seems to me that we shouldn't complicate mesa to work around a bug in glibc. Since this issue can't yet be confirmed as a mesa bug (vs glibc), I'm removing it from the 19.2 release tracker. No probs, this is Iris only anyway so shouldn't be a blocker at all -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1358. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.