gbm_bo_get_modifier retrieved an incorrect modifier on the AMD RX580 graphics card.
System information
System:
Host: Rarch Kernel: 6.11.3-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc
v: 14.2.1
Desktop: wayfire v: 0.8.0-4f969a49 dm: GDM Distro: Arch Linux
CPU:
Info: 10-core (6-mt/4-st) model: 13th Gen Intel Core i5-13400 bits: 64
type: MST AMCP arch: Raptor Lake rev: 2 cache: L1: 864 KiB L2: 9.5 MiB
L3: 20 MiB
Speed (MHz): avg: 800 min/max: 800/4600:3300 cores: 1: 800 2: 800 3: 800
4: 800 5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: 800 13: 800
14: 800 15: 800 16: 800 bogomips: 79872
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel Alder Lake-S GT1 [UHD Graphics 730] vendor: Gigabyte
driver: i915 v: kernel arch: Gen-12.1 ports: active: none
empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:4682
Device-2: NVIDIA AD107 [GeForce RTX 4060] vendor: Yeston driver: nvidia
v: 560.35.03 arch: Lovelace pcie: speed: 2.5 GT/s lanes: 8 ports:
active: none empty: DP-4, DP-5, DP-6, HDMI-A-5 bus-ID: 01:00.0
chip-ID: 10de:2882
Device-3: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX
470/480/570/570X/580/580X/590] vendor: Sapphire driver: amdgpu v: kernel
arch: GCN-4 pcie: speed: 8 GT/s lanes: 4 ports: active: DP-2,HDMI-A-3
empty: DP-3,DVI-D-1,HDMI-A-4 bus-ID: 05:00.0 chip-ID: 1002:67df
temp: 55.0 C
Device-4: Microdia Dual Mode Camera (8006 VGA) driver: hid-generic,usbhid
type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 bus-ID: 1-6.1:14
chip-ID: 0c45:8006
Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.3
compositor: wayfire v: 0.8.0-4f969a49 driver: X: loaded: modesetting,nvidia
unloaded: vesa alternate: fbdev,intel,nouveau,nv dri: iris gpu: amdgpu
display-ID: 1
Monitor-1: DP-2 model: IG27Q res: 2560x1440 dpi: 108 diag: 685mm (27")
Monitor-2: HDMI-A-3 model: ViewSonic VA2762-2K-HD res: 2560x1440 dpi: 109
diag: 684mm (26.9")
API: EGL v: 1.5 platforms: device: 0 drv: nvidia device: 1 drv: iris
device: 2 drv: radeonsi device: 4 drv: swrast gbm: drv: iris surfaceless:
drv: nvidia wayland: drv: radeonsi x11: drv: radeonsi inactive: device-3
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: amd mesa v: 24.2.4-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 580 Series (radeonsi
polaris10 LLVM 18.1.8 DRM 3.59 6.11.3-zen1-1-zen) device-ID: 1002:67df
API: Vulkan v: 1.3.295 surfaces: xcb,xlib,wayland device: 0
type: discrete-gpu driver: mesa radv device-ID: 1002:67df device: 1
type: discrete-gpu driver: nvidia device-ID: 10de:2882 device: 2
type: integrated-gpu driver: mesa intel device-ID: 8086:4682
Describe the issue
My display output is connected to an AMD RX580 graphics card, and the Nvidia and Intel GPUs are not connected to any monitors. I am using Wayfire, which is based on wlroots. After upgrading Mesa from 24.1.6
to 24.2.0
, wlroots calls gbm_bo_create_with_modifiers()
with {LINEAR}
, and then gbm_bo_get_modifier()
returns INVALID
. This causes wlroots' hardware cursor to break.
Regression
It works fine with Mesa 24.1.6
.
Log files as attachment
Any extra information would be greatly appreciated
related issues: wlroots/wlroots#3905 (closed)
https://github.com/WayfireWM/wayfire/issues/2492
https://github.com/hyprwm/Hyprland/issues/7577