LTO Builds of MESA Exhibit Gfx Artifacts
Before submitting your bug report:
Related issues - #6376, #6486 (closed)
System information
System:
Host: bluestang-pc Kernel: 5.18.11-200.fc36.x86_64 arch: x86_64 bits: 64
compiler: gcc v: 2.37-27.fc36 Desktop: KDE Plasma v: 5.25.3 tk: Qt
v: 5.15.3 wm: kwin_wayland dm: SDDM
Distro: Fedora release 36 (Thirty Six)
CPU:
Info: 12-core model: AMD Ryzen 9 5900X bits: 64 type: MT MCP arch: Zen 3
rev: 0 cache: L1: 768 KiB L2: 6 MiB L3: 64 MiB
Speed (MHz): avg: 2353 high: 2951 min/max: 2200/3700 boost: enabled
cores: 1: 2196 2: 2194 3: 2196 4: 2199 5: 2200 6: 2199 7: 2951 8: 2879
9: 2253 10: 2876 11: 2239 12: 2239 13: 2196 14: 2199 15: 2195 16: 2199
17: 2200 18: 2199 19: 2584 20: 2215 21: 2485 22: 2240 23: 2518 24: 2633
bogomips: 177588
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] vendor: ASRock
driver: amdgpu v: kernel arch: RDNA 2 pcie: speed: 16 GT/s lanes: 16 ports:
active: DP-2 empty: DP-1,DP-3,HDMI-A-1 bus-ID: 2f:00.0 chip-ID: 1002:73bf
Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.3
compositor: kwin_wayland driver: X: loaded: amdgpu
unloaded: fbdev,modesetting,radeon,vesa gpu: amdgpu display-ID: 0
Monitor-1: DP-2 res: 2560x1440 size: N/A
OpenGL: renderer: AMD Radeon RX 6800 XT (navi21 LLVM 14.0.0 DRM 3.46
5.18.11-200.fc36.x86_64)
v: 4.6 Mesa 22.2.0-devel direct render: Yes
Describe the issue
This issue has been happening to various user bases off and on it seems. There has been several reports in various distros, and as a result in Fedora's official repo, LTO has been disabled altogether. I have my own Fedora COPR where I use custom builds of upstream MESA and run into this issue off and on as well. The simple fix is to disable zink building from the gallium-drivers
option in my case.
Below is the build configuration report from meson:
Message: Configuration summary:
prefix: /usr
libdir: lib64
includedir: include
OpenGL: yes (ES1: no ES2: yes)
OSMesa: libOSMesa
DRI platform: drm
DRI driver dir: /usr/lib64/dri
GLX: DRI-based
EGL: yes
EGL drivers: builtin:egl_dri2 builtin:egl_dri3
EGL/Vulkan/VL platforms: x11 wayland surfaceless drm xcb
GBM: yes
GBM backends path: /usr/lib64/gbm
Video Codecs: h264dec h264enc h265dec h265enc vc1dec
Vulkan drivers: swrast intel amd microsoft-experimental
Vulkan ICD dir: share/vulkan/icd.d
Vulkan layers: overlay device-select
llvm: yes
llvm-version: 14.0.5
Gallium drivers: swrast virgl nouveau r300 crocus iris i915 svga radeonsi r600 zink d3d12
Gallium st: mesa xa vdpau omxbellagio va nine clover
HUD lmsensors: yes
Shared-glapi: yes
Perfetto: no
Perfetto ds: auto
Build targets in project: 308
NOTICE: Future-deprecated features used:
* 0.55.0: {'ExternalProgram.path'}
* 0.56.0: {'meson.source_root'}
mesa 22.3.0-devel
Subprojects
DirectX-Headers : YES
User defined options
auto_features : disabled
bindir : /usr/bin
buildtype : plain
datadir : /usr/share
includedir : /usr/include
infodir : /usr/share/info
libdir : /usr/lib64
libexecdir : /usr/libexec
localedir : /usr/share/locale
localstatedir : /var
mandir : /usr/share/man
prefix : /usr
sbindir : /usr/sbin
sharedstatedir : /var/lib
sysconfdir : /etc
wrap_mode : default
build-tests : false
dri3 : enabled
egl : enabled
gallium-d3d12-video: enabled
gallium-drivers : swrast,virgl,nouveau,r300,crocus,iris,i915,svga,radeonsi,r600,zink,d3d12
gallium-extra-hud : true
gallium-nine : true
gallium-omx : bellagio
gallium-opencl : icd
gallium-va : enabled
gallium-vdpau : enabled
gallium-xa : enabled
gallium-xvmc : disabled
gbm : enabled
gles1 : disabled
gles2 : enabled
glvnd : true
glx : dri
libunwind : true
llvm : enabled
lmsensors : enabled
osmesa : true
platforms : x11,wayland
selinux : true
shared-glapi : enabled
shared-llvm : enabled
spirv-to-dxil : true
tools : []
valgrind : enabled
video-codecs : h264dec,h264enc,h265dec,h265enc,vc1dec
vulkan-drivers : swrast,intel,amd,microsoft-experimental
vulkan-layers : overlay,device-select
Regression
This is happening off and on and it's unclear what exactly is causing this. For example I enabled LTO several months ago on builds based off of main
and did not have any issues but then they resurfaced again.