Closed wez closed 7 months ago
this comment https://github.com/Smithay/wayland-rs/issues/374#issuecomment-778716363 suggests expanding the pointer check in the same way that libwayland's wl_interface_equal
function works.
Thanks for the detailed report. I agree we should fall back to checking the interface name if the pointer check fails. The only tricky thing is that we try to be safe about dereferencing the pointer (currently by calling mincore), however we should be able to work something out.
Thanks for the detailed report. I agree we should fall back to checking the interface name if the pointer check fails. The only tricky thing is that we try to be safe about dereferencing the pointer (currently by calling mincore), however we should be able to work something out.
As this is blocking all other Rust-based OpenGL applications I know (e.g., Alacritty or glutin-based applications in general), is there any progress on this @erik-kz ?
A fix is under internal code-review at NVIDIA, should be able to get pushed within the next few days. Apologies for the delay.
Should be fixed by https://github.com/NVIDIA/egl-wayland/commit/2eb4628d64a8297fb4c08aa796fdf33ff54a670f Again, sorry sorry sorry this took so damned long. Note that there are a few more changes to this library coming in the next few days, so I'm going to wait to those to land, but will bump the release as soon as they do.
Has this shipped in the egl-wayland used in NVIDIA releases now?
I believe the first release to include this will be the 495 series beta release, due some time next week if all goes to plan.
@cubanismo Hi! I have the 495.29.05 beta driver installed. When running wgpu's examples with Wayland, there are still errors:
RUST_LOG=info WINIT_UNIX_BACKEND=wayland WGPU_BACKEND=gl cargo run --example shadow
Finished dev [unoptimized + debuginfo] target(s) in 0.12s
Running `target/debug/examples/shadow`
[2021-10-18T21:44:39Z ERROR smithay_client_toolkit::window::concept_frame] No font could be found
[2021-10-18T21:44:39Z INFO shadow::framework] Initializing the surface...
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Loading Wayland library to get the current display
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Loading X11 library to get the current display
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Using Wayland platform
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Enabling EGL debug output
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Display vendor "NVIDIA", version (1, 5)
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] EGL surface: +srgb
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Trying native-render
[2021-10-18T21:44:39Z WARN wgpu_hal::gles::egl] No config found!
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] Trying presentation
[2021-10-18T21:44:39Z WARN wgpu_hal::gles::egl] EGL says it can present to the window but not natively. This has been confirmed to malfunction on Intel+NV laptops. Therefore, we disable presentation entirely for this platform
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] EGL context: +debug
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] EGL context: +robust access
[2021-10-18T21:44:39Z INFO wgpu_hal::gles::egl] EGL context: +surfaceless
[2021-10-18T21:44:39Z WARN wgpu_hal::gles::egl] Re-initializing Gles context due to Wayland window
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] Display vendor "NVIDIA", version (1, 5)
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] EGL surface: +srgb
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] Trying native-render
[2021-10-18T21:44:40Z WARN wgpu_hal::gles::egl] No config found!
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] Trying presentation
[2021-10-18T21:44:40Z WARN wgpu_hal::gles::egl] EGL says it can present to the window but not natively. This has been confirmed to malfunction on Intel+NV laptops. Therefore, we disable presentation entirely for this platform
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] EGL context: +debug
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] EGL context: +robust access
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] EGL context: +surfaceless
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] Max label length: 256
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::egl] Enabling GLES debug output
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::adapter] Vendor: NVIDIA Corporation
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::adapter] Renderer: NVIDIA GeForce GTX 1060/PCIe/SSE2
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::adapter] Version: OpenGL ES 3.2 NVIDIA 495.29.05
[2021-10-18T21:44:40Z INFO wgpu_hal::gles::adapter] SL version: OpenGL ES GLSL ES 3.20
[2021-10-18T21:44:40Z INFO wgpu_core::instance] Adapter GL AdapterInfo { name: "NVIDIA GeForce GTX 1060/PCIe/SSE2", vendor: 4318, device: 0, device_type: DiscreteGpu, backend: Gl }
Using NVIDIA GeForce GTX 1060/PCIe/SSE2 (Gl)
[2021-10-18T21:44:40Z INFO wgpu_core::device] configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Bgra8UnormSrgb, width: 800, height: 600, present_mode: Mailbox }
[2021-10-18T21:44:40Z WARN wgpu_core::device] Surface does not support present mode: Mailbox, falling back to FIFO
[2021-10-18T21:44:40Z ERROR wgpu_hal::gles::egl] EGL 'eglGetConfigAttrib' code 0x3004: EGL_BAD_ATTRIBUTE error: In internal function: Additional INFO may be available
[2021-10-18T21:44:40Z WARN wgpu_hal::gles::egl] Error in create_platform_window_surface: BadAttribute
thread 'main' panicked at 'Error in Surface::configure: invalid surface', wgpu/src/backend/direct.rs:204:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[2021-10-18T21:44:40Z INFO wgpu_core::hub] Dropping Global
[2021-10-18T21:44:40Z INFO wgpu_core::device] Destroying 0 command encoders
[2021-10-18T21:44:40Z WARN calloop::sources::ping] [calloop] Failed to write a ping: Sys(EPIPE)
wgpu's code disables presentation for the platform because it detects something wrong with EGL support. If I edit the check, there are BAD_NATIVE_WINDOW errors appearing. Some discussions here.
And when running winit examples, the code didn't report errors but there are no windows visible on the screen, only icons on the desktop dock.
It seems that there is still incompatibility among the driver and rust wayland-client crate. Could Nvidia do more to improve this? Thanks!
Interesting, thanks for the report. The interface check that was behind the original issue should be fixed, so I suspect this has a different root-cause, but will definitely look into it. Re-opening the issue.
@VitalyAnkh can you confirm that you have the latest version of the egl-wayland library installed along with the 495 beta driver? Depending on your distribution it might be packaged separately.
I tried running the wgpu shadow example, and with the default vulkan back-end it worked as expected. If I set WGPU_BACKEND=gl I do get the "No suitable GPU adapters" error you mentioned in https://github.com/gfx-rs/wgpu/issues/1787#issuecomment-945001343 and if I hack the tier_max check as you did I instead get EGL_BAD_ATTRIBUTE from eglCreatePlatformWindowSurface. I'm not seeing any EGL_BAD_NATIVE_WINDOW errors, though.
The reason for the EGL_BAD_ATTRIBUTE error is that wgpu sets EGL_RENDER_BUFFER to EGL_SINGLE_BUFFER, which we reject in the validateSurfaceAttrib function in wayland-eglsurface.c. I'll look into whether this is expected and get back to you.
@erik-kz Thanks! Really excited with your kind reply. I did install the lastest version of egl-wayland:
pacman -Q | rg egl-wayland
egl-wayland-git 1.1.9.r0.gcd0d19a-1
and latest Nvidia 495 driver:
pacman -Q | rg nvidia
lib32-nvidia-cg-toolkit 3.1-7
lib32-nvidia-utils-beta 495.44-1
lib32-opencl-nvidia-beta 495.44-1
nvidia-beta-dkms 495.44-1
nvidia-cg-toolkit 3.1-6
nvidia-utils-beta 495.44-1
opencl-nvidia-beta 495.44-1
and I can confirm the driver is running:
nvidia-smi
Wed Oct 27 11:23:47 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44 Driver Version: 495.44 CUDA Version: 11.5 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A |
| N/A 34C P3 17W / N/A | 1876MiB / 6078MiB | 23% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1571 G /usr/bin/gnome-shell 640MiB |
| 0 N/A N/A 1816 G ...developer-edition/firefox 354MiB |
| 0 N/A N/A 1835 G telegram-desktop 1MiB |
| 0 N/A N/A 2130 G /usr/bin/Xwayland 154MiB |
| 0 N/A N/A 2744 G ...AAAAAAAAA= --shared-files 138MiB |
| 0 N/A N/A 5323 G ...ef_log.txt --shared-files 93MiB |
| 0 N/A N/A 11342 G ...developer-edition/firefox 1MiB |
| 0 N/A N/A 12133 G ...developer-edition/firefox 1MiB |
| 0 N/A N/A 30724 G gnome-control-center 1MiB |
| 0 N/A N/A 30757 G /usr/bin/gjs 27MiB |
| 0 N/A N/A 30774 G /usr/bin/gjs 3MiB |
| 0 N/A N/A 41362 G ...AAAAAAAAA= --shared-files 86MiB |
+-----------------------------------------------------------------------------+
I pulled the latest code of wgpu and tried to run the shadow example with vulkan and wayland but still no success:
RUST_LOG=info WINIT_UNIX_BACKEND=wayland WGPU_BACKEND=vulkan cargo run --example shadow
Finished dev [unoptimized + debuginfo] target(s) in 0.26s
Running `target/debug/examples/shadow`
[2021-10-27T03:19:55Z ERROR smithay_client_toolkit::window::concept_frame] No font could be found
[2021-10-27T03:19:55Z INFO shadow::framework] Initializing the surface...
[2021-10-27T03:19:55Z WARN wgpu_hal::vulkan::instance] Unable to find layer: VK_LAYER_KHRONOS_validation
[2021-10-27T03:19:55Z ERROR wgpu_hal::vulkan::adapter] get_physical_device_surface_support: Initialization of a object has failed
thread 'main' panicked at 'No suitable GPU adapters found on the system!', wgpu/examples/shadow/../framework.rs:136:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[2021-10-27T03:19:55Z INFO wgpu_core::hub] Dropping Global
I think this is an interesting point for you could run this example as expected. All I expect is running this example under wayland with vulkan/gl backend successfully. I don't know if it's my system's fault or something else.
If I set WGPU_BACKEND=gl I got the same "No suitable GPU adapters" error as you. After hacking the tier_max check I got the same results as you, no EGL_BAD_NATIVE_WINDOW any more, only EGL_BAD_ATTRIBUTE errors. This is the output after hacking the check:
RUST_LOG=info WINIT_UNIX_BACKEND=wayland WGPU_BACKEND=gl cargo run --example shadow
Finished dev [unoptimized + debuginfo] target(s) in 0.19s
Running `target/debug/examples/shadow`
[2021-10-27T03:48:12Z ERROR smithay_client_toolkit::window::concept_frame] No font could be found
[2021-10-27T03:48:12Z INFO shadow::framework] Initializing the surface...
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Loading Wayland library to get the current display
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Loading X11 library to get the current display
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Using Wayland platform
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Enabling EGL debug output
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Display vendor "NVIDIA", version (1, 5)
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL surface: +srgb
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Trying native-render
[2021-10-27T03:48:12Z WARN wgpu_hal::gles::egl] No config found!
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Trying presentation
[2021-10-27T03:48:12Z WARN wgpu_hal::gles::egl] EGL says it can present to the window but not natively. This has been confirmed to malfunction on Intel+NV laptops.
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL context: +debug
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL context: +robust access
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL context: +surfaceless
[2021-10-27T03:48:12Z WARN wgpu_hal::gles::egl] Re-initializing Gles context due to Wayland window
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Display vendor "NVIDIA", version (1, 5)
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL surface: +srgb
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Trying native-render
[2021-10-27T03:48:12Z WARN wgpu_hal::gles::egl] No config found!
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Trying presentation
[2021-10-27T03:48:12Z WARN wgpu_hal::gles::egl] EGL says it can present to the window but not natively. This has been confirmed to malfunction on Intel+NV laptops.
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL context: +debug
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL context: +robust access
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] EGL context: +surfaceless
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Max label length: 256
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::egl] Enabling GLES debug output
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::adapter] Vendor: NVIDIA Corporation
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::adapter] Renderer: NVIDIA GeForce GTX 1060/PCIe/SSE2
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::adapter] Version: OpenGL ES 3.2 NVIDIA 495.44
[2021-10-27T03:48:12Z INFO wgpu_hal::gles::adapter] SL version: OpenGL ES GLSL ES 3.20
[2021-10-27T03:48:12Z INFO wgpu_core::instance] Adapter GL AdapterInfo { name: "NVIDIA GeForce GTX 1060/PCIe/SSE2", vendor: 4318, device: 0, device_type: DiscreteGpu, backend: Gl }
Using NVIDIA GeForce GTX 1060/PCIe/SSE2 (Gl)
[2021-10-27T03:48:12Z INFO wgpu_core::device] configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Bgra8UnormSrgb, width: 800, height: 600, present_mode: Mailbox }
[2021-10-27T03:48:12Z WARN wgpu_core::device] Surface does not support present mode: Mailbox, falling back to FIFO
[2021-10-27T03:48:12Z ERROR wgpu_hal::gles::egl] EGL 'eglGetConfigAttrib' code 0x3004: EGL_BAD_ATTRIBUTE error: In internal function: Additional INFO may be available
[2021-10-27T03:48:12Z WARN wgpu_hal::gles::egl] Error in create_platform_window_surface: BadAttribute
thread 'main' panicked at 'Error in Surface::configure: invalid surface', wgpu/src/backend/direct.rs:204:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[2021-10-27T03:48:12Z INFO wgpu_core::hub] Dropping Global
[2021-10-27T03:48:12Z INFO wgpu_core::device] Destroying 0 command encoders
[2021-10-27T03:48:12Z WARN calloop::sources::ping] [calloop] Failed to write a ping: Sys(EPIPE)
In conclusion, it's the best result I expect that nvidia driver supports vulkan under wayland with rust's wayland crate. I found it doesn't, but you tested without issues. I will try confirming if this is happening to others using nvidia 495 drivers users and wayland.
Can you check if the file /usr/lib/libnvidia-vulkan-producer.so is present on your system? I think the issue might be that the Arch Linux nvidia-utils package doesn't include it.
@erik-kz It's true that the file /usr/lib/libnvidia-vulkan-producer.so is not present on my system. Should we help Arch Linux fix this? :smiley:
I add the following line to the PKGBUILD of the AUR package nvidia-utils-beta
:
# vulkan
install -D -m755 "libnvidia-vulkan-producer.so.${pkgver}" -t "${pkgdir}/usr/lib"
then makepkg si
, now the file /usr/lib/libnvidia-vulkan-producer.so is in my system now:
file /usr/lib/libnvidia-vulkan-producer.so.495.44
/usr/lib/libnvidia-vulkan-producer.so.495.44: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=cf18a468bd12cd0f7b08251e845a569275717fd4, stripped
But running the wgpu example I still got errors:
RUST_LOG=info WINIT_UNIX_BACKEND=wayland WGPU_BACKEND=vulkan cargo run --example shadow
Finished dev [unoptimized + debuginfo] target(s) in 0.20s
Running `target/debug/examples/shadow`
[2021-10-27T17:02:44Z ERROR smithay_client_toolkit::window::concept_frame] No font could be found
[2021-10-27T17:02:44Z INFO shadow::framework] Initializing the surface...
[2021-10-27T17:02:44Z WARN wgpu_hal::vulkan::instance] Unable to find layer: VK_LAYER_KHRONOS_validation
[2021-10-27T17:02:45Z ERROR wgpu_hal::vulkan::adapter] get_physical_device_surface_support: Initialization of a object has failed
thread 'main' panicked at 'No suitable GPU adapters found on the system!', wgpu/examples/shadow/../framework.rs:136:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[2021-10-27T17:02:45Z INFO wgpu_core::hub] Dropping Global
Besides, I can't build egl-wayland-git
on my system now, so the latest commits of egl-wayland is not installed. When building I got this:
...
...
ninja: Entering directory `build'
[13/25] Compiling C object src/libnvidia-egl-wayland.so.1.1.9.p/wayland-egldisplay.c.o
FAILED: src/libnvidia-egl-wayland.so.1.1.9.p/wayland-egldisplay.c.o
ccache cc -Isrc/libnvidia-egl-wayland.so.1.1.9.p -Isrc -I../egl-wayland/src -I../egl-wayland/include -I../egl-wayland/wayland-egl -Iwayland-eglstream -Iwayland-drm -I/usr/include/EGL -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -Wall -Werror -fvisibility=hidden -DWL_HIDE_DEPRECATED -Wno-pedantic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ src/libnvidia-egl-wayland.so.1.1.9.p/wayland-egldisplay.c.o -MF src/libnvidia-egl-wayland.so.1.1.9.p/wayland-egldisplay.c.o.d -o src/libnvidia-egl-wayland.so.1.1.9.p/wayland-egldisplay.c.o -c ../egl-wayland/src/wayland-egldisplay.c
../egl-wayland/src/wayland-egldisplay.c:32:10: fatal error: wayland-drm-client-protocol.h: No such file or directory
32 | #include "wayland-drm-client-protocol.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[24/25] Compiling C object src/libnvidia-egl-wayland.so.1.1.9.p/wayland-eglsurface.c.o
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
error: failed to build 'egl-wayland-git-1.1.8.r0.gce4c963-2':
error: packages failed to build: egl-wayland-git-1.1.8.r0.gce4c963-2
Does this matter?
Dang it, the commit I pushed this morning broke the public build. Sorry about that. I'll get that fixed ASAP. As a work-around, you could add "git checkout 1.1.9" to the PKGBUILD.
Anyway, I filed https://bugs.archlinux.org/task/72560 for the Arch Linux package. issue Could you try running "ln -s /usr/lib/libnvidia-vulkan-producer.so.495.44 /usr/lib/libnvidia-vulkan-producer.so"? I think that symlink also needs to exist.
Thanks! I add the symlink then the wgpu examples start running! But if the mouse hovers on them, the window runs very slowly and not responding sometimes. It seems not the driver's fault. Maybe rust's GUI library needs some improvements. Alacritty and some other rust GUI apps also experience input latency AFAIK. Anyway it worked! Thanks for your help!
Heads-up.
If you're using nvidia drivers on Debian, you may encounter:
$ cargo run --features wayland --example bloom_2d
Finished dev [unoptimized + debuginfo] target(s) in 0.12s
Running `target/debug/examples/bloom_2d`
2024-02-19T14:20:41.850376Z INFO bevy_winit::system: Creating new window "App" (0v1)
2024-02-19T14:20:41.938182Z ERROR log: get_physical_device_surface_support: Initialization of an object has failed
2024-02-19T14:20:41.958387Z INFO bevy_render::renderer: AdapterInfo { name: "llvmpipe (LLVM 17.0.6, 256 bits)", vendor: 65541, device: 0, device_type: Cpu, driver: "llvmpipe", driver_info: "Mesa 23.3.5-1 (LLVM 17.0.6)", backend: Vulkan }
2024-02-19T14:20:42.397782Z INFO bevy_diagnostic::system_information_diagnostics_plugin::internal: SystemInfo { os: "Linux Debian GNU/Linux", kernel: "6.6.15-amd64", cpu: "AMD Ryzen 9 5900X 12-Core Processor", core_count: "12", memory: "62.7 GiB" }
2024-02-19T14:20:45.618080Z INFO bevy_window::system: No windows are open, exiting
2024-02-19T14:20:45.620763Z INFO bevy_winit::system: Closing window 0v1
This happened when I tried executing https://github.com/bevyengine/bevy examples.
This was also solved by the "symlink" solution above: https://github.com/NVIDIA/egl-wayland/issues/34#issuecomment-953176437
More specifically I ran:
sudo ln -s /usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-vulkan-producer.so.525.147.05 /usr/lib/libnvidia-vulkan-producer.so
When trying to run wezterm under Wayland, EGL initialization fails with BAD_NATIVE_WINDOW.
Getting this under a debugger, it looks like this runtime check is the critical piece:
Poking around at the surface that was passed in:
And comparing with the
wl_surface
type that is checked against by this part of the macro:https://github.com/NVIDIA/egl-wayland/blob/9c9c4c684983f7b0821f516f8821118170a785ea/include/wayland-eglutils.h#L60
The interface appears to be compatible if the check were to perform a comparison of what's inside the
wl_interface
, even though the addresses are not identical.Why aren't the addresses identical?
The rust client implementation employs code generation to produce most of its code; here's an example of the definition of that particular interface:
https://docs.rs/wayland-client/0.28.1/src/wayland_client/opt/rustwide/target/debug/build/wayland-client-fdd09ed62affdce6/out/wayland_api.rs.html#5885-5892
The rust client does, however, call out to the system libraries so that it should be comptible with EGL libraries. This same code runs fine when run against the nouveau driver.
So! Should NVIDIA/egl-wayland project be performing a deeper wl_interface comparison here to unblock this usage?