Nvidia Users Testers Requested (Sway on Nvidia, Steam on Wayland)

@colemickens sent the following PR, but it hasn’t been looked at/approved yet:
https://github.com/NixOS/nixpkgs/pull/150907

I have gnome installed as well, I’ll take a look to see if xwayland has an output from eglinfo

eglinfo doesn’t work in Gnome+Wayland either. I get the following output from eglinfo:

X11 platform:
eglinfo: eglInitialize failed

@colemickens could this be because we’re using the egl-wayland implementation rather than the vanilla wayland implementation?

I’m going to look at filtering out -Dxwayland_eglstream=true from the meson flags

I’m using Gnome wayland with Nvidia 495 without great problems. Some QT applications I use, like neovim-qt, has some border problems. it’s hard to resize the window because are in the border is very tiny. Some OpenGL applications, like Meshlab, are not working with Xwayland. But Firefox, Steam, Chrome are working OK. Maybe it’s needed some updates in the Nvidia driver yet or Update Mesa to 21.3 branch.

Hmm, I don’t really understand the first sentence to be honest. My understanding is that egl-wayland is a dependency used in some applications that then hooks into Nvidia’s actual egl implementation. As far as I can tell, I have everything configured correctly, but I do see the same thing as you - eglinfo failing with XWayland.

Honestly, I gave up. My Nvidia machine is turning back into a permanent gaming machine and I’m moving my development environment back to an Oracle Cloud free-tier 4core/32GB instance, since I got iPXE/netboot working. I’m probably only going to be in Sway, rarely, on a Ryzen laptop, so I probably won’t be able to chime in a lot more here.

And of course you should try since it’s been a while, but I’m pretty sure I tried disabling that xwayland meson option and didn’t get any better results :confused: but please let us know of course.

EDIT: Also, credit for the most recent nvidia bumps go to other folks, not me, sorry/thanks!

Can you please run eglinfo and tell us if Xwayland support works under GNOME? I have a slight suspicion that everything is fine on the NixOS side and maybe Sway isn’t starting X correctly? (But that’s just via process of elimination, I have no concrete reason to suspect sway/wlroots other than being out of ideas)

eglinfo output:

EGL client extensions string:
    EGL_EXT_platform_base EGL_EXT_device_base
    EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions
    EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_platform_x11
    EGL_EXT_platform_device EGL_KHR_platform_wayland
    EGL_EXT_platform_wayland EGL_KHR_platform_gbm EGL_MESA_platform_gbm

GBM platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_client_sync
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export
    EGL_EXT_output_base EGL_EXT_output_drm EGL_EXT_protected_content
    EGL_EXT_stream_consumer_egloutput EGL_EXT_stream_acquire_mode
    EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs
    EGL_KHR_create_context_no_error EGL_KHR_context_flush_control
    EGL_KHR_create_context EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update
    EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context
    EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
    EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base
    EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib
    EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd
    EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface
    EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync
    EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
    EGL_NV_stream_cross_display EGL_NV_stream_cross_object
    EGL_NV_stream_cross_process EGL_NV_stream_cross_system
    EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
    EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
    EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
    EGL_NV_stream_sync EGL_NV_stream_fifo_next
    EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv
    EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time
    EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
    EGL_NV_robustness_video_memory_purge EGL_WL_bind_wayland_display
    EGL_WL_wayland_eglstream
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces 
---------------------------------------------------------------------
0x01 32  0  8  8  8  8 24  8  0 0 0x34325241--         y  y  y     win,pb,str
0x02 32  0  8  8  8  8 24  0  0 0 0x34325241--         y  y  y     win,pb,str
0x03 32  0  8  8  8  8  0  8  0 0 0x34325241--         y  y  y     win,pb,str
0x04 32  0  8  8  8  8  0  0  0 0 0x34325241--         y  y  y     win,pb,str
0x05 32  0  8  8  8  8 24  8  2 1 0x34325241--         y  y  y     win,pb,str
0x06 32  0  8  8  8  8 24  0  2 1 0x34325241--         y  y  y     win,pb,str
0x07 32  0  8  8  8  8  0  8  2 1 0x34325241--         y  y  y     win,pb,str
0x08 32  0  8  8  8  8  0  0  2 1 0x34325241--         y  y  y     win,pb,str
0x09 32  0  8  8  8  8 24  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0a 32  0  8  8  8  8 24  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0b 32  0  8  8  8  8 24  0  4 1 0x34325241--         y  y  y     win,pb,str
0x0c 32  0  8  8  8  8 24  0  4 1 0x34325241--         y  y  y     win,pb,str
0x0d 32  0  8  8  8  8  0  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0e 32  0  8  8  8  8  0  8  4 1 0x34325241--         y  y  y     win,pb,str
0x0f 32  0  8  8  8  8  0  0  4 1 0x34325241--         y  y  y     win,pb,str
0x10 32  0  8  8  8  8  0  0  4 1 0x34325241--         y  y  y     win,pb,str
0x11 32  0  8  8  8  8 24  8  8 1 0x34325241--         y  y  y     win,pb,str
0x12 32  0  8  8  8  8 24  0  8 1 0x34325241--         y  y  y     win,pb,str
0x13 32  0  8  8  8  8  0  8  8 1 0x34325241--         y  y  y     win,pb,str
0x14 32  0  8  8  8  8  0  0  8 1 0x34325241--         y  y  y     win,pb,str
0x15 24  0  8  8  8  0 24  8  0 0 0x34325258--         y  y  y     win,pb,str
0x16 24  0  8  8  8  0 24  0  0 0 0x34325258--         y  y  y     win,pb,str
0x17 24  0  8  8  8  0  0  8  0 0 0x34325258--         y  y  y     win,pb,str
0x18 24  0  8  8  8  0  0  0  0 0 0x34325258--         y  y  y     win,pb,str
0x19 24  0  8  8  8  0 24  8  2 1 0x34325258--         y  y  y     win,pb,str
0x1a 24  0  8  8  8  0 24  0  2 1 0x34325258--         y  y  y     win,pb,str
0x1b 24  0  8  8  8  0  0  8  2 1 0x34325258--         y  y  y     win,pb,str
0x1c 24  0  8  8  8  0  0  0  2 1 0x34325258--         y  y  y     win,pb,str
0x1d 24  0  8  8  8  0 24  8  4 1 0x34325258--         y  y  y     win,pb,str
0x1e 24  0  8  8  8  0 24  8  4 1 0x34325258--         y  y  y     win,pb,str
0x1f 24  0  8  8  8  0 24  0  4 1 0x34325258--         y  y  y     win,pb,str
0x20 24  0  8  8  8  0 24  0  4 1 0x34325258--         y  y  y     win,pb,str
0x21 24  0  8  8  8  0  0  8  4 1 0x34325258--         y  y  y     win,pb,str
0x22 24  0  8  8  8  0  0  8  4 1 0x34325258--         y  y  y     win,pb,str
0x23 24  0  8  8  8  0  0  0  4 1 0x34325258--         y  y  y     win,pb,str
0x24 24  0  8  8  8  0  0  0  4 1 0x34325258--         y  y  y     win,pb,str
0x25 24  0  8  8  8  0 24  8  8 1 0x34325258--         y  y  y     win,pb,str
0x26 24  0  8  8  8  0 24  0  8 1 0x34325258--         y  y  y     win,pb,str
0x27 24  0  8  8  8  0  0  8  8 1 0x34325258--         y  y  y     win,pb,str
0x28 24  0  8  8  8  0  0  0  8 1 0x34325258--         y  y  y     win,pb,str
0x29 16  0  5  6  5  0 24  8  0 0 0x36314752--         y  y  y     win,pb,str
0x2a 16  0  5  6  5  0 24  0  0 0 0x36314752--         y  y  y     win,pb,str
0x2b 16  0  5  6  5  0 16  0  0 0 0x36314752--         y  y  y     win,pb,str
0x2c 16  0  5  6  5  0  0  8  0 0 0x36314752--         y  y  y     win,pb,str
0x2d 16  0  5  6  5  0  0  0  0 0 0x36314752--         y  y  y     win,pb,str
0x2e 16  0  5  6  5  0 24  8  2 1 0x36314752--         y  y  y     win,pb,str
0x2f 16  0  5  6  5  0 24  0  2 1 0x36314752--         y  y  y     win,pb,str
0x30 16  0  5  6  5  0 16  0  2 1 0x36314752--         y  y  y     win,pb,str
0x31 16  0  5  6  5  0  0  8  2 1 0x36314752--         y  y  y     win,pb,str
0x32 16  0  5  6  5  0  0  0  2 1 0x36314752--         y  y  y     win,pb,str
0x33 16  0  5  6  5  0 24  8  4 1 0x36314752--         y  y  y     win,pb,str
0x34 16  0  5  6  5  0 24  8  4 1 0x36314752--         y  y  y     win,pb,str
0x35 16  0  5  6  5  0 24  0  4 1 0x36314752--         y  y  y     win,pb,str
0x36 16  0  5  6  5  0 24  0  4 1 0x36314752--         y  y  y     win,pb,str
0x37 16  0  5  6  5  0 16  0  4 1 0x36314752--         y  y  y     win,pb,str
0x38 16  0  5  6  5  0 16  0  4 1 0x36314752--         y  y  y     win,pb,str
0x39 16  0  5  6  5  0  0  8  4 1 0x36314752--         y  y  y     win,pb,str
0x3a 16  0  5  6  5  0  0  8  4 1 0x36314752--         y  y  y     win,pb,str
0x3b 16  0  5  6  5  0  0  0  4 1 0x36314752--         y  y  y     win,pb,str
0x3c 16  0  5  6  5  0  0  0  4 1 0x36314752--         y  y  y     win,pb,str
0x3d 16  0  5  6  5  0 24  8  8 1 0x36314752--         y  y  y     win,pb,str
0x3e 16  0  5  6  5  0 24  0  8 1 0x36314752--         y  y  y     win,pb,str
0x3f 16  0  5  6  5  0 16  0  8 1 0x36314752--         y  y  y     win,pb,str
0x40 16  0  5  6  5  0  0  8  8 1 0x36314752--         y  y  y     win,pb,str
0x41 16  0  5  6  5  0  0  0  8 1 0x36314752--         y  y  y     win,pb,str

Wayland platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_client_sync
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export
    EGL_EXT_output_base EGL_EXT_output_drm EGL_EXT_protected_content
    EGL_EXT_stream_consumer_egloutput EGL_EXT_stream_acquire_mode
    EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs
    EGL_KHR_create_context_no_error EGL_KHR_context_flush_control
    EGL_KHR_create_context EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update
    EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context
    EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
    EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base
    EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib
    EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd
    EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface
    EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync
    EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
    EGL_NV_stream_cross_display EGL_NV_stream_cross_object
    EGL_NV_stream_cross_process EGL_NV_stream_cross_system
    EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
    EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
    EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
    EGL_NV_stream_sync EGL_NV_stream_fifo_next
    EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv
    EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time
    EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
    EGL_NV_robustness_video_memory_purge EGL_WL_bind_wayland_display
    EGL_WL_wayland_eglstream
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces 
---------------------------------------------------------------------
0x01 32  0  8  8  8  8 24  8  0 0 0x00--         y  y  y     win,pb,str
0x02 32  0  8  8  8  8 24  0  0 0 0x00--         y  y  y     win,pb,str
0x03 32  0  8  8  8  8  0  8  0 0 0x00--         y  y  y     win,pb,str
0x04 32  0  8  8  8  8  0  0  0 0 0x00--         y  y  y     win,pb,str
0x05 32  0  8  8  8  8 24  8  2 1 0x00--         y  y  y     win,pb,str
0x06 32  0  8  8  8  8 24  0  2 1 0x00--         y  y  y     win,pb,str
0x07 32  0  8  8  8  8  0  8  2 1 0x00--         y  y  y     win,pb,str
0x08 32  0  8  8  8  8  0  0  2 1 0x00--         y  y  y     win,pb,str
0x09 32  0  8  8  8  8 24  8  4 1 0x00--         y  y  y     win,pb,str
0x0a 32  0  8  8  8  8 24  8  4 1 0x00--         y  y  y     win,pb,str
0x0b 32  0  8  8  8  8 24  0  4 1 0x00--         y  y  y     win,pb,str
0x0c 32  0  8  8  8  8 24  0  4 1 0x00--         y  y  y     win,pb,str
0x0d 32  0  8  8  8  8  0  8  4 1 0x00--         y  y  y     win,pb,str
0x0e 32  0  8  8  8  8  0  8  4 1 0x00--         y  y  y     win,pb,str
0x0f 32  0  8  8  8  8  0  0  4 1 0x00--         y  y  y     win,pb,str
0x10 32  0  8  8  8  8  0  0  4 1 0x00--         y  y  y     win,pb,str
0x11 32  0  8  8  8  8 24  8  8 1 0x00--         y  y  y     win,pb,str
0x12 32  0  8  8  8  8 24  0  8 1 0x00--         y  y  y     win,pb,str
0x13 32  0  8  8  8  8  0  8  8 1 0x00--         y  y  y     win,pb,str
0x14 32  0  8  8  8  8  0  0  8 1 0x00--         y  y  y     win,pb,str
0x15 24  0  8  8  8  0 24  8  0 0 0x00--         y  y  y     win,pb,str
0x16 24  0  8  8  8  0 24  0  0 0 0x00--         y  y  y     win,pb,str
0x17 24  0  8  8  8  0  0  8  0 0 0x00--         y  y  y     win,pb,str
0x18 24  0  8  8  8  0  0  0  0 0 0x00--         y  y  y     win,pb,str
0x19 24  0  8  8  8  0 24  8  2 1 0x00--         y  y  y     win,pb,str
0x1a 24  0  8  8  8  0 24  0  2 1 0x00--         y  y  y     win,pb,str
0x1b 24  0  8  8  8  0  0  8  2 1 0x00--         y  y  y     win,pb,str
0x1c 24  0  8  8  8  0  0  0  2 1 0x00--         y  y  y     win,pb,str
0x1d 24  0  8  8  8  0 24  8  4 1 0x00--         y  y  y     win,pb,str
0x1e 24  0  8  8  8  0 24  8  4 1 0x00--         y  y  y     win,pb,str
0x1f 24  0  8  8  8  0 24  0  4 1 0x00--         y  y  y     win,pb,str
0x20 24  0  8  8  8  0 24  0  4 1 0x00--         y  y  y     win,pb,str
0x21 24  0  8  8  8  0  0  8  4 1 0x00--         y  y  y     win,pb,str
0x22 24  0  8  8  8  0  0  8  4 1 0x00--         y  y  y     win,pb,str
0x23 24  0  8  8  8  0  0  0  4 1 0x00--         y  y  y     win,pb,str
0x24 24  0  8  8  8  0  0  0  4 1 0x00--         y  y  y     win,pb,str
0x25 24  0  8  8  8  0 24  8  8 1 0x00--         y  y  y     win,pb,str
0x26 24  0  8  8  8  0 24  0  8 1 0x00--         y  y  y     win,pb,str
0x27 24  0  8  8  8  0  0  8  8 1 0x00--         y  y  y     win,pb,str
0x28 24  0  8  8  8  0  0  0  8 1 0x00--         y  y  y     win,pb,str
0x29 16  0  5  6  5  0 24  8  0 0 0x00--         y  y  y     win,pb,str
0x2a 16  0  5  6  5  0 24  0  0 0 0x00--         y  y  y     win,pb,str
0x2b 16  0  5  6  5  0 16  0  0 0 0x00--         y  y  y     win,pb,str
0x2c 16  0  5  6  5  0  0  8  0 0 0x00--         y  y  y     win,pb,str
0x2d 16  0  5  6  5  0  0  0  0 0 0x00--         y  y  y     win,pb,str
0x2e 16  0  5  6  5  0 24  8  2 1 0x00--         y  y  y     win,pb,str
0x2f 16  0  5  6  5  0 24  0  2 1 0x00--         y  y  y     win,pb,str
0x30 16  0  5  6  5  0 16  0  2 1 0x00--         y  y  y     win,pb,str
0x31 16  0  5  6  5  0  0  8  2 1 0x00--         y  y  y     win,pb,str
0x32 16  0  5  6  5  0  0  0  2 1 0x00--         y  y  y     win,pb,str
0x33 16  0  5  6  5  0 24  8  4 1 0x00--         y  y  y     win,pb,str
0x34 16  0  5  6  5  0 24  8  4 1 0x00--         y  y  y     win,pb,str
0x35 16  0  5  6  5  0 24  0  4 1 0x00--         y  y  y     win,pb,str
0x36 16  0  5  6  5  0 24  0  4 1 0x00--         y  y  y     win,pb,str
0x37 16  0  5  6  5  0 16  0  4 1 0x00--         y  y  y     win,pb,str
0x38 16  0  5  6  5  0 16  0  4 1 0x00--         y  y  y     win,pb,str
0x39 16  0  5  6  5  0  0  8  4 1 0x00--         y  y  y     win,pb,str
0x3a 16  0  5  6  5  0  0  8  4 1 0x00--         y  y  y     win,pb,str
0x3b 16  0  5  6  5  0  0  0  4 1 0x00--         y  y  y     win,pb,str
0x3c 16  0  5  6  5  0  0  0  4 1 0x00--         y  y  y     win,pb,str
0x3d 16  0  5  6  5  0 24  8  8 1 0x00--         y  y  y     win,pb,str
0x3e 16  0  5  6  5  0 24  0  8 1 0x00--         y  y  y     win,pb,str
0x3f 16  0  5  6  5  0 16  0  8 1 0x00--         y  y  y     win,pb,str
0x40 16  0  5  6  5  0  0  8  8 1 0x00--         y  y  y     win,pb,str
0x41 16  0  5  6  5  0  0  0  8 1 0x00--         y  y  y     win,pb,str

X11 platform:
eglinfo: eglInitialize failed

Device platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
EGL extensions string:
    EGL_EXT_buffer_age EGL_EXT_client_sync
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export
    EGL_EXT_output_base EGL_EXT_output_drm EGL_EXT_protected_content
    EGL_EXT_stream_consumer_egloutput EGL_EXT_stream_acquire_mode
    EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs
    EGL_KHR_create_context_no_error EGL_KHR_context_flush_control
    EGL_KHR_create_context EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update
    EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context
    EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
    EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base
    EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib
    EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd
    EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface
    EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync
    EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
    EGL_NV_stream_cross_display EGL_NV_stream_cross_object
    EGL_NV_stream_cross_process EGL_NV_stream_cross_system
    EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
    EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
    EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
    EGL_NV_stream_sync EGL_NV_stream_fifo_next
    EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv
    EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time
    EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
    EGL_NV_robustness_video_memory_purge EGL_WL_bind_wayland_display
    EGL_WL_wayland_eglstream
Configurations:
     bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
  id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces 
---------------------------------------------------------------------
0x01 32  0  8  8  8  8 24  8  0 0 0x00--         y  y  y     pb,str
0x02 32  0  8  8  8  8 24  0  0 0 0x00--         y  y  y     pb,str
0x03 32  0  8  8  8  8  0  8  0 0 0x00--         y  y  y     pb,str
0x04 32  0  8  8  8  8  0  0  0 0 0x00--         y  y  y     pb,str
0x05 32  0  8  8  8  8 24  8  2 1 0x00--         y  y  y     pb,str
0x06 32  0  8  8  8  8 24  0  2 1 0x00--         y  y  y     pb,str
0x07 32  0  8  8  8  8  0  8  2 1 0x00--         y  y  y     pb,str
0x08 32  0  8  8  8  8  0  0  2 1 0x00--         y  y  y     pb,str
0x09 32  0  8  8  8  8 24  8  4 1 0x00--         y  y  y     pb,str
0x0a 32  0  8  8  8  8 24  8  4 1 0x00--         y  y  y     pb,str
0x0b 32  0  8  8  8  8 24  0  4 1 0x00--         y  y  y     pb,str
0x0c 32  0  8  8  8  8 24  0  4 1 0x00--         y  y  y     pb,str
0x0d 32  0  8  8  8  8  0  8  4 1 0x00--         y  y  y     pb,str
0x0e 32  0  8  8  8  8  0  8  4 1 0x00--         y  y  y     pb,str
0x0f 32  0  8  8  8  8  0  0  4 1 0x00--         y  y  y     pb,str
0x10 32  0  8  8  8  8  0  0  4 1 0x00--         y  y  y     pb,str
0x11 32  0  8  8  8  8 24  8  8 1 0x00--         y  y  y     pb,str
0x12 32  0  8  8  8  8 24  0  8 1 0x00--         y  y  y     pb,str
0x13 32  0  8  8  8  8  0  8  8 1 0x00--         y  y  y     pb,str
0x14 32  0  8  8  8  8  0  0  8 1 0x00--         y  y  y     pb,str
0x15 24  0  8  8  8  0 24  8  0 0 0x00--         y  y  y     pb,str
0x16 24  0  8  8  8  0 24  0  0 0 0x00--         y  y  y     pb,str
0x17 24  0  8  8  8  0  0  8  0 0 0x00--         y  y  y     pb,str
0x18 24  0  8  8  8  0  0  0  0 0 0x00--         y  y  y     pb,str
0x19 24  0  8  8  8  0 24  8  2 1 0x00--         y  y  y     pb,str
0x1a 24  0  8  8  8  0 24  0  2 1 0x00--         y  y  y     pb,str
0x1b 24  0  8  8  8  0  0  8  2 1 0x00--         y  y  y     pb,str
0x1c 24  0  8  8  8  0  0  0  2 1 0x00--         y  y  y     pb,str
0x1d 24  0  8  8  8  0 24  8  4 1 0x00--         y  y  y     pb,str
0x1e 24  0  8  8  8  0 24  8  4 1 0x00--         y  y  y     pb,str
0x1f 24  0  8  8  8  0 24  0  4 1 0x00--         y  y  y     pb,str
0x20 24  0  8  8  8  0 24  0  4 1 0x00--         y  y  y     pb,str
0x21 24  0  8  8  8  0  0  8  4 1 0x00--         y  y  y     pb,str
0x22 24  0  8  8  8  0  0  8  4 1 0x00--         y  y  y     pb,str
0x23 24  0  8  8  8  0  0  0  4 1 0x00--         y  y  y     pb,str
0x24 24  0  8  8  8  0  0  0  4 1 0x00--         y  y  y     pb,str
0x25 24  0  8  8  8  0 24  8  8 1 0x00--         y  y  y     pb,str
0x26 24  0  8  8  8  0 24  0  8 1 0x00--         y  y  y     pb,str
0x27 24  0  8  8  8  0  0  8  8 1 0x00--         y  y  y     pb,str
0x28 24  0  8  8  8  0  0  0  8 1 0x00--         y  y  y     pb,str
0x29 16  0  5  6  5  0 24  8  0 0 0x00--         y  y  y     pb,str
0x2a 16  0  5  6  5  0 24  0  0 0 0x00--         y  y  y     pb,str
0x2b 16  0  5  6  5  0 16  0  0 0 0x00--         y  y  y     pb,str
0x2c 16  0  5  6  5  0  0  8  0 0 0x00--         y  y  y     pb,str
0x2d 16  0  5  6  5  0  0  0  0 0 0x00--         y  y  y     pb,str
0x2e 16  0  5  6  5  0 24  8  2 1 0x00--         y  y  y     pb,str
0x2f 16  0  5  6  5  0 24  0  2 1 0x00--         y  y  y     pb,str
0x30 16  0  5  6  5  0 16  0  2 1 0x00--         y  y  y     pb,str
0x31 16  0  5  6  5  0  0  8  2 1 0x00--         y  y  y     pb,str
0x32 16  0  5  6  5  0  0  0  2 1 0x00--         y  y  y     pb,str
0x33 16  0  5  6  5  0 24  8  4 1 0x00--         y  y  y     pb,str
0x34 16  0  5  6  5  0 24  8  4 1 0x00--         y  y  y     pb,str
0x35 16  0  5  6  5  0 24  0  4 1 0x00--         y  y  y     pb,str
0x36 16  0  5  6  5  0 24  0  4 1 0x00--         y  y  y     pb,str
0x37 16  0  5  6  5  0 16  0  4 1 0x00--         y  y  y     pb,str
0x38 16  0  5  6  5  0 16  0  4 1 0x00--         y  y  y     pb,str
0x39 16  0  5  6  5  0  0  8  4 1 0x00--         y  y  y     pb,str
0x3a 16  0  5  6  5  0  0  8  4 1 0x00--         y  y  y     pb,str
0x3b 16  0  5  6  5  0  0  0  4 1 0x00--         y  y  y     pb,str
0x3c 16  0  5  6  5  0  0  0  4 1 0x00--         y  y  y     pb,str
0x3d 16  0  5  6  5  0 24  8  8 1 0x00--         y  y  y     pb,str
0x3e 16  0  5  6  5  0 24  0  8 1 0x00--         y  y  y     pb,str
0x3f 16  0  5  6  5  0 16  0  8 1 0x00--         y  y  y     pb,str
0x40 16  0  5  6  5  0  0  8  8 1 0x00--         y  y  y     pb,str
0x41 16  0  5  6  5  0  0  0  8 1 0x00--         y  y  y     pb,str

Xwayland is working. In this screenshot I have two applications (Blender and InVesalius) runing on Xwayland on Gnome (running on Wayland):

This other screenshot shows that Blender is running on Xwayland:

I’ve been living with this in unstable, and there is some pretty bad flickering. I’m going to try to update to sway 1.7, which was just released yesterday. @colemickens do you know if the wlroots patch is still required?

I’ve just updated (Sway has made its way into nixos-unstable). chrome is still terrible (whether it be on Xwayland or on Xwayland), and especially video, but Firefox at least is way better…

Coming back to this now that Nvidia just announced open source drivers! Anyone try them out yet?

see here: Package new NVIDIA open-source GPU kernel modules · Issue #172603 · NixOS/nixpkgs · GitHub

5 Likes

Does anyone know what the current state of this is? I haven’t used my desktop in a few months, and when I went to update and rebuild, the machine just won’t come back up (I have to boot to a previous generation)

I had a running machine with nouveau+sway but the gui would randomly completely lock up. Just switched to nvidia and it seems like so far (after adding WLR_NO_HARDWARE_CURSORS) everything is “just working”. I’ll update if everything collapses at some point. Changes I made:

wayland.sway.extraSessionCommands = ''
        export WLR_NO_HARDWARE_CURSORS=1
      '';

hardware.nvidia = {
    package = config.boot.kernelPackages.nvidiaPackages.stable;
    modesetting.enable = true;
    prime = {
      nvidiaBusId = "PCI:1:0:0";
      intelBusId = "PCI:0:2:0";
      offload.enable = true;
    };
  };
hardware.opengl.enable = true;
services.xserver.videoDrivers = [ "modesetting" "nvidia" ];
[nix-shell:~/nixos-config]$ lspci -nnk | grep -iA2 vga
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] [10de:1f91] (rev a1)
	Subsystem: Lenovo Device [17aa:229f]
	Kernel driver in use: nvidia

This is on a Lenovo X1 Carbon gen 2, where the HDMI port is hardwired to the discrete GPU, and that seems to be just working with this setup. I haven’t tried testing Steam or games, but Google Meet and video playback is already working better than it was on nouveau.

Happy to can confirm that following the instructions on here is able to boot sway with the parameter --unsupported-gpu with a GT 1030, using the following configuration: nvidia: init commit -- no cursor, screen flickering · jhvst/nix-config@4bc3ab6 · GitHub

However, when built using nixos-unstable, it seems that the cursor is not showing up, and there is random screen flickering. Also, the gamescope package seems to be borked, but that’s not a huge deal. Overall, very happy about this, I tried various other configurations but without any success. Cheers!

Try with WLR_NO_HARDWARE_CURSORS=1 to fix the cursor issue.

It should be fine on master and unstable, there is currently a PR to fix the 22.05 release build but it looks like you are using unstable.

Using gamescope doesn’t necessarily “just work” and might have to be configured differently depending on how you are trying to use it. (from X, from wayland, from VT, hybrid graphics, etc). Feel free to DM me if you are lost.

1 Like

@nrdxp I would love some help, I am currently running unstable in my flake, gamescope runs via terminal with vcube, however with steam the game will not launch on nvidia even just running gamescope – %command% wont work

Some important things to know before I konw how to help:

Are you using an Nvidia Optimus Laptop?

  • if so, which screen do you want to output to, laptop or external?
  • Have you properly setup and tested render offload?

Are you using proprietary Nivida driver, or the recently open-sourced kernel modules?

Are you running NixOS, or which distro are you attempting this from?

What is your intended usecase for gamescope?

  • As a launcher for games from within an existing desktop (gamescope %command% in launch options)
    • if so, then what is the underlying display-server? X11 or wayland? Also which desktop or window manager?
  • As a full on desktop session itself to launch Steam in big picture mode (what I personally use)?

Also worth mentioning if you are on NixOS, I have an open PR that I am personally using in my own system currently to help manage a steam/gamescope session as a NixOS module. That way, once you get the settings you like you can have it pinned in your configuration.

Hi thank you for the reply. Currently using a desktop with no integrated graphics (so no optimus), so all my video output is from nvidia running on the proprietary driver since suspend is not working on the open source drivers as of yet.

Intended use case was to mess around with the application of it from my desktop session through steam to see how it works and the benefits of using it. Currently use xmonad on x11 for my main login, however, have been experimenting with Hyprland on wayland within the same nixconfig. I just have a few launch scripts depending on which session I want to head into!

Currently I was trying to test on a per game basis from the steam desktop client from the launch options which for a base gamescope showed to enter “gamescope – %command%” where you can add options as needed.

I really appreciate you trying to help and hope I am not creating any confusion. If it helps I can push my flake and dotfiles to github as well!

makes sense, but if you are looking for something like latency benefits, then running it as a desktop session is going to be the best solution.

If you could post your configs that’d be helpful too. Do you get any sort of error from trying to launch it? If you VT switch (ctrl-a-f*) and run gamescope -e steam -- -tenfoot does it work?

thanks a lot for the awesome work done here.
I got unlucky and first tried sway with a version of nixpkgs that was broken for nvidia (wayland 1.22 fixed it), e.g., sway wouldn’t start.
Understanding what tips were outdated, reading through error logs and trying to understand what all the WLR_* knobs do and if they could help me took a few hours.

Bumping nixpkgs fixed sway for my 3060 RTX. It then was flickering a lot.
Many report that export WLR_RENDERER=vulkan improves the situation so I tried but sway failed with

00:00:00.096 [DEBUG] [wlr] [render/vulkan/vulkan.c:111] Vulkan instance extension VK_LUNARG_direct_driver_loading v1
00:00:00.096 [ERROR] [wlr] [render/vulkan/vulkan.c:185] Could not create instance: ERROR_LAYER_NOT_PRESENT (-6)
00:00:00.096 [ERROR] [wlr] [render/vulkan/renderer.c:1794] creating vulkan instance for renderer failed
00:00:00.096 [ERROR] [wlr] [render/wlr_renderer.c:271] Failed to create a Vulkan renderer
00:00:00.096 [ERROR] [wlr] [render/wlr_renderer.c:333] Could not initialize renderer

cole helped me a ton and advised to use:

  hardware.opengl.extraPackages = with pkgs; [
    # trying to fix `WLR_RENDERER=vulkan sway`
    vulkan-validation-layers 
  ];

and that fixed it. 0 flickering now and I enjoy discovering the wayland scape (wayfire is fun).

2 Likes