WIP: fix(runtime): compile host jumps and pause hints on macOS arm64 #477

Draft
mooki wants to merge 1 commit from mooki/Longshot:mac/arm64-host into main
Member

Why

On a Mac with Apple silicon, the host's jump back to a waiting caller and its spin-wait pause do not compile, because
both are written for x86 only. host/hos_setjmp.c's recomp_sj_setjmp/recomp_sj_longjmp are x86-64 assembly, and
hos_thread.c and the POSIX windows.h use x86's pause (_mm_pause, __builtin_ia32_pause). A native arm64 macOS
build stops there. The x86-64 route (Windows, Linux, and macOS under Rosetta) is fine and must stay as it is.

What changed

  • runtime: host/posix/darwin_cpu.c (new). A Darwin arm64 recomp_sj_setjmp/recomp_sj_longjmp in assembly.

    • It saves and restores what AAPCS64 makes the callee keep: x19–x28, the frame pointer x29, the link register x30, SP,
      and the low 64 bits of v8–v15 (d8–d15). It also restores FPCR and FPSR, as the x86 jump restores MXCSR and the x87
      control word.
    • It never touches x18, which Apple reserves, and it saves x29 itself rather than computing a frame.
    • It uses the existing 256-byte slot (SjSlot.buf): 0 the first time, then the longjmp value (1 for 0).
    • arm64e is refused with an #error. It needs authenticated saved pointers, and nothing here strips or skips them.
  • runtime: host/posix/darwin_cpu.h (new). The two declarations (returns_twice, noreturn) and
    darwin_cpu_pause(): yield on arm64, x86's pause builtin on x86-64.

  • runtime: host/hos_setjmp.c. Its two x86 bodies (Win64 and System V) are left as they are, inside
    #if !defined(__APPLE__) || !defined(__aarch64__), so Darwin arm64 takes darwin_cpu.c's.

  • runtime: host/hos_thread.c includes <emmintrin.h> only on x86-64, and present_poll spins with YieldProcessor()
    on macOS. host/posix/windows.h maps YieldProcessor() to darwin_cpu_pause() on macOS.

  • Windows and Linux: unchanged. The new lines are under __APPLE__, and their x86-64 objects are byte-identical to
    main's (Measurements).

  • tests: tests/test_arm64_host.py with tests/arm64_host_test.c and tests/arm64_host_registers.S (new). Game-free:

    • compiles hos_setjmp.c, hos_thread.c and a YieldProcessor() caller with the real runtime headers (generated
      as the build does);
    • links the jump to a fixture whose assembly sets every callee-saved register, jumps, and checks each one after the
      return, with SP, the frame chain, LR, x18 and the floating-point state;
    • runs 64 owner-slot returns and 5 direct return-value cases;
    • checks that arm64e is refused.

    It runs on the Mac's native architecture by default; --arch arm64 --arch x86_64 runs both (x86_64 under Rosetta).
    --source <tree> tests another checkout; --out keeps the objects.

  • docs: docs/development.md, "Darwin host CPU checks".

Flags and settings

None in the game. The test takes --arch, --source, --out, --opt, --cc and --cxx.

Measurements

main: 5e072fc8c2adadba5ea610148be1c47800ba0cca (2026-11-14)
this PR: mac/arm64-host @ 56b5ed6b7ea93aefb8b454ba25e4c177f0dbda96
Hardware: Apple M4 Max (16 CPUs, 64 GiB), macOS 26.7.1 (25G241), Apple clang 21.0.0, -O2, -mmacosx-version-min=14.4.
No GPU, no game
Scene: none (a portability fix; its proof is the test, as CONTRIBUTING's fix row allows)
Method: tests/test_arm64_host.py --arch arm64 --arch x86_64 on this PR and against main's source (git archive 5e072fc8,
--source), in two interleaved rounds (PR, main, PR, main). The first round kept its objects (--out). The x86-64
objects of both sides were then compared byte for byte, and with otool -tvV and otool -rv. Then the full game-free
suite on this PR, compared by test name with main's on the same Mac.
How to reproduce: python -I -B tests/test_arm64_host.py --arch arm64 --arch x86_64, then the same with
--source <a tree of main>.

main @ 5e072fc8 this PR @ 56b5ed6b
arm64 objects: hos_setjmp.c, hos_thread.c, a YieldProcessor() caller 0 of 3 compile 3 of 3 compile
arm64 jump: registers, frame chain, x18, floating-point state cannot link pass: 11 GPRs, 8 vector halves, SP, FP, LR, x18
arm64: 64 owner-slot returns; 5 return values cannot link 64 returns, 0 failures; 5 of 5
arm64e (x86 assembly) refused by #error
x86-64 objects: the same three 3 of 3 compile 3 of 3 compile, byte-identical to main's
x86-64 (Rosetta): registers and 64 returns pass pass
test exit, both rounds 1, 1 0, 0
main @ 5e072fc8:
host/hos_setjmp.c:108:9: error: unknown token in expression
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/emmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
host_objects arch=arm64 passed=0/3
host_objects arch=x86_64 passed=3/3
jump_owned nested_returns=64 failures=0
jump_registers arch=x86_64 gpr=6 vector=0 returns=0,1 sp=1 fp=1 chain=1 fp_control=1 fp_auxiliary=1 failures=0
darwin_cpu architectures=2 failed=1

this PR @ 56b5ed6b:
host_objects arch=arm64 passed=3/3
jump_owned nested_returns=64 failures=0
jump_registers arch=arm64 gpr=11 vector=8 returns=0,1 sp=1 fp=1 chain=1 fp_control=1 fp_auxiliary=1 failures=0
jump_platform x18=1 lr=1
jump_values cases=5 buffer_bytes=256 failures=0
arm64e rejected=1
host_objects arch=x86_64 passed=3/3
jump_owned nested_returns=64 failures=0
jump_registers arch=x86_64 gpr=6 vector=0 returns=0,1 sp=1 fp=1 chain=1 fp_control=1 fp_auxiliary=1 failures=0
darwin_cpu architectures=2 failed=0

x86-64 objects, main @ 5e072fc8 against this PR @ 56b5ed6b:
OBJECT hos_setjmp bytes_equal=1 disassembly_equal=1 relocations_equal=1
OBJECT hos_thread bytes_equal=1 disassembly_equal=1 relocations_equal=1
OBJECT windows_yield bytes_equal=1 disassembly_equal=1 relocations_equal=1
X86_COMPARISON failures=0

Testing

Tested:

  • On an Apple M4 Max with macOS 26.7.1, game-free only, natively and under Rosetta, as above.

  • The test without --arch, as the suite runs it: native arm64 only, exit 0.

  • The full suite, tests/run_all.py, 6 at once, on this PR, compared by test name with main on the same Mac (the
    runner labels macOS linux):

    main @ 5e072fc8:     525 passed, 19 failed, 17 skipped in 177 s (linux, 6 at once)
    this PR @ 56b5ed6b:  526 passed, 19 failed, 17 skipped in 170 s (linux, 6 at once)
    
    • By test name, the only difference is the new tests/test_arm64_host.py (pass): no other check changed status,
      and the same 17 are skipped.
    • The 19 failures are the same on both. They are main's own on a Mac, which the macOS port's other pull requests
      address: test_appimage_package_retry, test_collect_wide, test_control, test_framegen_resources,
      test_game_layout, test_low_memory_notice, test_mem_gate, test_mem_gate_children, test_mirror_trim,
      test_module_ids, test_oot_state_tap, test_pad_layout, test_pcache_header_read, test_pipeline_cache_file,
      test_pipeline_cache_save, test_pipeline_play_cache, test_prof_symbols, test_program_cache_cleanup,
      test_program_cache_one_variant.
    • No new crash report during this PR's run.

Not tested:

  • Windows and Linux. Nothing was built or run there. Their code paths are main's, and the x86-64 objects built
    here are byte-identical to main's; that is Apple clang on macOS, not a Windows or Linux build.
  • The game on macOS. main does not build for macOS yet; the other macOS pull requests (#420) do the rest. In
    particular, the macOS build links host/posix/darwin_cpu.c through the build-scripts pull request of the same wave
    (build(macos): discover dual-architecture toolchains and form Mach-O commands), not through this one.
  • Jumps across fibers or threads, signal handlers, slot overflow, arm64e and PAC. The jump is a same-thread return
    to a caller that is still live, as on x86.
  • macOS 14.4 and an Intel Mac. Built for 14.4, run on 26.7.1 on Apple silicon only.

Needs other testers:

  • Windows (llvm-mingw) and Linux: build the host and run tests/run_all.py, expecting the same results as on main
    (request to open).
  • macOS 14.4 on Apple silicon: python -I -B tests/test_arm64_host.py --arch arm64 --arch x86_64, expecting exit 0
    (request to open).

Screenshots

Nothing on screen.

Risk and rollback

  • Only native arm64 macOS takes the new jump. A wrong saved register there would corrupt the caller it returns to; the
    register fixture sets and checks each one, rather than trusting the compiler's register choice.
  • Windows, Linux and x86-64 macOS compile the same objects as main (byte-identical on macOS).
  • No file hashed into LONGSHOT_SHADER_STAMP (nx2/build.py:1176-1182) changes.
  • Reverting the commit is enough. There is no switch.

Reviewer notes

  • Start with darwin_cpu.c and tests/arm64_host_registers.S: which registers are saved, where in the slot, and how
    the fixture proves each one comes back.
  • Only d8–d15 of the vector registers are callee-saved in AAPCS64, so only they are kept.
  • recomp_sj_setjmp must stay declared returns_twice where it is called (darwin_cpu.h).
  • Other x86-only spots in host/ (hos_svc.c's and nn_os_sync.c's spin loops, nn_video.c's SSE copy) are already
    under x86 guards on main, so they are left alone.
  • Review 56b5ed6b (one commit). It is macos/arm64-host's e5c4f8c9 cherry-picked onto main without a conflict
    (the same patch id), with the Assisted-by and Co-Authored-By trailers of this rebase added.
  • Written from Apple's "Writing ARM64 code for Apple platforms", AAPCS64 2025Q1 and Clang's pointer-authentication
    notes; nothing copied.

Issues

See #420 (the macOS port).

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main. Branched from 5e072fc8; main has moved since, and it is rebased in one sweep before ready.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above). On macOS:
    526 passed, 17 skipped, and the same 19 failures as main on this Mac, named under Testing.
  • Tested in the game, or what wasn't is named under Testing. No game run; named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). The test
    requests are still to open.
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each,
    the median reported. For a fix: the test fails on main and passes here, 2 interleaved rounds, both routes.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • A game-free test added for the fix, failing on main and passing here.
  • Host code builds on both Windows (llvm-mingw) and Linux, with UTF-8 paths. Not built there; requested under
    Needs other testers.
  • Docs updated.
## Why On a Mac with Apple silicon, the host's jump back to a waiting caller and its spin-wait pause do not compile, because both are written for x86 only. `host/hos_setjmp.c`'s `recomp_sj_setjmp`/`recomp_sj_longjmp` are x86-64 assembly, and `hos_thread.c` and the POSIX `windows.h` use x86's `pause` (`_mm_pause`, `__builtin_ia32_pause`). A native arm64 macOS build stops there. The x86-64 route (Windows, Linux, and macOS under Rosetta) is fine and must stay as it is. ## What changed - runtime: `host/posix/darwin_cpu.c` (new). A Darwin arm64 `recomp_sj_setjmp`/`recomp_sj_longjmp` in assembly. - It saves and restores what AAPCS64 makes the callee keep: x19–x28, the frame pointer x29, the link register x30, SP, and the low 64 bits of v8–v15 (d8–d15). It also restores FPCR and FPSR, as the x86 jump restores MXCSR and the x87 control word. - It never touches x18, which Apple reserves, and it saves x29 itself rather than computing a frame. - It uses the existing 256-byte slot (`SjSlot.buf`): 0 the first time, then the `longjmp` value (1 for 0). - arm64e is refused with an `#error`. It needs authenticated saved pointers, and nothing here strips or skips them. - runtime: `host/posix/darwin_cpu.h` (new). The two declarations (`returns_twice`, `noreturn`) and `darwin_cpu_pause()`: `yield` on arm64, x86's `pause` builtin on x86-64. - runtime: `host/hos_setjmp.c`. Its two x86 bodies (Win64 and System V) are left as they are, inside `#if !defined(__APPLE__) || !defined(__aarch64__)`, so Darwin arm64 takes `darwin_cpu.c`'s. - runtime: `host/hos_thread.c` includes `<emmintrin.h>` only on x86-64, and `present_poll` spins with `YieldProcessor()` on macOS. `host/posix/windows.h` maps `YieldProcessor()` to `darwin_cpu_pause()` on macOS. - Windows and Linux: unchanged. The new lines are under `__APPLE__`, and their x86-64 objects are byte-identical to `main`'s (Measurements). - tests: `tests/test_arm64_host.py` with `tests/arm64_host_test.c` and `tests/arm64_host_registers.S` (new). Game-free: - compiles `hos_setjmp.c`, `hos_thread.c` and a `YieldProcessor()` caller with the real runtime headers (generated as the build does); - links the jump to a fixture whose assembly sets every callee-saved register, jumps, and checks each one after the return, with SP, the frame chain, LR, x18 and the floating-point state; - runs 64 owner-slot returns and 5 direct return-value cases; - checks that arm64e is refused. It runs on the Mac's native architecture by default; `--arch arm64 --arch x86_64` runs both (x86_64 under Rosetta). `--source <tree>` tests another checkout; `--out` keeps the objects. - docs: `docs/development.md`, "Darwin host CPU checks". ## Flags and settings None in the game. The test takes `--arch`, `--source`, `--out`, `--opt`, `--cc` and `--cxx`. ## Measurements main: `5e072fc8c2adadba5ea610148be1c47800ba0cca` (2026-11-14) this PR: `mac/arm64-host` @ `56b5ed6b7ea93aefb8b454ba25e4c177f0dbda96` Hardware: Apple M4 Max (16 CPUs, 64 GiB), macOS 26.7.1 (25G241), Apple clang 21.0.0, `-O2`, `-mmacosx-version-min=14.4`. No GPU, no game Scene: none (a portability fix; its proof is the test, as CONTRIBUTING's `fix` row allows) Method: `tests/test_arm64_host.py --arch arm64 --arch x86_64` on this PR and against `main`'s source (`git archive 5e072fc8`, `--source`), in two interleaved rounds (PR, main, PR, main). The first round kept its objects (`--out`). The x86-64 objects of both sides were then compared byte for byte, and with `otool -tvV` and `otool -rv`. Then the full game-free suite on this PR, compared by test name with `main`'s on the same Mac. How to reproduce: `python -I -B tests/test_arm64_host.py --arch arm64 --arch x86_64`, then the same with `--source <a tree of main>`. | | main @ 5e072fc8 | this PR @ 56b5ed6b | |---|---|---| | arm64 objects: `hos_setjmp.c`, `hos_thread.c`, a `YieldProcessor()` caller | 0 of 3 compile | 3 of 3 compile | | arm64 jump: registers, frame chain, x18, floating-point state | cannot link | pass: 11 GPRs, 8 vector halves, SP, FP, LR, x18 | | arm64: 64 owner-slot returns; 5 return values | cannot link | 64 returns, 0 failures; 5 of 5 | | arm64e | (x86 assembly) | refused by `#error` | | x86-64 objects: the same three | 3 of 3 compile | 3 of 3 compile, byte-identical to `main`'s | | x86-64 (Rosetta): registers and 64 returns | pass | pass | | test exit, both rounds | 1, 1 | 0, 0 | ``` main @ 5e072fc8: host/hos_setjmp.c:108:9: error: unknown token in expression /Library/Developer/CommandLineTools/usr/lib/clang/21/include/emmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture" host_objects arch=arm64 passed=0/3 host_objects arch=x86_64 passed=3/3 jump_owned nested_returns=64 failures=0 jump_registers arch=x86_64 gpr=6 vector=0 returns=0,1 sp=1 fp=1 chain=1 fp_control=1 fp_auxiliary=1 failures=0 darwin_cpu architectures=2 failed=1 this PR @ 56b5ed6b: host_objects arch=arm64 passed=3/3 jump_owned nested_returns=64 failures=0 jump_registers arch=arm64 gpr=11 vector=8 returns=0,1 sp=1 fp=1 chain=1 fp_control=1 fp_auxiliary=1 failures=0 jump_platform x18=1 lr=1 jump_values cases=5 buffer_bytes=256 failures=0 arm64e rejected=1 host_objects arch=x86_64 passed=3/3 jump_owned nested_returns=64 failures=0 jump_registers arch=x86_64 gpr=6 vector=0 returns=0,1 sp=1 fp=1 chain=1 fp_control=1 fp_auxiliary=1 failures=0 darwin_cpu architectures=2 failed=0 x86-64 objects, main @ 5e072fc8 against this PR @ 56b5ed6b: OBJECT hos_setjmp bytes_equal=1 disassembly_equal=1 relocations_equal=1 OBJECT hos_thread bytes_equal=1 disassembly_equal=1 relocations_equal=1 OBJECT windows_yield bytes_equal=1 disassembly_equal=1 relocations_equal=1 X86_COMPARISON failures=0 ``` ## Testing **Tested:** - On an Apple M4 Max with macOS 26.7.1, game-free only, natively and under Rosetta, as above. - The test without `--arch`, as the suite runs it: native arm64 only, exit 0. - The full suite, `tests/run_all.py`, 6 at once, on this PR, compared by test name with `main` on the same Mac (the runner labels macOS `linux`): ``` main @ 5e072fc8: 525 passed, 19 failed, 17 skipped in 177 s (linux, 6 at once) this PR @ 56b5ed6b: 526 passed, 19 failed, 17 skipped in 170 s (linux, 6 at once) ``` - **By test name**, the only difference is the new `tests/test_arm64_host.py` (pass): no other check changed status, and the same 17 are skipped. - **The 19 failures are the same on both.** They are `main`'s own on a Mac, which the macOS port's other pull requests address: `test_appimage_package_retry`, `test_collect_wide`, `test_control`, `test_framegen_resources`, `test_game_layout`, `test_low_memory_notice`, `test_mem_gate`, `test_mem_gate_children`, `test_mirror_trim`, `test_module_ids`, `test_oot_state_tap`, `test_pad_layout`, `test_pcache_header_read`, `test_pipeline_cache_file`, `test_pipeline_cache_save`, `test_pipeline_play_cache`, `test_prof_symbols`, `test_program_cache_cleanup`, `test_program_cache_one_variant`. - No new crash report during this PR's run. **Not tested:** - **Windows and Linux.** Nothing was built or run there. Their code paths are `main`'s, and the x86-64 objects built here are byte-identical to `main`'s; that is Apple clang on macOS, not a Windows or Linux build. - **The game on macOS.** `main` does not build for macOS yet; the other macOS pull requests (#420) do the rest. In particular, the macOS build links `host/posix/darwin_cpu.c` through the build-scripts pull request of the same wave (`build(macos): discover dual-architecture toolchains and form Mach-O commands`), not through this one. - **Jumps across fibers or threads, signal handlers, slot overflow, arm64e and PAC.** The jump is a same-thread return to a caller that is still live, as on x86. - **macOS 14.4** and an Intel Mac. Built for 14.4, run on 26.7.1 on Apple silicon only. **Needs other testers:** - Windows (llvm-mingw) and Linux: build the host and run `tests/run_all.py`, expecting the same results as on `main` (request to open). - macOS 14.4 on Apple silicon: `python -I -B tests/test_arm64_host.py --arch arm64 --arch x86_64`, expecting exit 0 (request to open). ## Screenshots Nothing on screen. ## Risk and rollback - Only native arm64 macOS takes the new jump. A wrong saved register there would corrupt the caller it returns to; the register fixture sets and checks each one, rather than trusting the compiler's register choice. - Windows, Linux and x86-64 macOS compile the same objects as `main` (byte-identical on macOS). - No file hashed into `LONGSHOT_SHADER_STAMP` (`nx2/build.py:1176-1182`) changes. - Reverting the commit is enough. There is no switch. ## Reviewer notes - Start with `darwin_cpu.c` and `tests/arm64_host_registers.S`: which registers are saved, where in the slot, and how the fixture proves each one comes back. - Only d8–d15 of the vector registers are callee-saved in AAPCS64, so only they are kept. - `recomp_sj_setjmp` must stay declared `returns_twice` where it is called (`darwin_cpu.h`). - Other x86-only spots in `host/` (`hos_svc.c`'s and `nn_os_sync.c`'s spin loops, `nn_video.c`'s SSE copy) are already under x86 guards on `main`, so they are left alone. - Review `56b5ed6b` (one commit). It is `macos/arm64-host`'s `e5c4f8c9` cherry-picked onto `main` without a conflict (the same patch id), with the `Assisted-by` and `Co-Authored-By` trailers of this rebase added. - Written from Apple's "Writing ARM64 code for Apple platforms", AAPCS64 2025Q1 and Clang's pointer-authentication notes; nothing copied. ## Issues See #420 (the macOS port). ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [ ] Rebased on current `main`. Branched from 5e072fc8; main has moved since, and it is rebased in one sweep before ready. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). On macOS: 526 passed, 17 skipped, and the same 19 failures as `main` on this Mac, named under Testing. - [x] Tested in the game, or what wasn't is named under Testing. No game run; named under Testing. - [ ] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). The test requests are still to open. - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. For a `fix`: the test fails on `main` and passes here, 2 interleaved rounds, both routes. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] A game-free test added for the fix, failing on `main` and passing here. - [ ] Host code builds on both Windows (llvm-mingw) and Linux, with UTF-8 paths. Not built there; requested under Needs other testers. - [x] Docs updated.
fix(runtime): compile host jumps and pause hints on macOS arm64
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 4s
CI / Conventional Commit title (pull_request) Successful in 4s
CI / Workflow lint (actionlint) (pull_request) Successful in 7s
Third-party parts / As their notes say (pull_request) Successful in 11s
Website / Website on Cloudflare (pull_request_target) Has been skipped
56b5ed6b7e
Add a Darwin arm64 host nonlocal jump implementation with the AAPCS64
callee-saved registers, stack and frame pointers, link register and floating
point environment. Leave x18 untouched and reject arm64e authenticated
contexts explicitly instead of using raw saved pointers there.

Keep both x86 assembly implementations unchanged. Select a Darwin pause
hint without changing Windows or Linux code, and guard the x86 header.
Add game-free object builds and assembly-controlled register/return tests,
including a Rosetta route and a test against another source checkout.

The new Darwin source must be added to the macOS host build list separately;
this topic does not enable a full macOS build or change fibers or VM pages.

Assisted-by: GPT-6 Astra
Co-Authored-By: GPT-6 Astra <[email protected]>
Assisted-by: Claude Opus 5.5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 4s
CI / Conventional Commit title (pull_request) Successful in 4s
CI / Workflow lint (actionlint) (pull_request) Successful in 7s
Third-party parts / As their notes say (pull_request) Successful in 11s
Website / Website on Cloudflare (pull_request_target) Has been skipped
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'mac/arm64-host:mooki-mac/arm64-host'
git switch 'mooki-mac/arm64-host'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!477
No description provided.