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

I’ve been meaning to comment, Xwayland acceleration still isn’t quite right (and I’m out of things to check).

Other than that, WLR_NO_HARDWARE_CURSORS and the argb8888/xrgb8888 patch, everything else is good to go in nixos-unstable.

1 Like

There is some subtlte flickering though sometimes every 10 sec (I am in HDMI).

I’m also having flickering as well. Even with xwayland off, just switching between blank workspaces in sway causes some flickers ocassionally - but running certain programs seems to cause more even more flickering. GTX 1060

It does seem to “work” though, if by work you mean everything is broken. Here’s some of problems and solutions I encountered:

  • Sway initially “worked” out of the box, although maybe without hardware rendering or a mouse cursor. I thought now would be the time to start tweaking my config and try moving over. While I was tweaking sway stopped working with just a black screen until I followed the instructions above by @douglas, specifically the nvidia-acceleration-overlay seemed to be key.
  • I’m using a few packages by @colemickens nixpkgs-wayland like sway, wlroots, not sure if it’s helping or not.
  • Using nixos-unstable
  • Couldn’t get gdm to work, tried toggling between nvidia, wayland, x11 but none of them work now. Just starting sway from the tty from now on.

Individual problems with applications I noticed:

  • alacritty doesn’t work: Error creating GL context; eglCreateWindowSurface failed
  • swaylock doesn’t work, I’m typing the correct password and it’s not unlocking.
  • xst has graphical artifacting, swapped it with foot.
  • ungoogled-chromium (flatpak) doesn’t work, I added --enable-features=UseOzonePlatform and --ozone-platform=wayland to ~/.var/app/com.github.Eloston.UngoogledChromium/config/chromium-flags.conf
  • codium doesn’t work, added --disable-gpu to start it but it has graphical artifacting similar to xst. The chromium flags for native wayland don’t work here for some reason.
  • Discord (flatpak) similar boat as codium.
  • Steam (flatpak) works, but sometimes it flickers and artifacts a lot. Games run accelerated, some games flicker more than others.
  • Rocket League works fine, World of Final Fantasy works but has a lot of flickering.
  • Swapped dmenu with dmenu-wayland from nixpkgs
  • ungoogled-chromium appears to be rendering webpages wrong, and is unable to play videos on some sites.
  • Firefox (flatpak) has less testing but generally seems to be working better than chromium.
  • mpv doesn’t work after switching to wayland, the gpu video output - which is the preferred output, is just a black screen. I got it to kinda work with sdl video output but it has a stange quirk where the video/audio pauses a few seconds after switching workspaces.
  • Tried ydotool instead of xdotool, just straight up doesn’t work. wlrctl seems promising.
  • Mouse feels really weird compared to x11, like maybe acceleration is on?
  • Lots of other stuff I forgot.

I’m in a weird spot right now. I’m not sure if I want to stick with the wayland that I’ve invested this time into and hope the flickering and other problems sort themselves out over time, or if I’ll switch back to x11 for who knows how long.

Edit: Formatting and hopefully making this more readable.

1 Like

The stuff from @douglas’s post is all in nixos-unstable. I did or merged the PRs for the related work and have been monitoring AND retested with out any nixpkgs commits to ensure no extra workarounds were needed that I didn’t mentioned.

Sway initially “worked” out of the box, although maybe without hardware rendering or a mouse cursor. I

Sounds like you didn’t use WLR_NO_HARDWARE_CURSORS and are missing one the requisite commits to enable the mesa/gbm/sway path to work properly. (Posting a sway debug log would help make this evident quickly).

And I do use ydotool/wtype and others somewhat regularly, again without a log it’s hard to say what’s wrong.

The steam/chrome/alacritty stuff are things I’ve run across too. But… I’ve sunk a STUPID number of hours into this, looking at nvidia/wlroots/etc, and I’m out of ideas for these last few things. I just can’t keep coming back to nvidia every 2 weeks and wasting hours checking the things I know to check. :frowning:

EDIT: to be clear, the feedback is great. I’ll probably make a all-up NVidia+ Wayland issue on GitHub so that other motivated folks can investigate / etc. Thanks for typing it all up @JoshuaFern

1 Like

You can run Alacritty using Xwayland until this problem be fixed:

WINIT_UNIX_BACKEND=x11 alacritty
1 Like

The stuff from @douglas’s post is all in nixos-unstable .

I thought so, maybe something funky was going on with my config.

Sounds like you didn’t use WLR_NO_HARDWARE_CURSORS

Yep, I have that now.

And I do use ydotool / wtype and others somewhat regularly, again without a log it’s hard to say what’s wrong.

Sure, the output of the terminal is unhelpful but journalctl shares some insight:

Dec 02 04:18:10 nixos-workstation kernel: input: ydotoold virtual device as /devices/virtual/input/input28
Dec 02 04:18:10 nixos-workstation systemd-logind[1017]: Failed to determine whether input device /dev/input/event21 is relevant to us: Inappropriate ioctl for device
Dec 02 04:18:10 nixos-workstation systemd[1]: Invalid unit name "actkbd@/dev/input/event21.service" escaped as "actkbd@-dev-input-event21.service" (maybe you should use systemd-escape?).
Dec 02 04:18:10 nixos-workstation systemd[1]: Starting actkbd on /dev/input/event21...
Dec 02 04:18:10 nixos-workstation systemd[1]: actkbd@-dev-input-event21.service: Deactivated successfully.
Dec 02 04:18:10 nixos-workstation systemd[1]: Started actkbd on /dev/input/event21.
Dec 02 04:18:26 nixos-workstation systemd[1]: Started Process Core Dump (PID 232160/UID 0).
Dec 02 04:18:26 nixos-workstation systemd-coredump[232161]: [🡕] Process 232149 (ydotoold) of user 0 dumped core

If I’m interpreting this right, ydotool works by sending uinput commands via systemd services. The service name ydotool uses is improperly escaped and the service never starts. Sometimes this causes a core dump of ydotoold if running. I’m just guessing though.

The steam/chrome/alacritty stuff are things I’ve run across too. But… I’ve sunk a STUPID number of hours into this, looking at nvidia/wlroots/etc, and I’m out of ideas for these last few things. I just can’t keep coming back to nvidia every 2 weeks and wasting hours checking the things I know to check. :frowning:

Yep, I’ve also had trouble with nvidia graphical artifacting on X11/i3. If I’m running MPV in an inactive workspace I can see the video peaking through the dark spots of other applications. It started happening around the time 470 came out with initial wayland support but I’ve just been dealing with it.

Thanks for all the work you’ve done on wayland. I appreciate your time greatly, and I’m sure the sentiment is shared among the community.

Maybe, just maybe, we’ve reached a precipice we can snowball down, and arewewaylandyet.com can finally give a definitive yes.

I got it working with vanilla unstable after I discovered the flaw I had made in my config.

I found that when switching to wayland many environment variables needed to be set, so I started blindly copying them,

      wayland.windowManager.sway.extraSessionCommands = ''
        export __GLX_VENDOR_LIBRARY_NAME=nvidia
        export _JAVA_AWT_WM_NONREPARENTING=1
        export BEMENU_BACKEND=wayland
        export CLUTTER_BACKEND=wayland
        export ECORE_EVAS_ENGINE=wayland_egl
        export ELM_ACCEL=gl
        export ELM_DISPLAY=wl
        export ELM_ENGINE=wayland_egl
        export GBM_BACKEND=nvidia-drm
        export GBM_BACKENDS_PATH=/etc/gbm
        export GDK_BACKEND=wayland
        export MOZ_DBUS_REMOTE=1
        export MOZ_ENABLE_WAYLAND=1
        export NO_AT_BRIDGE=1
        export QT_QPA_PLATFORM=wayland-egl # needs qt5.qtwayland in systemPackages
        export QT_QPA_PLATFORMTHEME="qt5ct"
        export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
        export SAL_USE_VCLPLUGIN=gtk3
        export SDL_VIDEODRIVER=wayland
        export WLR_NO_HARDWARE_CURSORS=1
        export XDG_CURRENT_DESKTOP="sway"
        export XDG_SESSION_TYPE="wayland"
      '';

It was export GBM_BACKENDS_PATH=/etc/gbm that caused the problem that @douglas’s fixes helped resolve - but actually after removing that line it does in fact work fine with just normal nixos-unstable. Oops!

Please let me know if there’s anything else here I don’t need. I know what some of it does but not all of it.

It turns out that I was having a completely different problem installing steam. There was some issue with installing steam in a VM. I’ve installed NixOS to bare metal, and now that there were upstream commits, as @colemickens said, the wlroots overlay patch and the WLR_NO_HARDWARE_CURSORS were all I needed to get steam running and working on sway.

1 Like

I’ve been using Wayland on Nvidia for about a week now, I wanted to take the time to talk about some of my solutions and workarounds.

  • Using Foot as my Terminal now, works great - recommended. Although @brogos pointed out you can make alacritty work with: WINIT_UNIX_BACKEND=x11 alacritty
  • Using LibreWolf (Flatpak) the Firefox fork as my Browser. Also great.
  • Got MPV working with gpu video output. Needs opengl-es set. Still sometimes pauses when switching workspaces.
  • wlrctl works fine, also xdotool does mostly still work on xwayland applications.
  • To fix mouse accel use something like:
      input "1133:49738:Logitech_Gaming_Mouse_G600" {
        accel_profile "flat"
        pointer_accel 0
      }

If anyone has any ideas about how to fix the graphical artifacts and flickering that’s the last big hurdle to using Nvidia on wayland full time.

2 Likes

Additional note for steam users. If you’re using the steam runtime, you have to unset SDL_VIDEODRIVER, because the SDL version in the steam runtime doesn’t work with wayland. If you don’t, many things will work, but some video games, and some tools (like the controller config) will crash.

2 Likes

I think the new Nvidia driver helps with flickering, I’ve run it locally but haven’t sent/seen a PR for it yet.

Also, I still can’t get XWayland to look correct with something like eglinfo and I think it’s related to why last several things don’t seem to work right. I’ve, probably pointlessly, again triple-checked everything I can think of. I’ve followed the docs, the SOs are all patched as far as I can tell, I’ve grepped strings in the binaries and ensured paths looked correct.

Has anyone tried NVIDIA +Gnome and seen how things fair? Does Xwayland work better there?

@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?