Skip to content

Mellow 0.3.0 dev: MSL/AIR compute objects and Tahoe diagnostics

Pre-release
Pre-release

Choose a tag to compare

@NiSeullent NiSeullent released this 05 Sep 20:21
· 4 commits to d5675858c67c0d18c5bc8287c91a9325a78911d7 since this release

Mellow now executes a bounded MSL/AIR compute subset through its own portable C++ objects and an existing accelerated OpenCL driver. This development release also builds Mellow.kext 0.4.3 with an opt-in Tahoe PCI/IOUserClient diagnostic and prepared-DMA path.

Implemented

  • C++ Device/Buffer/Library/Function/Pipeline/Queue/CommandBuffer/ComputeEncoder, retained driver pipelines, ordered synchronous completion and explicit readback.
  • Typed MSL AST and AIR SSA lowering to OpenCL C; actual LLVM C API raw/wrapped bitcode decoding and verification. Unknown semantics fail explicitly.
  • Known metallib container decoding with pinned real SDL fixtures. SDL render stages remain unsupported. The positive compute AIR fixture is explicitly synthetic.
  • -mellowdiag PCI service for raw 8086:7D41 on Darwin 25, admin-only bounded user client, admitted device IOMapper and prepared DMA. GPU submission/Metal capabilities remain zero.
  • Windows LLVM-C exit-crash correction: the selected DLL stays mapped for process lifetime. Real load/unload, negative-input and concurrent decoder controls are retained.

Verified locally

  • Windows Intel GPU, installed driver 32.0.101.6737: MSL and raw AIR each passed 10,000 submissions and 2,560,000 uint readback comparisons, with one pipeline compilation per run and two extra ordered dispatches.
  • Standalone Examples/compute-msl.cpp returned 10 17 24 31 for inputs 1 2 3 4.
  • Windows/Linux frontend: 2,269 checks plus 72 independent CPU comparisons each; real clang syntax checking, Linux ASan/UBSan and LLVM round trips.
  • 70 reusable-provider lifecycle controls, 256 actual LLVM-C concurrent checks, 13 decoder corpus controls, and 32 process/report tests.
  • Diagnostic production protocol: 6,328 checks each on Windows and Linux ASan/UBSan with simulated memory callbacks.
  • Actual Darwin cross build: 33 units, x86_64 MH_KEXT_BUNDLE 0.4.3; 426/426 imports statically eligible in inspected Tahoe 25G83 Recovery/Lilu. Linux object API also compiled.

Scope

These are explicit Mellow C++ objects, not Apple's Objective-C Metal ABI. Full Metal 2/3, general MSL/AIR, rendering, system MTLDevice registration and WindowServer integration remain incomplete. The Windows driver executes the GPU tests; they do not validate the Darwin kext. A working integrated Tahoe GuC/context/physical-interrupt/fence/reset GPU backend is not provided.

Only a Windows PC was available. Native Tahoe kext/DMA execution, installation and Metal acceleration remain unverified. The native macOS diagnostic client is source-only. GitHub Actions was blocked by the account billing lock; no native Xcode CI success is claimed. This phase makes no EFI/USB/firmware changes and does not close the earlier EXITBS boot blocker.

The source archive, cross-built kext package, integration index and two GPU reports are attached. SHA256SUMS pins their bytes. The LLVM-C DLL is a separately supplied dependency and is not bundled. The final source-linked verification record is docs/VERIFICATION-METAL-JIT-2026-09-06.md in this tag.