ValveSoftware / gamescope

SteamOS session compositing window manager
Other
3.14k stars 212 forks source link

[NVIDIA] 555 Driver Status #1320

Open Weather-OS opened 5 months ago

Weather-OS commented 5 months ago

Status: Fully broken

Observed Behavior: Crashes instantly

Expected behavior: launch

Log messages:

vulkan: selecting physical device 'NVIDIA GeForce RTX 3060': queue family 2 (general queue family 0)
vulkan: physical device supports DRM format modifiers
wlserver: [backend/headless/backend.c:67] Creating headless backend
xdg_backend: Seat name: 
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0)
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0)
vulkan: supported DRM formats for sampling usage:
vulkan:   AR24 (0x34325241)
vulkan:   XR24 (0x34325258)
vulkan:   AB24 (0x34324241)
vulkan:   XB24 (0x34324258)
vulkan:   RG16 (0x36314752)
vulkan:   NV12 (0x3231564E)
vulkan:   AB4H (0x48344241)
vulkan:   XB4H (0x48344258)
vulkan:   AB30 (0x30334241)
vulkan:   XB30 (0x30334258)
vulkan:   AR30 (0x30335241)
vulkan:   XR30 (0x30335258)
wlserver: Running compositor on wayland display 'gamescope-0'
wlserver: [backend/headless/backend.c:17] Starting headless backend
wlserver: [xwayland/server.c:107] Starting Xwayland on :1
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x56822b7dcf60 (res 0x56822b99c4d0)
wlserver: [xwayland/server.c:272] Xserver is ready
pipewire: stream state changed: connecting
pipewire: stream state changed: paused
pipewire: stream available on node ID: 97
xwm: Embedded, no cursor set. Using left_ptr by default.
vblank: Using timerfd.
(EE) failed to read Wayland events: Broken pipe
Monitored process exited.
Initial process has exited (return code: 134)
All processes have quit
Exit with return code 134
Weather-OS commented 5 months ago

This is worse than driver 550. Gamescope crashes before it even has a chance at initializing.

MrDuartePT commented 5 months ago

Mine experience is not the great c5@bh*zx@2!54kKF#&y8also when trying to run steam big picture mode from tty Observed Behavior: Crashes instantly Expected behavior: launch

gamescope-session repo: https://github.com/MrDuartePT/deckifier/tree/kde

gamescope command: /usr/bin/gamescope -e --xwayland-count 2 -O *,eDP-1 --default-touch-mode 4 --hide-cursor-delay 3000 --fade-out-duration 200 -R /run/user/1000/gamescope.bg228Us/startup.socket -T /run/user/1000/gamescope.bg228Us/stats.pipe -- steam -gamepadui -steamos3 -steampal -steamdeck

gamescope logs:

ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
vulkan: selecting physical device 'NVIDIA GeForce RTX 3070 Laptop GPU': queue family 2 (general queue family 0)
vulkan: physical device supports DRM format modifiers
wlserver: [backend/headless/backend.c:67] Creating headless backend
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:108] Successfully loaded libseat session
drm: opening DRM node '/dev/dri/card0'
drm: Connector eDP-1 -> AUO -
drm: [colorimetry]: EDID with colorimetry detected. Using it
drm: [colorimetry]: r 0.639648 0.330078
drm: [colorimetry]: g 0.299805 0.599609
drm: [colorimetry]: b 0.150391 0.059570
drm: [colorimetry]: w 0.313477 0.329102
drm: Connector eDP-1 -> AUO -
drm: [colorimetry]: EDID with colorimetry detected. Using it
drm: [colorimetry]: r 0.639648 0.330078
drm: [colorimetry]: g 0.299805 0.599609
drm: [colorimetry]: b 0.150391 0.059570
drm: [colorimetry]: w 0.313477 0.329102
drm: Connectors:
drm:   eDP-1 (connected)
drm:   HDMI-A-1 (disconnected)
drm:   DP-2 (disconnected)
drm:   DP-1 (disconnected)
drm: selecting connector eDP-1
drm: selecting mode 1920x1080@165Hz
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0)
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0)
vulkan: supported DRM formats for sampling usage:
vulkan:   AR24 (0x34325241)
vulkan:   XR24 (0x34325258)
vulkan:   AB24 (0x34324241)
vulkan:   XB24 (0x34324258)
vulkan:   RG16 (0x36314752)
vulkan:   NV12 (0x3231564E)
vulkan:   AB4H (0x48344241)
vulkan:   XB4H (0x48344258)
vulkan:   AB30 (0x30334241)
vulkan:   XB30 (0x30334258)
wlserver: Using explicit sync when available
wlserver: Running compositor on wayland display 'gamescope-0'
wlserver: [backend/headless/backend.c:17] Starting headless backend
wlserver: [backend/libinput/backend.c:88] Starting libinput backend
wlserver: [backend/libinput/events.c:69] Adding Power Button [0:1]
wlserver: [backend/libinput/events.c:69] Adding Video Bus [0:6]
wlserver: [backend/libinput/events.c:69] Adding Video Bus [0:6]
wlserver: [backend/libinput/events.c:69] Adding Power Button [0:1]
wlserver: [backend/libinput/events.c:69] Adding Lid Switch [0:5]
wlserver: [backend/libinput/events.c:69] Adding Razer Razer Kraken Tournament Edition  Consumer Control [5426:1312]
wlserver: [backend/libinput/events.c:69] Adding Razer Razer Kraken Tournament Edition  [5426:1312]
wlserver: [backend/libinput/events.c:69] Adding Razer Razer Basilisk [5426:100]
wlserver: [backend/libinput/events.c:69] Adding Razer Razer Basilisk Keyboard [5426:100]
wlserver: [backend/libinput/events.c:69] Adding Razer Razer Basilisk [5426:100]
wlserver: [backend/libinput/events.c:69] Adding ITE Tech. Inc. ITE Device(8910) Keyboard [1165:49409]
wlserver: [backend/libinput/events.c:69] Adding ITE Tech. Inc. ITE Device(8910) Wireless Radio Control [1165:49409]
wlserver: [backend/libinput/events.c:69] Adding Ideapad extra buttons [0:0]
wlserver: [backend/libinput/events.c:69] Adding ELAN06FA:00 04F3:31DD Mouse [1267:12765]
wlserver: [backend/libinput/events.c:69] Adding ELAN06FA:00 04F3:31DD Touchpad [1267:12765]
wlserver: [backend/libinput/events.c:69] Adding AT Translated Set 2 keyboard [1:1]
wlserver: [backend/libinput/backend.c:127] libinput successfully initialized
wlserver: Successfully initialized libei for input emulation!
wlserver: [util/env.c:9] Loading WLR_NO_HARDWARE_CURSORS option: 1
wlserver: [types/output/output.c:370] WLR_NO_HARDWARE_CURSORS set, forcing software cursors
wlserver: [util/env.c:9] Loading WLR_NO_HARDWARE_CURSORS option: 1
wlserver: [types/output/output.c:370] WLR_NO_HARDWARE_CURSORS set, forcing software cursors
wlserver: [xwayland/server.c:107] Starting Xwayland on :0
wlserver: [xwayland/server.c:107] Starting Xwayland on :1
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55efd6719130 (res 0x55efd6a52e10)
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55efd671da20 (res 0x55efd6a4b550)
wlserver: [xwayland/server.c:272] Xserver is ready
wlserver: [xwayland/server.c:272] Xserver is ready
pipewire: stream state changed: connecting
pipewire: stream state changed: paused
pipewire: stream available on node ID: 83
xwm: Embedded, no cursor set. Using left_ptr by default.
xwm: Embedded, no cursor set. Using left_ptr by default.
vblank: Using timerfd.
wlserver: Updating mode for xwayland server #0: 1920x1080@165
pipewire: renegotiating stream params (size: 1920x1080)
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55efd6685940 (res 0x55efd69934e0)
xwm: Rejecting WM_CHANGE_STATE to ICONIC for window 0x400007
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55efd6684980 (res 0x55efd6a05280)
xwm: got the same buffer committed twice, ignoring.
drmModeAtomicCommit: Operation not permitted
xwm: We failed our modeset and have no mode to fall back to! (Initial modeset failed?): Operation not permitted
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Could not resolve keysym XF86KbdInputAssistPrevgrou
> Warning:          Could not resolve keysym XF86KbdInputAssistNextgrou
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Could not resolve keysym XF86KbdInputAssistPrevgrou
> Warning:          Could not resolve keysym XF86KbdInputAssistNextgrou
Errors from xkbcomp are not fatal to the X server
(EE) failed to read Wayland events: Broken pipe
(EE) failed to write to Xwayland fd: Broken pipe

Edit: Nested seems to work fine Note: Also should matter for now since vulkan protocol for explict sync will only release in nvidia 560 driver

MrDuartePT commented 5 months ago

Using gamescope nested mode in KDE plasma 6.0.4 with Kwin 6.0.4.1 patched with explict sync support works fine.

logs:

user@Gentoo ~ $ gamescope -- mangohud vkcube
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
vulkan: selecting physical device 'NVIDIA GeForce RTX 3070 Laptop GPU': queue family 2 (general queue family 0)
vulkan: physical device supports DRM format modifiers
wlserver: [backend/headless/backend.c:67] Creating headless backend
xdg_backend: Seat name:
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0)
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0)
vulkan: supported DRM formats for sampling usage:
vulkan:   AR24 (0x34325241)
vulkan:   XR24 (0x34325258)
vulkan:   AB24 (0x34324241)
vulkan:   XB24 (0x34324258)
vulkan:   RG16 (0x36314752)
vulkan:   NV12 (0x3231564E)
vulkan:   AB4H (0x48344241)
vulkan:   XB4H (0x48344258)
vulkan:   AB30 (0x30334241)
vulkan:   XB30 (0x30334258)
vulkan:   AR30 (0x30335241)
vulkan:   XR30 (0x30335258)
wlserver: Running compositor on wayland display 'gamescope-0'
wlserver: [backend/headless/backend.c:17] Starting headless backend
wlserver: Successfully initialized libei for input emulation!
wlserver: [util/env.c:9] Loading WLR_NO_HARDWARE_CURSORS option: 1
wlserver: [types/output/output.c:370] WLR_NO_HARDWARE_CURSORS set, forcing software cursors
wlserver: [xwayland/server.c:107] Starting Xwayland on :1
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55cb548b4860 (res 0x55cb55088ea0)
wlserver: [xwayland/server.c:272] Xserver is ready
pipewire: stream state changed: connecting
pipewire: stream state changed: paused
pipewire: stream available on node ID: 95
xwm: Embedded, no cursor set. Using left_ptr by default.
vblank: Using timerfd.
xdg_backend: PreferredMetadata: Red: 0.64 0.33, Green: 0.3 0.6, Blue: 0.15 0.06, White: 0.3127 0.329, Max Luminance: 100 nits, Min Luminance: 0 nits, Max Full Frame Luminance: 100 nits
josh edid: Patching res 800x1280 -> 1280x720
pipewire: renegotiating stream params (size: 1280x720)
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
[2024-05-21 18:31:22.950] [MANGOHUD] [error] [overlay_params.cpp:1003] Failed to read presets file: '/home/mrduarte/.config/MangoHud/presets.conf'
Selected GPU 0: NVIDIA GeForce RTX 3070 Laptop GPU, type: DiscreteGpu
[Gamescope WSI] Creating Gamescope surface: xid: 0x400000
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55cb5505fc90 (res 0x55cb5508fa50)
[Gamescope WSI] Made gamescope surface for xid: 0x400000
[Gamescope WSI] Surface state:
  steam app id:                  0
  window xid:                    0x400000
  wayland surface res id:        5
  layer client flags:            0x0
  server hdr output enabled:     false
  hdr formats exposed to client: false
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x55cb5505d150 (res 0x55cb55090470)
xwm: got the same buffer committed twice, ignoring.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Could not resolve keysym XF86KbdInputAssistPrevgrou
> Warning:          Could not resolve keysym XF86KbdInputAssistNextgrou
Errors from xkbcomp are not fatal to the X server
xdg_backend: Changed refresh to: 165.010hz
[Gamescope WSI] Creating swapchain for xid: 0x400000 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true
[Gamescope WSI] Created swapchain for xid: 0x400000 - imageCount: 3
[Gamescope WSI] Swapchain recieved new refresh cycle: 6.06ms
mattys1 commented 5 months ago

Plasma 6.0.4-1 with kwin patched with explicit sync support, from the kwin-explicit-sync AUR package, doesn't work. Same thing happens without the patch.

~ % gamescope -- vkcube
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
vulkan: selecting physical device 'NVIDIA GeForce GTX 1060 6GB': queue family 2 (general queue family 0)
vulkan: physical device supports DRM format modifiers
wlserver: [backend/headless/backend.c:67] Creating headless backend
xdg_backend: Seat name: 
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0)
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0)
vulkan: supported DRM formats for sampling usage:
vulkan:   AR24 (0x34325241)
vulkan:   XR24 (0x34325258)
vulkan:   AB24 (0x34324241)
vulkan:   XB24 (0x34324258)
vulkan:   RG16 (0x36314752)
vulkan:   NV12 (0x3231564E)
vulkan:   AB4H (0x48344241)
vulkan:   XB4H (0x48344258)
vulkan:   AB30 (0x30334241)
vulkan:   XB30 (0x30334258)
vulkan:   AR30 (0x30335241)
vulkan:   XR30 (0x30335258)
wlserver: Running compositor on wayland display 'gamescope-0'
wlserver: [backend/headless/backend.c:17] Starting headless backend
wlserver: Successfully initialized libei for input emulation!
wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
wlserver: [xwayland/server.c:107] Starting Xwayland on :2
wlserver: [types/wlr_compositor.c:771] New wlr_surface 0x5ff1a4081520 (res 0x5ff1a3efcf60)
wlserver: [xwayland/server.c:272] Xserver is ready
pipewire: stream state changed: connecting
pipewire: stream state changed: paused
pipewire: stream available on node ID: 98
xwm: Embedded, no cursor set. Using left_ptr by default.
vblank: Using timerfd.
xdg_backend: PreferredMetadata: Red: 0.64 0.33, Green: 0.3 0.6, Blue: 0.15 0.06, White: 0.3127 0.329, Max Luminance: 100 nits, Min Luminance: 0 nits, Max Full Frame Luminance: 100 nits
josh edid: Patching res 800x1280 -> 1280x720
xwm: execvp failed: No such file or directory
gamescope: children shut down!
pipewire: renegotiating stream params (size: 1280x720)
(EE) failed to read Wayland events: Broken pipe
~ % 
misyltoad commented 5 months ago

xwm: execvp failed: No such file or directory this means you don't have vkcube on your system

mahkoh commented 5 months ago

drmModeAtomicCommit: Operation not permitted

Sounds like https://github.com/NVIDIA/open-gpu-kernel-modules/issues/622

MrDuartePT commented 5 months ago

drmModeAtomicCommit: Operation not permitted

Sounds like NVIDIA/open-gpu-kernel-modules#622

If nvidia provides a PR for the fix I might try patch kernel-open on my machine to see if solve it. But seems to be that the problem

cubanismo commented 5 months ago

Sorry that we missed this in our testing prior to release. We checked internally to see why, and our testing team was using a gamescope build from before this use of explicit sync in DRM-KMS was added, so we didn't notice the issue. This is indeed due to https://github.com/NVIDIA/open-gpu-kernel-modules/issues/622, which is not fixed in the 555 series drivers. The fix for that issue will arrive in the 560 series.

In the meantime, I've pushed this work-around: https://github.com/ValveSoftware/gamescope/pull/1330

Give it a try and let us know if you run into any other issues. Note this shouldn't actually result in any negative side effects on NVIDIA proprietary drivers, and it should be a no-op on other drivers. Gamescope only uses explicit sync to disable implicit sync. It already manually waits for rendering to complete before presenting its buffers, and the NVIDIA driver doesn't support implicit synchronization of DRM-KMS presentation, so there's nothing to disable.

ryzendew commented 5 months ago

1330 makes it work now but with accelerated web views on this happens

Screenshot from 2024-05-23 20-54-40

ryzendew commented 5 months ago

another issue when this menu is open the mouse vanishes image

MrDuartePT commented 5 months ago

In the meantime, I've pushed this work-around: #1330

For some reason I not seem to get it to compile even when using the latest commit of libliftoff:

FAILED: src/gamescope.p/drm.cpp.o
g++ -Isrc/gamescope.p -Isrc -I../gamescope-3.14.17/src -I../gamescope-3.14.17/src/reshade/source -I../gamescope-3.14.17/src/reshade/include -I../gamescope-3.14.17/thirdparty/SPIRV-Headers/include/spirv/unified1 -Isubprojects/wlroots/include -I../gamescope-3.14.17/subprojects/wlroots/include -Iprotocol -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/SDL2 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -I/usr/include/stb -I/usr/include/libdecor-0 -I/usr/include/libei-1.0 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -DWLR_USE_UNSTABLE -Wno-unused-parameter -Wno-missing-field-initializers -Wno-invalid-offsetof -Wno-unused-const-variable -Wno-volatile -Wno-ignored-qualifiers -Wno-missing-braces -ffast-math -DHAVE_PIPEWIRE=1 -DHAVE_OPENVR=0 '-DHWDATA_PNP_IDS="//usr/share/hwdata/pnp.ids"' -march=native -O3 -pipe -fdiagnostics-color=always -ftree-vectorize -fno-semantic-interposition -DAVIF_DLL -D_REENTRANT -pthread -DHAVE_DRM=1 -DHAVE_SDL2=1 -DHAVE_AVIF=1 -DHAVE_LIBCAP=1 -DHAVE_LIBEIS=1 -MD -MQ src/gamescope.p/drm.cpp.o -MF src/gamescope.p/drm.cpp.o.d -o src/gamescope.p/drm.cpp.o -c ../gamescope-3.14.17/src/drm.cpp
../gamescope-3.14.17/src/drm.cpp: In function ‘int drm_prepare_liftoff(drm_t*, const FrameInfo_t*, bool)’:
../gamescope-3.14.17/src/drm.cpp:2502:84: error: ‘lo_options’ was not declared in this scope; did you mean ‘option’?
 2502 |                 ret = liftoff_output_apply( drm->lo_output, drm->req, drm->flags, &lo_options );
      |                                                                                    ^~~~~~~~~~
      |                                                                                    option

Outdated

See comment: https://github.com/ValveSoftware/gamescope/issues/1320#issuecomment-2128265761

matte-schwartz commented 5 months ago

For some reason I not seem to get it to compile even when using the latest commit of libliftoff:

@MrDuartePT distro? built fine for me with my usual .spec on Fedora

MrDuartePT commented 5 months ago

I on gentoo using the gentoo ebuild I updated libliftoff to the latest commit and now I getting this error on wlroots.

FAILED: subprojects/wlroots/libwlroots.a.p/backend_drm_libliftoff.c.o
gcc -Isubprojects/wlroots/libwlroots.a.p -Isubprojects/wlroots -I../gamescope-3.14.18/subprojects/wlroots -Isubprojects/wlroots/include -I../gamescope-3.14.18/subprojects/wlroots/include -Isubprojects/wlroots/protocol -Isubprojects/wlroots/render/gles2/shaders -Isubprojects/wlroots/render/vulkan/shaders -Isubprojects/wlroots/backend/drm -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/pixman-1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -D_POSIX_C_SOURCE=200809L -DWLR_USE_UNSTABLE -DWLR_LITTLE_ENDIAN=1 -DWLR_BIG_ENDIAN=0 -Wundef -Wlogical-op -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wstrict-prototypes -Wimplicit-fallthrough=2 -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wmissing-prototypes -Walloca -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -fmacro-prefix-map=../gamescope-3.14.18/subprojects/wlroots/= -march=native -O3 -pipe -fdiagnostics-color=always -ftree-vectorize -fno-semantic-interposition -fPIC -MD -MQ subprojects/wlroots/libwlroots.a.p/backend_drm_libliftoff.c.o -MF subprojects/wlroots/libwlroots.a.p/backend_drm_libliftoff.c.o.d -o subprojects/wlroots/libwlroots.a.p/backend_drm_libliftoff.c.o -c ../gamescope-3.14.18/subprojects/wlroots/backend/drm/libliftoff.c
../gamescope-3.14.18/subprojects/wlroots/backend/drm/libliftoff.c: In function ‘commit’:
../gamescope-3.14.18/subprojects/wlroots/backend/drm/libliftoff.c:410:27: error: too few arguments to function ‘liftoff_output_apply’
  410 |                 int ret = liftoff_output_apply(crtc->liftoff, req, flags);
      |                           ^~~~~~~~~~~~~~~~~~~~
In file included from ../gamescope-3.14.18/subprojects/wlroots/backend/drm/libliftoff.c:2:
/usr/include/libliftoff.h:85:1: note: declared here
   85 | liftoff_output_apply(struct liftoff_output *output, drmModeAtomicReq *req,
      | ^~~~~~~~~~~~~~~~~~~~

Strange is that 3.14.17 install just fine

Files of libliftoff:

  * Searching for libliftoff ...
 * Contents of dev-libs/libliftoff-9999:
/usr
/usr/include
/usr/include/libliftoff.h
/usr/lib64
/usr/lib64/libliftoff.so -> libliftoff.so.0
/usr/lib64/libliftoff.so.0 -> libliftoff.so.0.5.0
/usr/lib64/libliftoff.so.0.5.0
/usr/lib64/pkgconfig
/usr/lib64/pkgconfig/libliftoff.pc
/usr/share
/usr/share/doc
/usr/share/doc/libliftoff-9999
/usr/share/doc/libliftoff-9999/README.md.bz2
matte-schwartz commented 5 months ago

I'm not sure how Gentoo does their build but I'd recommend forcing fallback for wlroots,vkroots,libliftoff as Valve does in their current CI and see if that works.

MrDuartePT commented 5 months ago

I'm not sure how Gentoo does their build but I'd recommend forcing fallback for wlroots,vkroots,libliftoff as Valve does in their current CI and see if that works.

wlroots,vkroots will not be necessary because is using the right version only for libliftoff gonna use the fallback, but very strange giving error since the 9999 version basically is using the same commit as valve (9999 is basically the git version)

MrDuartePT commented 5 months ago

I'm not sure how Gentoo does their build but I'd recommend forcing fallback for wlroots,vkroots,libliftoff as Valve does in their current CI and see if that works.

wlroots,vkroots will not be necessary because is using the right version only for libliftoff gonna use the fallback, but very strange giving error since the 9999 version basically is using the same commit as valve (9999 is basically the git version)

Even after fallblack I get the same error, full build log, I was expecting to get this error since the libliftoff version was the same: gamescope-build.log gamescope-3.14.18.ebuild.txt

Note the txt is just to fool github, think the ebuild as sh file

Edit: get to compile directaly from source I need to give a look at vkroots, maybe is outdaded and giving this problem

MrDuartePT commented 5 months ago

@cubanismo @Joshua-Ashton can confirm it work from tty: https://github.com/ValveSoftware/gamescope/assets/68701049/396911c4-e359-4805-976b-629a2ccad53f

And the tearing is also solve on nvidia

Sorry for all the problems why compiling gonna solve the issue on gentoo

For people are interesting on how I get the deck ui working is the deckfier repo on my GitHub

mattys1 commented 5 months ago

xwm: execvp failed: No such file or directory this means you don't have vkcube on your system

You're right, I'm stupid. Gamescope seems to work fine after downloading vkcube.

Algorithm0 commented 5 months ago

@ryzendew, I experienced the same problem with the menu on previous versions of the driver.

MrDuartePT commented 5 months ago

Replying to https://github.com/ValveSoftware/gamescope/issues/1320#issuecomment-2129251820

Found the problem is when I build wlroots with drm option:

-Dwlroots:backends=drm,libinput

You have any ideia why @Joshua-Ashton, at least dosent seem to be needed for gamescope to work in tty/drm mode

matte-schwartz commented 5 months ago

Has anyone been running into the same issue as me? I run Fedora and I have not been able to get steam embedded to work for more than 15 seconds. Steam seems to crash whenever it finishes loading and tries to enter the Home Screen. I filed an issue report here: https://github.com/ValveSoftware/steam-for-linux/issues/10916 but I'm pretty lost how people have gotten Gamescope-session to work on their NVIDIA cards while I haven't.

Algorithm0 commented 5 months ago

@matte-schwartz, Check out my repository. I hope he helps you: https://github.com/Algorithm0/GamescopeSession

git clone https://github.com/Algorithm0/GamescopeSession.git
cd GamescopeSession
git submodule update --init
./config.sh  install

Next, run the video card selection setting for your session:

export-gpu

After this setting, log out. Next, click the gear in the lower left corner (if you are using a gnome), select a Steam session and log in as usual. Of course, you must have the gamescope installed itself.

MrDuartePT commented 5 months ago

Has anyone been running into the same issue as me? I run Fedora and I have not been able to get steam embedded to work for more than 15 seconds. Steam seems to crash whenever it finishes loading and tries to enter the Home Screen. I filed an issue report here: https://github.com/ValveSoftware/steam-for-linux/issues/10916 but I'm pretty lost how people have gotten Gamescope-session to work on their NVIDIA cards while I haven't.

Can try run my script directly from tty: https://github.com/MrDuartePT/deckifier/blob/kde/rootfs/usr/share/gamescope-session/gamescope-session-script

If this what I use to run steam big picture on tty

matte-schwartz commented 5 months ago

thanks for the advice everyone, already tried all of that unfortunately. I've got gamescope-session on several rigs (AMD) that work perfectly so I tried to follow the same process. i can even trigger a crash of steam with gamescope -e -- steam on desktop. seems like a potential nouveau configuration issue on my end that I'll work on sorting out.

BRefreshApplicationsInLibrary 1: 0ms
DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
CDesktopCapturePipeWire: Opening DRM render node /dev/dri/renderD128
free(): double free detected in tcache 2
crash_20240524101428_32.dmp[8434]: Uploading dump (out-of-process)
/tmp/dumps/crash_20240524101428_32.dmp
crash_20240524101428_32.dmp[8434]: Finished uploading minidump (out-of-process): success = yes
crash_20240524101428_32.dmp[8434]: response: CrashID=bp-a42c3098-1991-4150-9ff7-9d5dc2240524
crash_20240524101428_32.dmp[8434]: file ''/tmp/dumps/crash_20240524101428_32.dmp'', upload yes: ''CrashID=bp-a42c3098-1991-4150-9ff7-9d5dc2240524''
/home/matt/.local/share/Steam/steam.sh: line 813:  7999 Aborted                 (core dumped) "$STEAMROOT/$STEAMEXEPATH" "$@"
(EE) failed to read Wayland events: Broken pipe
MrDuartePT commented 5 months ago

Strange because on my machine is working fine as you can see here: https://github.com/ValveSoftware/gamescope/assets/68701049/396911c4-e359-4805-976b-629a2ccad53f

matte-schwartz commented 5 months ago

From what I can tell it's my Steam client causing issues and not Gamescope... very confusing. I'm going to see if anything changes if I uninstall steam and install rpmfusion steam instead of the version I've been using, our own RPM package for Nobara 39 (Fedora) even though they should be equivalent.

matte-schwartz commented 5 months ago

I've been testing this for the past couple days now, particularly embedded gamescope, and for the most part things seem to be working now compared to 545 and earlier. The main issues I still notice particularly with Steam and Gamescope are:

https://github.com/ValveSoftware/gamescope/assets/136293710/49cc57d7-5754-4930-b53f-13e6b45c7731

this same strobing is also present on my 4070 laptop with an internal HDR display, so it does not seem exclusive to external connections. the strobing seems to stop temporarily whenever gamescope stops compositing, like when my cursor was not moving and the menu was static at the very end of the clip.

MrDuartePT commented 5 months ago

It disappear if you open a game? I notice that some bugs on the Steam big picture don't happen when gaming.

matte-schwartz commented 5 months ago

No, happens in-game for me too along with swapchain errors: IMG_1440

gamescope-session.log has a lot of xwm: got the same buffer committed twice, ignoring. and also a drmModeAtomicCommit: Operation not permitted. the only time i've seen these xwm errors spam like this and that drmModeAtomicCommit is if I use my display with HDR enabled. I'm going to dig deeper to see if i can figure this out.

MrDuartePT commented 5 months ago

Well I didn't test HDR maybe is a problem only with that. Because without HDR everthing works fine.

The only problem I have, was the fps in the Steam big picture are a bit low. But in game was fine.

Also the two menus of the ui are a very slow but it kinda usable since in game everthing work ok (20 fps main windows, 10 to 15 in the two submenus)

matte-schwartz commented 5 months ago

Well I didn't test HDR maybe is a problem only with that. Because without HDR everthing works fine.

Yes I believe it's only HDR with the issue I posted the video of.

The only problem I have, was the fps in the Steam big picture are a bit low. But in game was fine.

Make sure Gamescope is actually using your nvidia.json ICD file, I found mine seemed to be trying to use LLVMpipe or my iGPU even though it was disabled in the BIOS. VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia.json (or whatever the exact name is) and then the rest of your Gamescope command follows, and see if your menus are any better. Mine render at a stable 175hz, even though they still have the visual corruption I noted.

You might be able to achieve this with a Gamescope launch option but I haven't had the time to check for myself.

matte-schwartz commented 5 months ago

after diffing my logs with no HDR and no flashing screen vs logs with HDR enabled and flashing screen like my earlier video.

the main difference seems to be:

drmModeAtomicCommit: Permission denied

is included several times in my bad gamescope log that has HDR enabled, while no such messages appear in my good gamescope log.

I've tested both an internal laptop display (4070 mobile) with gamescope-session and export STEAM_GAMESCOPE_FORCE_HDR_DEFAULT=1, and I've also tested my desktop NVIDIA rig (4090) with an HDR external monitor and using steam's HDR built-in toggle for external panels. Both have this corruption issue, leading me to believe it's HDR specifically that's an issue.

@cubanismo I'm using gamescope built from master with your IN_FENCE_FD workaround merged. Is it possible this workaround isn't applying properly to HDR colorspace? Or maybe something different triggers this specific instance of drmModeAtomicCommit: Permission denied that I'm unaware of.

edit: I see now this is ever so slightly different from the drmModeAtomicCommit: Operation not permitted that started this. so it seems like a separate, but perhaps related, error after all

MrDuartePT commented 5 months ago

Make sure Gamescope is actually using your nvidia.json ICD file, I found mine seemed to be trying to use LLVMpipe or my iGPU even though it was disabled in the BIOS. VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia.json (or whatever the exact name is) and then the rest of your Gamescope command follows, and see if your menus are any better. Mine render at a stable 175hz, even though they still have the visual corruption I noted.

After digging more I find out the fps is only bad on the laptop screen even when using the VK_DRIVER_FILES don't know why that happen but it possible to solve if I bump this ChimeraOS patch, (basically make gamescope think my laptop screen is a external one).

Edit: Seems that bazzite have the patches up to date: https://github.com/ublue-os/bazzite/tree/main/spec_files/gamescope

cubanismo commented 5 months ago

after diffing my logs with no HDR and no flashing screen vs logs with HDR enabled and flashing screen like my earlier video.

the main difference seems to be:

drmModeAtomicCommit: Permission denied

is included several times in my bad gamescope log that has HDR enabled, while no such messages appear in my good gamescope log.

Co-worker and I tried today, and we weren't able to reproduce this. I see both the permission denied errors are at the end, and just after a session paused message. Naive guess: Is it possible you VT-switched away at some point in this session, but didn't in the non-HDR one?

matte-schwartz commented 5 months ago

Co-worker and I tried today, and we weren't able to reproduce this. I see both the permission denied errors are at the end, and just after a session paused message. Naive guess: Is it possible you VT-switched away at some point in this session, but didn't in the non-HDR one?

could certainly have been VT switching but it seemed to happen on fresh boots directly into a gamescope-session as well... I'll circle back to more testing in the near future, especially now that I've solved the mystery of the steam client glitching out: https://github.com/ValveSoftware/steam-for-linux/issues/10537#issuecomment-2141092415

HybridEidolon commented 5 months ago

Confirming that on nvidia 550 released the other day, a GTX 1080 running gamescope steam with steampal mode directly as a session has the mangled Steam UI and compositing black screen issues, but games seem to run perfectly fine as long as they continuously refresh. Any keyboard or controller interaction outside of a game seems to trigger the black screen refresh problem. Steam UI flickers a lot.

The refresh is probably the key issue for the screen going black; if explicit sync is required for gamescope drm to work correctly here, it's not going to be available until the 555 beta driver (which I guess is delayed). Web render target corruption, maybe a Steam bug?

Also the two menus of the ui are a very slow but it kinda usable since in game everthing work ok (20 fps main windows, 10 to 15 in the two submenus)

I had this until I turned on GPU accelerated webviews, which for some reason defaulted to "off". Steam runs at full speed with it on.

HybridEidolon commented 5 months ago

Passing --force-composition to gamescope fixes the screen going black, but does not fix the steam UI corruption and flickering. I suspect that is a Steam client bug and not anything to do with Gamescope, because I see similar issues under Gnome Mutter Wayland.

The --force-composition trick only works if steam is launched only with -gamepadui and not -steampal, -steamos3, or -steamdeck, which I assume at least one does stuff with the gamescope integration to override that.

MrDuartePT commented 5 months ago

The refresh is probably the key issue for the screen going black; if explicit sync is required for gamescope drm to work correctly here, it's not going to be available until the 555 beta driver (which I guess is delayed). Web render target corruption, maybe a Steam bug?

The corruption will be fix in the future driver probably 560 when both Vulkan explicit sync protocol and ID_FENCE is implemented, but this is just an assumption, I can be wrong.

About 555 drivers it already release one week ago: https://www.nvidia.com/download/driverResults.aspx/224751/en-us/

https://github.com/NVIDIA/open-gpu-kernel-modules/tree/555.42.02

cubanismo commented 5 months ago

The corruption will be fix in the future driver probably 560 when both Vulkan explicit sync protocol and ID_FENCE is implemented, but this is just an assumption, I can be wrong.

IN_FENCE_FD support won't affect Gamescope's usage, as of the latest gamescope code. It's very, very unlikely Vulkan explicit sync will affect anything you're running in gamescope either, unless you're using a native Linux Vulkan app with direct Wayland support or you've forced WINE to use its very early Wayland backend. Sync issues for Gamescope purposes should all be resolved in 555 baring bugs.

MrDuartePT commented 5 months ago

The corruption will be fix in the future driver probably 560 when both Vulkan explicit sync protocol and ID_FENCE is implemented, but this is just an assumption, I can be wrong.

IN_FENCE_FD support won't affect Gamescope's usage, as of the latest gamescope code. It's very, very unlikely Vulkan explicit sync will affect anything you're running in gamescope either, unless you're using a native Linux Vulkan app with direct Wayland support or you've forced WINE to use its very early Wayland backend. Sync issues for Gamescope purposes should all be resolved in 555 baring bugs.

Well I notice the cs2 crash Steam big picture after open when gamescope is run from tty, since is a Vulkan Linux native game might have some improvement with the protocol (if valve decides to enable Wayland support, for now the cs2.sh force SDL to use X11 if I not wrong, can be edited but might trigger VAC and disable online), let see if get solve after 555 stable. Thanks for correcting me tho.

HybridEidolon commented 5 months ago

About 555 drivers it already release one week ago...

I got a chance to test them and did not see any discernible sync behavior changes between 550 with gamescope master and 555, with all the config variations. I'm guessing all my issues are stemming from Steam under Wayland with gamescope integration at this point, not gamescope. So I think

Sync issues for Gamescope purposes should all be resolved in 555 baring bugs.

is correct, assuming gamescope drm is compositing a well-behaving application, which Steam with gamescope integration (-steampal, etc) does not appear to be under NVIDIA. I do not experience any of the crashing that OP mentions.

*All tested on proprietary modules, not the OpenGPU ones. I don't believe Pascal is supported with their open modules.

MrDuartePT commented 5 months ago

is correct, assuming gamescope drm is compositing a well-behaving application, which Steam with gamescope integration (-steampal, etc) does not appear to be under NVIDIA. I do not experience any of the crashing that OP mentions.

*All tested on proprietary modules, not the OpenGPU ones. I don't believe Pascal is supported with their open modules.

The only think I notice is low refresh rate (stuck between 15-25fps) in the steam big picture ui itself, but besides that inside games everthink work fine (besides the cs2 crash), but I on the OpenGPU driver.

matte-schwartz commented 5 months ago

IN_FENCE_FD support won't affect Gamescope's usage, as of the latest gamescope code. It's very, very unlikely Vulkan explicit sync will affect anything you're running in gamescope either, unless you're using a native Linux Vulkan app with direct Wayland support or you've forced WINE to use its very early Wayland backend. Sync issues for Gamescope purposes should all be resolved in 555 baring bugs.

Interesting, thanks for the additional context here. I've found that right now, if I run nested gamescope (i.e. from my Plasma 6 desktop) with gamescope -e -f -r 144 --hdr-enabled -H 1440 -W 3440 -C 4 --adaptive-sync -- steam -steamdeck -steamos3 -steampal -tenfoot I get fantastic looking HDR without any of the flickering in my recorded video.

However, if I attempt to use gamescope -e --hdr-enabled -H 1440 -W 3440 -C 4 --adaptive-sync -- steam -steamdeck -steamos3 -steampal -tenfoot in an embedded gamescope session (i.e. from TTY or with gamescope-session), it results in the horrible flickering as previously recorded. This happens with both my normal ultrawide monitor w/ HDR connected via Displayport, and it happens with my 4K TV w/ HDR connected via HDMI. I've tested on vanilla Fedora 39/40, Nobara 40 (a gaming distro for Fedora), and Arch Linux and embedded gamescope has the same flickering in all of them. Without --hdr-enabled, no flickering is present for me in gamescope-session.

I plan on filing this in the NVIDIA dev forum's 555.42.02 feedback thread just in case anyone is running into similar issues specifically with embedded gamescope/HDR.

Edit: actually, if i force 720p in the display resolution settings of gamescope-session/embedded gamescope, HDR works without flickering. I wonder if maybe HDR metadata is "larger" or different than through kwin? not too sure yet.

Syntist commented 5 months ago

I am facing an issue, It crashes my Desktop. I am using KDE 6.1 beta. gamescope -- vkcube

also tried running with __NV_PRIME_RENDER_OFFLOAD=1 gamescope -- mangohud vkcube;

Jun 04 12:02:27 syntist-pc kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x00000000258da6f3
Jun 04 12:02:27 syntist-pc kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x00000000a7cc0528
Jun 04 12:02:27 syntist-pc kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x00000000258da6f3
Jun 04 12:02:27 syntist-pc kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x00000000258da6f3
Jun 04 12:02:27 syntist-pc kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x00000000a7cc0528
Jun 04 12:02:27 syntist-pc kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x00000000258da6f3
❯ fastfetch
           .-------------------------:                    syntist@syntist-pc
          .+=========================.                    ------------------
         :++===++==================-       :++-           OS: CachyOS Linux x86_64
        :*++====+++++=============-        .==:           Host: Precision 5570
       -*+++=====+***++==========:                        Kernel: Linux 6.9.3-2-cachyos-lto
      =*++++========------------:                         Uptime: 38 mins
     =*+++++=====-                     ...                Packages: 1261 (pacman), 28 (flatpak-system), 2 (flatpak-user)
   .+*+++++=-===:                    .=+++=:              Shell: zsh 5.9
  :++++=====-==:                     -*****+              Display (SHP1515): 1920x1200 @ 66Hz (as 960x600) [Built-in]
 :++========-=.                      .=+**+.              DE: KDE Plasma 6.0.90
.+==========-.                          .                 WM: KWin (Wayland)
 :+++++++====-                                .--==-.     WM Theme: Breeze
  :++==========.                             :+++++++:    Theme: Breeze (Dark) [QT], Breeze-Dark [GTK2], Breeze [GTK3/4]
   .-===========.                            =*****+*+    Icons: breeze-dark [QT], breeze-dark [GTK2/3/4]
    .-===========:                           .+*****+:    Font: Noto Sans (10pt) [QT], Noto Sans (10pt) [GTK2/3/4]
      -=======++++:::::::::::::::::::::::::-:  .---:      Cursor: Breeze_Light (24px)
       :======++++====+++******************=.             Terminal: konsole 24.5.0
        :=====+++==========++++++++++++++*-               Terminal Font: MesloLGS NF (10pt)
         .====++==============++++++++++*-                CPU: 12th Gen Intel(R) Core(TM) i7-12800H (20) @ 4.80 GHz
          .===+==================+++++++:                 GPU 1: NVIDIA RTX A1000 Laptop GPU
           .-=======================+++:                  GPU 2: Intel Iris Xe Graphics @ 1.40 GHz [Integrated]
             ..........................                   Memory: 4.38 GiB / 15.30 GiB (29%)
                                                          Swap: 0 B / 31.55 GiB (0%)
                                                          Disk (/): 209.94 GiB / 237.41 GiB (88%) - xfs
                                                          Local IP (wlan0): 10.1.10.170/24 *
                                                          Battery: 55% [Discharging]
                                                          Locale: en_US.UTF-8
cubanismo commented 5 months ago

Those errors from the DRM driver shouldn't be fatal. Do you have any info on the actual failure/crash?

Syntist commented 5 months ago

I was able to get the output stored into file, so it crashes i still have the log

Gamescope log of crashing desktop: https://paste.cachyos.org/p/2f52da3

and journactl log https://paste.cachyos.org/p/2feddeb

Edited: When I run with ENABLE_GAMESCOPE_WSI=0 gamescope vkcube it doesn't crash but The ui is never shown, so it's running in background or something log: https://paste.cachyos.org/p/9d181c5

Algorithm0 commented 5 months ago

Replying to https://github.com/ValveSoftware/gamescope/issues/1320#issuecomment-2146341973

The problem you describe is very close to mine, it seems to me - but in general, all this ends in the fall of the gamescope. also an interesting moment: if I turn on HDR in the steam interface itself, then I see a ugly picture. This picture is all shimmering, does not display some parts of the screen, however, the TV says that the HDR is on and no drop occurs.

matte-schwartz commented 5 months ago

I've made progress on my HDR issue. It appears that anything above 2560x1440p@120hz causes the intense flickering I noted in previous clips I posted. It happens across both my ultrawide monitor with DisplayPort and also my HDMI 2.1 port to my 4K TV. Artifacting happens over that resolution/refresh rate for both ports.

At 2560x1440@120hz or less HDR is perfect in Gamescope-session. Should also be noted I'm able to go above that resolution on nested Gamescope in Plasma 6

cubanismo commented 5 months ago

That's interesting. I'm not a monitor/display expert myself, but I wonder if that is at the limit of some threshhold in bandwidth where things go from single-channel->mutli-channel, switch to some decimated YUV mode, etc.

matte-schwartz commented 5 months ago

Hmm, I wish I knew more about this stuff! I've been trying to sift through gamescope code to see if I could find any differentiation between using Plasma 6's HDR with nested gamescope vs using gamescope-session's HDR colorspace and haven't turned anything useful up yet. I'll probably post about this on the Nvidia dev forums as well to see if anyone is experiencing similar issues.