NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
lib/60614: Assert in gallium llvmpipe on Ryzen 9 7900
>Number: 60614
>Category: lib
>Synopsis: Assert in gallium llvmpipe on Ryzen 9 7900
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: lib-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Aug 17 12:20:00 +0000 2026
>Originator: Paul Ripke
>Release: NetBSD 11.0_STABLE 20260816
>Organization:
Paul Ripke
"Great minds discuss ideas, average minds discuss events, small minds
discuss people."
-- Disputed: Often attributed to Eleanor Roosevelt. 1948.
>Environment:
System: NetBSD slave 11.0_STABLE NetBSD 11.0_STABLE (SLAVE) #0: Sat Aug 15 09:42:47 AEST 2026 stix@slave:/home/netbsd/netbsd-11/obj.amd64/home/netbsd/netbsd-11/src/sys/arch/amd64/compile/SLAVE amd64
Architecture: x86_64
Machine: amd64
>Description:
I am using llvmpipe due to lack of support. In netbsd-10, this worked without
issues. After upgrading to netbsd-11, some apps started failing, including
prusaslicer, freecad, xroar, etc. Failed assertions like:
libEGL warning: DRI2: failed to authenticate
DefIdx 1 exceeds machine model writes for early-clobber renamable $ymm5, dead early-clobber renamable $ymm0 = VPGATHERDDYrm killed renamable $ymm5(tied-def 0), renamable $rcx, 1, killed renamable $ymm1, 0, $noreg, killed renamable $ymm0(tied-def 1) :: (load 32, align 1)
(Try with MCSchedModel.CompleteModel set to false)incomplete machine model
UNREACHABLE executed at /home/netbsd/netbsd-11/src/external/apache2/llvm/librt/libLLVMCodeGen/../../lib/../dist/llvm/lib/CodeGen/TargetSchedule.cpp:246!
Abort (core dumped)
Some apps are still fine with OpenGL, e.g. chromium with webglsamples.
Additionally, starting apps with 'GALLIUM_DRIVER=softpipe' also works, but is
unusably slow.
>How-To-Repeat:
Start OpenGL app using llvmpipe. Likely only applies to Zen3 or Zen4
architectures, based on the patch below.
>Fix:
The following avoids the specific assertion above; I had also tried defining
NDEBUG, which just resulted in other assertions elsewhere, or build failures.
diff --git a/external/apache2/llvm/dist/llvm/lib/Target/X86/X86ScheduleZnver3.td b/external/apache2/llvm/dist/llvm/lib/Target/X86/X86ScheduleZnver3.td
index fae9b1b51ef1..1229f68760a5 100644
--- a/external/apache2/llvm/dist/llvm/lib/Target/X86/X86ScheduleZnver3.td
+++ b/external/apache2/llvm/dist/llvm/lib/Target/X86/X86ScheduleZnver3.td
@@ -60,7 +60,7 @@ def Znver3Model : SchedMachineModel {
let PostRAScheduler = 1; // Enable Post RegAlloc Scheduler pass.
- let CompleteModel = 1;
+ let CompleteModel = 0;
}
let SchedModel = Znver3Model in {
Home |
Main Index |
Thread Index |
Old Index