ValveSoftware / gamescope

SteamOS session compositing window manager
Other
3.15k stars 213 forks source link

New assertion failure in standalone mode on anv #392

Open Raupinger opened 2 years ago

Raupinger commented 2 years ago

I just built the master branch of game-scope to try out FSR. With this new build an assertion in rendervulcan.cpp fails. My last build was 1f5c56ba6ddc6f6bc96d4d1218a5f920ad0bd0fd the current build is of 83138538021f1b2a6dec2099a41c92192fe7fafe. crash

DadSchoorse commented 2 years ago

Can you bisect the issue?

Raupinger commented 2 years ago

@DadSchoorse bisect result:

➜  gamescope git:(861435a) ✗ git bisect good            
56fb91ea725c86d5f3556f50ceac2268d84f2f48 is the first bad commit
commit 56fb91ea725c86d5f3556f50ceac2268d84f2f48
Author: Georg Lehmann <dadschoorse@gmail.com>
Date:   Mon Dec 27 19:14:25 2021 +0100

    rendervulkan: Use drmformats everywhere, create srgb and linear image views

 src/rendervulkan.cpp | 117 +++++++++++++++++++++++++++++++++++----------------
 src/rendervulkan.hpp |   7 +--
 src/steamcompmgr.cpp |   2 +-
 3 files changed, 86 insertions(+), 40 deletions(-)
DadSchoorse commented 2 years ago

Seems like anv really dislikes creating a mutable dmabuf image with bgra8 srgb+unorm. Pretty sure this is a driver issue, you should report it.

Raupinger commented 2 years ago

I understood some of those words :) I'll do some reading and see if i can put together a report. Might be worth mentioning that the machine is running Manjaro, so mesa is on 21.3.4-1 not the upstream arch 21.3.5-1

remenic commented 2 years ago

I have the same issue on arch.

Here is the output:

No CAP_SYS_NICE, falling back to regular-priority compute and threads.
wlserver: [libseat] [libseat/backend/seatd.c:80] Could not connect to socket /run/seatd.sock: No such file or directory
wlserver: [libseat] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
wlserver: [libseat] [libseat/libseat.c:73] Seat opened with backend 'logind'
wlserver: [backend/session/session.c:110] Successfully loaded libseat session
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

vulkan: selecting physical device 'Intel(R) Graphics (ADL-S GT1)'
vulkan: physical device supports DRM format modifiers
drm: opening DRM node '/dev/dri/card0'
drm: Connectors:
drm:   HDMI-A-1 (connected)
drm:   HDMI-A-2 (disconnected)
drm:   DP-1 (disconnected)
drm:   HDMI-A-3 (disconnected)
drm:   DP-2 (disconnected)
drm:   HDMI-A-4 (disconnected)
drm: selecting connector HDMI-A-1
drm: selecting mode 1920x1080@60Hz
vulkan: supported DRM formats for sampling usage:
vulkan:   0x34325241
vulkan:   0x34325258
vulkan:   0x3231564E
gamescope: ../gamescope/src/rendervulkan.cpp:488: bool CVulkanTexture::BInit(uint32_t, uint32_t, uint32_t, CVulkanTexture::createFlags, wlr_dmabuf_attributes*): Assertion `modifiers.size() > 0' failed.
DadSchoorse commented 2 years ago

anv bug report: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6031

Samsagax commented 2 years ago

I have the same issue with Intel card on Embedded mode. Nested mode works fine (except for #356).

Running:

gamescope -e --xwayland-count 2 &
steam -steamos -tenfoot

as a session script for sddm

Here is the output: gamescope-stdout.log

DocMAX commented 2 years ago

Same here on Intel(R) Xe Graphics (TGL GT2): gamescope: ../gamescope/src/rendervulkan.cpp:1988: bool CVulkanTexture::BInit(uint32_t, uint32_t, uint32_t, createFlags, wlr_dmabuf_attributes*, uint32_t, uint32_t): Assertionmodifiers.size() > 0' failed.`

lostalejandro commented 2 years ago

Nested mode working fine here

On the other hand, Embedded mode throws same error here

I'm running arch Kernel 5.18.16-arch1-1 on Intel Celeron N4120 and UHD 600 Gemini Lake

No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
wlserver: [libseat] [libseat/backend/seatd.c:64] Could not connect to socket /run/seatd.sock: No such file or directory
wlserver: [libseat] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
wlserver: [libseat] [libseat/libseat.c:73] Seat opened with backend 'logind'
wlserver: [backend/session/session.c:110] Successfully loaded libseat session
MANGOAPP LAYER: Init
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0
vulkan: selecting physical device 'Intel(R) UHD Graphics 600 (GLK 2)': queue family 0
vulkan: physical device supports DRM format modifiers
drm: opening DRM node '/dev/dri/card0'
drm: Connectors:
drm:   eDP-1 (connected)
drm:   DP-1 (disconnected)
drm:   HDMI-A-1 (disconnected)
drm:   HDMI-A-2 (disconnected)
drm: selecting connector eDP-1
drm: selecting mode 1366x768@60Hz
vulkan: supported DRM formats for sampling usage:
vulkan:   0x34325241
vulkan:   0x34325258
vulkan:   0x3231564E
gamescope: ../gamescope/src/rendervulkan.cpp:1947: bool CVulkanTexture::BInit(uint32_t, uint32_t, uint32_t, createFlags, wlr_dmabuf_attributes*, uint32_t, uint32_t): Assertion `modifiers.size() > 0' failed.
DocMAX commented 2 years ago

There is a core-dump. Maybe it helps?

Aug 07 09:35:30 gpdwin3 systemd-coredump[1679]: [🡕] Process 1674 (gamescope) of user 1000 dumped core.   
                                             Module linux-vdso.so.1 with build-id 1ae89d98798409ec8d014bb68399cba9c70ec3b4
                                                Module libxshmfence.so.1 with build-id d9b3ce4edb0b6a0818bcc57dda020d2da5e3c895
                                                Module libxcb-shm.so.0 with build-id 828fec4d856e2710e732ea8d92c3f250c807b1c2
                                                Module libxcb-randr.so.0 with build-id c914473ab7592ed5cf5c191200faaac1089c12ad
                                                Module libxcb-sync.so.1 with build-id 13025f6de23a271636ad321c77eda98801e62e8e
                                                Module libxcb-present.so.0 with build-id 8ed389d9cd6ad7110fbb00c93b32e0efaa71a6b1
                                                Module libX11-xcb.so.1 with build-id f92352eae0a30aea89d11beb22367fa985288925
                                                Module libz.so.1 with build-id fefe3219a96d682ec98fcfb78866b8594298b5a2
                                                Module libxcb-dri3.so.0 with build-id 088c750254cc139e7d62b8a3fc7795a138447ccf
                                                Module libvulkan_intel.so with build-id 5e4ee0b66864b9da42289ab6a9757e3ebdcbf7bb
                                                Module libpthread.so.0 with build-id beb247374758b5c4cdc7a45b934fff02bfd90a71
                                                Module libgpg-error.so.0 with build-id 4738b8a9478177c202cccd64e0eb65d3dea2bfae
                                                Module libpcre.so.1 with build-id 845483dd0acba86de9f0313102bebbaf3ce52767
                                                Module liblz4.so.1 with build-id e63600ab23b2f6997f42fac2fa56e1f02ce159a1
                                                Module libzstd.so.1 with build-id ab54c2881f53ab314e134f3e08c76d504376dd5d
                                                Module liblzma.so.5 with build-id 28b40c7af8098a66af6ee093b6986b91cad7694d
                                                Module libgcrypt.so.20 with build-id 8bf3cb884124273640de797a3e77d86c98434ea4
                                                Module libglib-2.0.so.0 with build-id 1340f3a762b2293ebf6d725edf0eb14839f85317
                                                Module libgobject-2.0.so.0 with build-id a7515bd8cd51064d187953c0f506a43958de31a6
                                                Module libgudev-1.0.so.0 with build-id 460465b63a086d945124662363191903c0002793
                                                Module libXdmcp.so.6 with build-id d864159ab0008415667db8d5f251696d75c90df2
                                                Module libXau.so.6 with build-id 60db1eac70f819bea9d4c366603c1583067510b4
                                                Module libsystemd.so.0 with build-id 3e5d9eb54ba96616b0f90c9b897f04fd126527de
                                                Module libwacom.so.9 with build-id 52b5a9bb54e19f46a2d54b8a8ee3c859ba23170b
                                                Module libevdev.so.2 with build-id 9ded5f5a6c45f3b30cf380d8a505e90b5f85f164
                                                Module libmtdev.so.1 with build-id 862cf8d5b0a0dd4d4d225e17f54be93ab9c3b34e
                                                Module ld-linux-x86-64.so.2 with build-id 8dac9e5903543a5f8a5f7339139c14444b9b4e0e
                                                Module libexpat.so.1 with build-id 113bb5a3e9ad856801bfcfc029102c9bdc13d67e
                                                Module libffi.so.8 with build-id f0a9586cf0f42d2b9971bd1065ca3a6b19f4a2c2
                                                Module libxcb.so.1 with build-id 13d677412a71468381b11092915d231f664d18d3
                                                Module libc.so.6 with build-id e637217a46491314667a7a37b2155cb07afc1a40
                                                Module libgcc_s.so.1 with build-id 308aed8b7d7e38f5efa23f75c25601668c1fc009
                                                Module libm.so.6 with build-id 598f2cb2b61d6ba52686c3d0d380daea7e55e97c
                                                Module libstdc++.so.6 with build-id e0dd3ec5b0a62b122b4141c956c0b33a4d719144
                                                Module libpipewire-0.3.so.0 with build-id b91e7a1d107726d205723f63f1671760c3aaaf19
                                                Module libcap.so.2 with build-id 1f87347b85b55db2f75a2ecea5cb45d846dc7093
                                                Module libXtst.so.6 with build-id 35c7f3daf454834acb724e6bd1664b0a2e9a6494
                                                Module libliftoff.so.0 with build-id ef7b82bb479d9e9f5dd4cbc8adf66c59d10362ec
                                                Module libvulkan.so.1 with build-id dd97393da4f886994c9dfc153b35ea6d906f57ff
                                                Module libseat.so.1 with build-id 51f74c96a4dd3748925954d1cc5fc6c52f051866
                                                Module libwayland-client.so.0 with build-id 515c72111400d7bdbfbdfcec78d597e4986a5943
                                                Module libinput.so.10 with build-id 9de57b91e0d1d09e53606692e2c51c8b31d3dfe1
                                                Module libpixman-1.so.0 with build-id d2170a3ac106c2a68597bf7910ab04b1cdd69c14
                                                Module libudev.so.1 with build-id 2a20e10475325f65fa29687073270e417e20a984
                                                Module libgbm.so.1 with build-id 589489ebc39c7c4de46d25028fd54896e0da464d
                                                Module libSDL2-2.0.so.0 with build-id ea9fb59ffd521c634a0459b0e6826e0d896d3afd
                                                Module libxkbcommon.so.0 with build-id 6cf66eead3fcc20fe5df10162bfbcdcdc8b2a183
                                                Module libwayland-server.so.0 with build-id 4c54fc8a7c0d4eb8adf2a69e44ebf12d16969c74
                                                Module libdrm.so.2 with build-id 39847bc84bc769f632f8f599a62fdcc98c9270cd
                                                Module libXRes.so.1 with build-id 6ae98691f3ebed4aae1d0ac919078baa00d71fb6
                                                Module libXxf86vm.so.1 with build-id b8b37b0c66be0a760a8491e3c86a00c4efdc825d
                                                Module libXext.so.6 with build-id 17beadf1cb40d41ab36629db3b4eed74110678a7
                                                Module libXrender.so.1 with build-id 42e386d2acf3cde61081959d9671ca74acfb3edc
                                                Module libXcomposite.so.1 with build-id 13228d108b290268d88510db494daefd5521cda0
                                                Module libXfixes.so.3 with build-id 0a05c7e8714522bfbdd7c0027c3e2a94965664b0
                                                Module libXdamage.so.1 with build-id a99dbe3fc2b01da9fbdd90d5ad00621f9022379f
                                                Module libX11.so.6 with build-id 21e886e968772b7964d646f54c1faecc56734de9
                                                Module gamescope with build-id d7104b12392616aa19a6bbc3466b37f9eaee69b7
                                                Stack trace of thread 1674:
                                                #0  0x00007f3bf0aec4dc n/a (libc.so.6 + 0x884dc)
                                                #1  0x00007f3bf0a9c998 raise (libc.so.6 + 0x38998)
                                                #2  0x00007f3bf0a8653d abort (libc.so.6 + 0x2253d)
                                                #3  0x00007f3bf0a8645c n/a (libc.so.6 + 0x2245c)
                                                #4  0x00007f3bf0a954c6 __assert_fail (libc.so.6 + 0x314c6)
                                                #5  0x00005614928d1c2c n/a (gamescope + 0x3bc2c)
                                                #6  0x00005614928f6c47 n/a (gamescope + 0x60c47)
                                                #7  0x00005614928a7766 n/a (gamescope + 0x11766)
                                                #8  0x00007f3bf0a872d0 n/a (libc.so.6 + 0x232d0)
                                                #9  0x00007f3bf0a8738a __libc_start_main (libc.so.6 + 0x2338a)
                                                #10 0x00005614928aa0f5 n/a (gamescope + 0x140f5)

                                                Stack trace of thread 1676:
                                                #0  0x00007f3befd0c538 n/a (libvulkan_intel.so + 0x1df538)
                                                #1  0x00007f3befd33559 n/a (libvulkan_intel.so + 0x206559)
                                                #2  0x00007f3befd3d180 n/a (libvulkan_intel.so + 0x210180)
                                                #3  0x00007f3befbd56f2 n/a (libvulkan_intel.so + 0xa86f2)
                                                #4  0x00007f3befc95215 n/a (libvulkan_intel.so + 0x168215)
                                                #5  0x00005614928d0255 n/a (gamescope + 0x3a255)
                                                #6  0x00005614928da483 n/a (gamescope + 0x44483)
                                                #7  0x00007f3bf0e242f3 execute_native_thread_routine (libstdc++.so.6 + 0xd62f3)
                                                #8  0x00007f3bf0aea78d n/a (libc.so.6 + 0x8678d)
                                                #9  0x00007f3bf0b6b8e4 __clone (libc.so.6 + 0x1078e4)

                                                Stack trace of thread 1675:
                                                #0  0x00007f3bf0ae7346 n/a (libc.so.6 + 0x83346)
                                                #1  0x00007f3bf0ae9b60 pthread_cond_wait (libc.so.6 + 0x85b60)
                                                #2  0x00007f3befdfbedc n/a (libvulkan_intel.so + 0x2ceedc)
                                                #3  0x00007f3befdfbd0c n/a (libvulkan_intel.so + 0x2ced0c)
                                                #4  0x00007f3bf0aea78d n/a (libc.so.6 + 0x8678d)
                                                #5  0x00007f3bf0b6b8e4 __clone (libc.so.6 + 0x1078e4)

                                                Stack trace of thread 1677:
                                                #0  0x00007f3bf0b5ee9f __poll (libc.so.6 + 0xfae9f)
                                                #1  0x00005614928c9897 n/a (gamescope + 0x33897)
                                                #2  0x00007f3bf0e242f3 execute_native_thread_routine (libstdc++.so.6 + 0xd62f3)
                                                #3  0x00007f3bf0aea78d n/a (libc.so.6 + 0x8678d)
                                                #4  0x00007f3bf0b6b8e4 __clone (libc.so.6 + 0x1078e4)
                                                ELF object binary architecture: AMD x86-64
DocMAX commented 2 years ago

Oh, nested mode works fine for me too

DocMAX commented 2 years ago

Compiled this mesa version https://gitlab.freedesktop.org/GL/mesa/-/tree/usage_checks_fixes - works!

Titaniumtown commented 2 months ago

I can reproduce this on nixOS with an intel igpu with niri:

gamescope: ../src/rendervulkan.cpp:2118: bool CVulkanTexture::BInit(uint32_t, uint32_t, uint32_t, uint32_t, createFlags, wlr_dmabuf_attributes*, uint32_t, uint32_t, CVulkanTexture*, gamescope::OwningRc<gamescope::IBackendFb>): Assertion `!modifiers.empty()' failed.

works file in a seperate tty

2goodAP commented 2 months ago

Yes, I too can reproduce this on NixOS with Intel GPU. I am using KDE Plasma 6.1.4. As @Titaniumtown mentioned, it works just fine for me as well under a separate tty.

I did some digging around and found this to be an issue for 3.15.x versions only. Nested mode works just fine for me up to commit 94271f3.

The 3.15.0 commit 28a4744, seems to have made some changes to DRM formats for composited outputs. That seems to be a possible cause for the assertion failure in nested mode only.