tpwrules / nixos-apple-silicon

Resources to install NixOS bare metal on Apple Silicon Macs
MIT License
740 stars 73 forks source link

Wayland KDE Plasma 6 stuck on software rendering #176

Open mirrortemplar opened 3 months ago

mirrortemplar commented 3 months ago

Hi! I have some apps stuck on software rendering since updating to KDE Plasma 6. This has not occured on KDE Plasma 5, and this does not occur on X11; both KDE and glxinfo have run perfectly fine, as well as other apps. Some log outputs:

(1) KDE 6 (journalctl output):

Mar 12 21:25:49 amaterasu kwin_wayland[1455]: No backend specified, automatically choosing drm
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: OpenGL vendor string:                   Mesa
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: OpenGL renderer string:                 Apple M1 (G13G B1)
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: OpenGL version string:                  4.6 (Core Profile) Mesa 24.1.0-devel
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: OpenGL shading language version string: 4.60
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: Driver:                                 Unknown
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: GPU class:                              Unknown
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: OpenGL version:                         4.6
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: GLSL version:                           4.60
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: Mesa version:                           24.1
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: Requires strict binding:                no
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: Virtual Machine:                        no
Mar 12 21:25:50 amaterasu kwin_wayland[1455]: Timer query support:                    yes
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: (WW) Option "-listen" for file descriptors is deprecated
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: Please use "-listenfd" instead.
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: (WW) Option "-listen" for file descriptors is deprecated
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: Please use "-listenfd" instead.
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: DRI driver not from this Mesa build ('24.1.0-devel' vs '24.0.2')
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: failed to bind extensions
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: DRI driver not from this Mesa build ('24.1.0-devel' vs '24.0.2')
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: failed to bind extensions
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: DRI driver not from this Mesa build ('24.1.0-devel' vs '24.0.2')
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: failed to bind extensions
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: couldn't create gbm device
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: EGL setup failed, disabling glamor
Mar 12 21:25:50 amaterasu kwin_wayland_wrapper[1526]: Failed to initialize glamor, falling back to sw

(1a) KDE 6 on X11:

Mar 12 21:45:51 amaterasu kwin_x11[5971]: OpenGL vendor string:                   Mesa
Mar 12 21:45:51 amaterasu kwin_x11[5971]: OpenGL renderer string:                 Apple M1 (G13G B1)
Mar 12 21:45:51 amaterasu kwin_x11[5971]: OpenGL version string:                  4.6 (Compatibility Profile) Mesa 24.1.0-devel
Mar 12 21:45:51 amaterasu kwin_x11[5971]: OpenGL shading language version string: 4.60
Mar 12 21:45:51 amaterasu kwin_x11[5971]: Driver:                                 Unknown
Mar 12 21:45:51 amaterasu kwin_x11[5971]: GPU class:                              Unknown
Mar 12 21:45:51 amaterasu kwin_x11[5971]: OpenGL version:                         4.6
Mar 12 21:45:51 amaterasu kwin_x11[5971]: GLSL version:                           4.60
Mar 12 21:45:51 amaterasu kwin_x11[5971]: Mesa version:                           24.1
Mar 12 21:45:51 amaterasu kwin_x11[5971]: Requires strict binding:                yes
Mar 12 21:45:51 amaterasu kwin_x11[5971]: Virtual Machine:                        no
Mar 12 21:45:51 amaterasu kwin_x11[5971]: Timer query support:                    yes

(1b) KDE 5 on Wayland:

Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: No backend specified, automatically choosing drm
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: OpenGL vendor string:                   Mesa
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: OpenGL renderer string:                 Apple M1 (G13G B1)
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: OpenGL version string:                  4.6 (Core Profile) Mesa 24.1.0-devel
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: OpenGL shading language version string: 4.60
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: Driver:                                 Unknown
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: GPU class:                              Unknown
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: OpenGL version:                         4.6
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: GLSL version:                           4.60
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: Mesa version:                           24.1
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: Linux kernel version:                   6.6
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: Requires strict binding:                no
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: GLSL shaders:                           yes
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: Texture NPOT support:                   yes
Mar 12 21:50:44 amaterasu kwin_wayland_wrapper[1475]: Virtual Machine:                        no
Mar 12 21:50:45 amaterasu kwin_wayland_wrapper[1475]: kwin_wayland_drm: Failed to create gamma blob! Invalid argument
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: OpenGL vendor string:                   Mesa
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: OpenGL renderer string:                 Apple M1 (G13G B1)
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: OpenGL version string:                  4.6 (Core Profile) Mesa 24.1.0-devel
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: OpenGL shading language version string: 4.60
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: Driver:                                 Unknown
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: GPU class:                              Unknown
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: OpenGL version:                         4.6
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: GLSL version:                           4.60
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: Mesa version:                           24.1
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: X server version:                       1.23.2
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: Linux kernel version:                   6.6
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: Requires strict binding:                no
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: GLSL shaders:                           yes
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: Texture NPOT support:                   yes
Mar 12 21:50:46 amaterasu kwin_wayland_wrapper[1475]: Virtual Machine:                        no

(2) glxinfo on KDE 6, Wayland session:

lena@amaterasu ~> LIBGL_DEBUG=verbose glxinfo -B
name of display: :0
MESA-LOADER: failed to open /run/opengl-driver/lib/dri/zink_dri.so: /run/opengl-driver/lib/dri/zink_dri.so: cannot open shared object file: No such file or directory
MESA-LOADER: failed to open zink: /run/opengl-driver/lib/dri/zink_dri.so: cannot open shared object file: No such file or directory (search paths /run/opengl-driver/lib/dri, suffix _dri)
failed to load driver: zink
MESA-LOADER: dlopen(/run/opengl-driver/lib/dri/swrast_dri.so)
did not find extension DRI_Kopper version 1
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
did not find extension DRI2_Flush version 1
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa (0xffffffff)
    Device: llvmpipe (LLVM 17.0.6, 128 bits) (0xffffffff)
    Version: 24.1.0
    Accelerated: no
    Video memory: 15641MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 4.5
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 0 MB, largest block: 0 MB
    VBO free aux. memory - total: 12560 MB, largest block: 12560 MB
    Texture free memory - total: 0 MB, largest block: 0 MB
    Texture free aux. memory - total: 12560 MB, largest block: 12560 MB
    Renderbuffer free memory - total: 0 MB, largest block: 0 MB
    Renderbuffer free aux. memory - total: 12560 MB, largest block: 12560 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 827587 MB
    Total available memory: 843229 MB
    Currently available dedicated video memory: 0 MB
OpenGL vendor string: Mesa
OpenGL renderer string: llvmpipe (LLVM 17.0.6, 128 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 24.1.0-devel
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5 (Compatibility Profile) Mesa 24.1.0-devel
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.1.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

(2a) glxinfo output on KDE 6, X11 session:

lena@amaterasu ~> LIBGL_DEBUG=verbose glxinfo -B
name of display: :0
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
using driver apple for 4
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
MESA-LOADER: device is not located on the PCI bus
using driver apple for 4
MESA-LOADER: dlopen(/run/opengl-driver/lib/dri/apple_dri.so)
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
Using DRI3 for screen 0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa (0xffffffff)
    Device: Apple M1 (G13G B1) (0xffffffff)
    Version: 24.1.0
    Accelerated: yes
    Video memory: 15641MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Mesa
OpenGL renderer string: Apple M1 (G13G B1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.1.0-devel
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.1.0-devel
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.1.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

(2b) glxinfo output on KDE 5, Wayland:

lena@amaterasu ~> LIBGL_DEBUG=verbose glxinfo -B
name of display: :0
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
using driver asahi for 4
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
MESA-LOADER: device is not located on the PCI bus
using driver asahi for 4
MESA-LOADER: dlopen(/run/opengl-driver/lib/dri/asahi_dri.so)
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/lena/.drirc: No such file or directory.
Using DRI3 for screen 0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa (0xffffffff)
    Device: Apple M1 (G13G B1) (0xffffffff)
    Version: 24.1.0
    Accelerated: yes
    Video memory: 15641MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Mesa
OpenGL renderer string: Apple M1 (G13G B1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.1.0-devel
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.1.0-devel
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.1.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

(3) Hopefully relevant config snippets:

  hardware.opengl = {
    enable = true;
    driSupport = true;
    driSupport32Bit = lib.mkForce false;
  };

  hardware.asahi = {
    useExperimentalGPUDriver = true;
    experimentalGPUInstallMode = "replace";
    setupAsahiSound = true;
    withRust = true;
  };
epetousis commented 2 months ago

Having the same overall issue, although with a different error after kwin tries to load the DRM backend:

Apr 03 23:31:39 nixos kwin_wayland_wrapper[4463]: MESA-LOADER: failed to open apple: /run/opengl-driver/lib/dri/apple_dri.so: cannot open shared object file: No such file or directory (search paths /run/opengl-driver/lib/dri, suffix _dri)

lkong commented 2 months ago

same issue for me running sway. I cannot get sway to render even with WLR_RENDERER_ALLOW_SOFTWARE = 1

zvolin commented 2 months ago

may also be related to this https://github.com/tpwrules/nixos-apple-silicon/issues/159#issuecomment-2053684818

epetousis commented 1 month ago

Asahi also appears to be having issues with Plasma 6: https://social.treehouse.systems/@AsahiLinux/112414556774367249

shiro commented 3 weeks ago

Also getting:

MESA-LOADER: failed to open apple: /run/opengl-driver/lib/dri/apple_dri.so: cannot open shared object file: No such file or directory (search paths /run/opengl-driver/lib/dri, suffix _dri)

when trying to run Hyprland

zvolin commented 3 weeks ago

if you have macbook Pro with touchbar, it may use wrong gpu. Try to set

environment.variables = {
  WLR_DRM_DEVICES = "/dev/dri/card0";
};