hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.64k stars 829 forks source link

Hyprland doesn't see GPU if AQ_DRM_DEVICES is a symlink #6997

Closed heather7283 closed 1 month ago

heather7283 commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 016da234d0e852de3ef20eb2e89ac58d2a85f6e7 (Core: Move to aquamarine (6608)). Date: Sun Jul 21 15:09:54 2024 Tag: v0.41.2-49-g016da234, commits: 4935 flags: (if any) System Information: System name: Linux Node name: FA506IH Release: 6.9.0-arch1-1-FA506IH Version: #13 SMP PREEMPT_DYNAMIC Sun, 30 Jun 2024 00:52:29 +0000 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] [10de:1f99] (rev a1) (prog-if 00 [VGA controller]) 05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev c7) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 555.58.02 Tue Jun 25 01:39:15 UTC 2024 os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ======Config-Start====== Config File: /home/heather/.config/hypr/puppet.conf: Read Succeeded #env = AQ_DRM_DEVICES,/dev/dri/by-name/amdgpu-card env = AQ_DRM_DEVICES,/dev/dri/card0 exec-once = foot debug { disable_logs = false enable_stdout_logs = true } ======Config-End======== ```

Description

When AQ_DRM_DEVICES contains path to a symlink, Hyprland doesn't see the GPU. For example, on my system I have:

drwxr-xr-x       - root 23 Jul 11:30  /dev/dri
drwxr-xr-x       - root 23 Jul 11:30 ├──  by-name
lrwxrwxrwx       - root 23 Jul 11:30 │  ├──  amdgpu-card -> ../card0
lrwxrwxrwx       - root 23 Jul 11:30 │  ├──  amdgpu-render -> ../renderD128
lrwxrwxrwx       - root 23 Jul 11:30 │  ├──  nvidia-card -> ../card1
lrwxrwxrwx       - root 23 Jul 11:30 │  └──  nvidia-render -> ../renderD129
drwxr-xr-x       - root 23 Jul 11:30 ├──  by-path
lrwxrwxrwx       - root 23 Jul 11:30 │  ├──  pci-0000:01:00.0-card -> ../card1
lrwxrwxrwx       - root 23 Jul 11:30 │  ├──  pci-0000:01:00.0-render -> ../renderD129
lrwxrwxrwx       - root 23 Jul 11:30 │  ├──  pci-0000:05:00.0-card -> ../card0
lrwxrwxrwx       - root 23 Jul 11:30 │  └──  pci-0000:05:00.0-render -> ../renderD128
crw-rw----   226,0 root 23 Jul 11:30 ├──  card0
crw-rw----   226,1 root 23 Jul 11:30 ├──  card1
crw-rw-rw- 226,128 root 23 Jul 11:30 ├──  renderD128
crw-rw-rw- 226,129 root 23 Jul 11:30 └──  renderD129

If I set AQ_DRM_DEVICES to /dev/dri/by-name/amdgpu-card it doesn't work, but if I set it to /dev/dri/card0, it does. It used to work fine on wlroots before AQ merge.

How to reproduce

Create a symlink to /dev/dri/cardN, then set AQ_DRM_DEVICES to path to symlink, launch Hyprland.

Crash reports, logs, images, videos

hyprland.log

izmyname commented 1 month ago

https://github.com/hyprwm/Hyprland/issues/6956

That's an expected behavior.

Not a hyprland issue, if you want that implemented I guess open a ticket at aq