Skip to content

Update wine to latest version#14

Draft
glennvl wants to merge 15 commits into
masterfrom
update-wine
Draft

Update wine to latest version#14
glennvl wants to merge 15 commits into
masterfrom
update-wine

Conversation

@glennvl

@glennvl glennvl commented Mar 12, 2026

Copy link
Copy Markdown
Owner

Summary

Update to the latest wine version.

Note: Newer wine versions default to EGL instead of GLX for OpenGL.

Implementation

  • Update wine installation procedure according to https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu
  • Add mesa-utils for graphics test tools: glxgears, eglgears_wayland, eglgears_x11
  • Add nvidia egl xcb and xlib libraries and select egl external platform automatically
  • Add WINE_DISABLE_EGL option

Status

Note:

  • Tested on a system with NVidia RTX 4080 Super and NVidia proprietary drivers.
  • Tested on a system with AMD Radeon RX 9060 XT (16GB) graphics card.

Graphics tests

  • glxgears: works
  • eglgears_wayland: works, but window border fails to render
  • eglgears_x11: works

Zwift (podman)

wine with egl (default)

  • zwift installer: does not render properly, but manages to install zwift
  • zwift with wayland: works (with the known wayland limitations)
  • zwift with xwayland: works out of the box on the AMD graphics system
  • zwift with xwayland: works with extra configuration on the NVIDIA graphics system

To make egl work on nvidia systems, select xcb or xlib (either works)

foo@bar:~$ VERBOSITY=3 WINE_DISABLE_EGL=0 INTERACTIVE=1 ./src/build-image.sh
foo@bar:/$ export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/local/share/egl/egl_external_platform.d/20_nvidia_xcb.json
foo@bar:/$ entrypoint
foo@bar:~$ VERBOSITY=3 WINE_DISABLE_EGL=0 INTERACTIVE=1 ./src/build-image.sh
foo@bar:/$ export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/local/share/egl/egl_external_platform.d/20_nvidia_xlib.json
foo@bar:/$ entrypoint

wine with glx

wine reg.exe add 'HKCU\Software\Wine\X11 Driver' /v UseEGL /d N
  • zwift installer: does not work (but this is not a blocking issue)
  • zwift with wayland: works (with the known wayland limitations)
  • zwift with xwayland: works

Zwift (docker)

wine with egl (default)

  • XWayland works with egl

  • Native Wayland does not work with egl, crash with opengl error.

    image

wine with glx

Does not work, fallback to software rendering.

libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
libEGL warning: failed to open /dev/dri/card1: Permission denied

Todo

  • Test with ati/intel drivers
  • Figure out how to make egl work on amd
  • Figure out how to make egl work on nvidia
  • When using native Wayland on nvidia, there are still egl failed to create dri2 screen warnings
  • When using egl on nvidia, there are errors egl_init Failed to find required extension EGL_KHR_client_get_all_proc_addresses
  • Wayland does not work with docker when using egl
  • XWayland does not work with docker when using glx

@BreiteSeite

Copy link
Copy Markdown

FYI: there is wine 11.6 available now

@glennvl glennvl force-pushed the update-wine branch 2 times, most recently from 0887250 to b13536d Compare April 16, 2026 09:22
@glennvl glennvl force-pushed the update-wine branch 4 times, most recently from 21d8879 to 7b6ba96 Compare May 10, 2026 17:02
@BreiteSeite

Copy link
Copy Markdown

FYI, i just tested this branch (updated to wine 11.9 though otherwise couldn't build). I ran build-image.sh which automatically (and successfully) launched zwift (bit unexpected hehe).

I can confirm that the zwift installer for the most part shows a white UI (with a progress bar).

I then podman exec'd into the running container and ran your graphics test, which all worked without issue.

My GPU: AMD 9070 XT on bazzite linux.

How can i test the following:

zwift with wayland: works (with the known wayland limitations)
zwift with xwayland: does not work (falls back to software rendering)

?

Questions:

A) what's the default launch of zwift (wayland, xwayland, x11)? How can i influence it? I only know about the wayland variable
B) how to determine if software rendering is used?

Thank for your help.

@glennvl

glennvl commented May 23, 2026

Copy link
Copy Markdown
Owner Author

FYI, i just tested this branch (updated to wine 11.9 though otherwise couldn't build). I ran build-image.sh which automatically (and successfully) launched zwift (bit unexpected hehe).

I can confirm that the zwift installer for the most part shows a white UI (with a progress bar).

I then podman exec'd into the running container and ran your graphics test, which all worked without issue.

My GPU: AMD 9070 XT on bazzite linux.

Thanks for your help!

A) what's the default launch of zwift (wayland, xwayland, x11)? How can i influence it? I only know about the wayland variable

On a wayland system it defaults to xwayland, on a xorg system it default to x11.

You can set WINE_EXPERIMENTAL_WAYLAND=1 to use native wayland instead of xwayland on a wayland system.

B) how to determine if software rendering is used?

Zwift will run at an extremely low fps. 🙂

If you want to see an in-game fps counter, you can set gShowFPS=1, see https://netbrain.github.io/zwift/configuration/graphics/#how-can-i-accessmodify-the-graphics-settings for how to do that.

@glennvl glennvl force-pushed the update-wine branch 12 times, most recently from 9735966 to 2c20166 Compare June 2, 2026 20:59
@glennvl

glennvl commented Jun 2, 2026

Copy link
Copy Markdown
Owner Author

@netbrain @BreiteSeite I've finally made some progress to make egl work

  • I've done a successful one hour ride yesterday on my amd graphics system with wine 11.10 and egl
  • I'm able to run zwift on my development machine (nvidia graphics) with wine 11.10 and egl, by manually selecting the egl external platform

@netbrain

netbrain commented Jun 3, 2026

Copy link
Copy Markdown

Wow, great stuff!

@netbrain

netbrain commented Jun 3, 2026

Copy link
Copy Markdown

Now if we could only get the wine team to actually implement a working bluetooth driver aswell, then this would be a 10/10 project.

@glennvl glennvl force-pushed the update-wine branch 3 times, most recently from 112fc5c to 1d8e972 Compare June 10, 2026 10:16
@glennvl glennvl self-assigned this Jun 25, 2026
@glennvl glennvl added bug Something isn't working enhancement New feature or request help wanted Extra attention is needed labels Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants