Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: gallium llvmpipe failure & NDEBUG on netbsd-11 [PATCH]
On Sun, Aug 16, 2026 at 01:59:59PM +1000, Paul Ripke wrote:
> First off, congrats on netbsd-11! After tracking NetBSD since 0.8,
> this was by far one of the smoother upgrades I've had.
>
> Now to the issue I'm encountering. As my integrated Ryzen graphics
> isn't supported, I'm relying on llvmpipe, which has been working fine
> on netbsd-10. Under netbsd-11, *some* apps are crashing:
>
> 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)
>
> So far, apps include prusaslicer, freecad, xroar. They do "run" (like
> molasses) by passing GALLIUM_DRIVER=softpipe.
>
> Looking at TargetSchedule.cpp, it appears this is not built with
> NDEBUG - should it? I also see a macro REDEBUG used to control NDEBUG,
> although I haven't traced the includes around.
I've tried defining NDEBUG just in TargetSchedule.cpp, which results
in an assert tripping elsewhere:
assertion "ProcResourceIdx < NumProcResourceKinds && "bad proc resource idx"" failed: file "/home/netbsd/netbsd-11/src/external/apache2/llvm/librt/libLLVMCodeGen/../../lib/../dist/llvm/include/llvm/MC/MCSchedule.h", line 343, function "const llvm::MCProcResourceDesc* llvm::MCSchedModel::getProcResource(unsigned int) const"
Abort (core dumped)
Trying to define NDEBUG more broadly seems to just spit compiler errors
in numerous places.
After reading through code a little more, I found a fix, which returns
back to netbsd-10 behaviour for llvmpipe. My machine has an AMD Ryzen 7900
which is Zen4 based... but our LLVM lacks the newer Zen4 description.
Maybe that's why?
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 {
Cheers,
--
Paul Ripke
"Great minds discuss ideas, average minds discuss events, small minds
discuss people."
-- Disputed: Often attributed to Eleanor Roosevelt. 1948.
Home |
Main Index |
Thread Index |
Old Index