10 Commits
Author SHA1 Message Date
rpone 4b57b67251 feat(gpu): GMEM swap patch, unixnu --os, module pointers for the diagnostics batch
turnip-gmem-mutable-swap.patch moves GMEM loads and stores with the identity swap on the memory side and adds the render pass and submission rings; unixnu --os 17|26|27 selects the OS profile and its output directory.
2026-10-30 23:54:41 +08:00
bluseliu50 e038ba38fc fix(turnip): owner-laid linear images at 64-byte pitch, rendered in SYSMEM
fdl6_layout aligned an explicit linear layout's pitch to 16 pixels for
the 16x4 GMEM store, so an IOSurface whose rows are 24384 bytes (3048
RGBA16Float texels) could not be imported in place. An explicit layout
now takes the hardware's 64-byte alignment, and a linear host or
explicit-layout attachment whose size is not whole tile blocks renders
in SYSMEM, which reads and writes its texels alone. Bridge patch 0021.
2026-10-29 17:04:39 +08:00
bluseliu50 159eb82611 fix(turnip): memoryless textures take no memory
The darwin backend now offers lazily allocated memory, as the msm
backend does with a settable GPU address: a sparse VMA reserves the
range and a BO is made there only when a pass needs the bytes. A pass
with such an attachment that has no memory yet renders in GMEM, where
the attachment lives in tile memory alone; the autotuner chose SYSMEM
for passes of few draws and so made the memory for good.

Core Animation's render server holds its intermediate targets as
memoryless textures: untagged-feaf29203 had twelve 3048x2032 RGBA16F
ones, 758 MiB, each memory of its own. On the host the same Liquid
Glass scene no longer allocates the 48 MiB attachment.
2026-10-29 16:34:29 +08:00
bluseliu50 16d7ff9632 feat(gpu): metal2vulkan development tip, BOs from system memory
The translator pin moves to upstream development 624bab39 (the
inexact-math work) and records its branch; check-metal2vulkan-pin.py
checks the pin against the branch the record names. Bridge patch 0018
rounds heap texture sizes to their alignment. Adreno740 takes user BOs
from system memory, with no fixed pool.
2026-10-29 14:30:09 +08:00
bluseliu50 c93e965466 feat(gpu): metal2vulkan 0dfdbcd, a fixed Turnip cache identity and pipelines compiled ahead
- pin metal2vulkan at upstream 0dfdbcd5 with the rebased 16-patch series;
  scripts/check-metal2vulkan-pin.py proves with git alone that the
  checkout is upstream plus exactly those patches
- Turnip's pipeline cache UUID comes from its compiler source
  (-Dtu-build-id), the same for the host and the tablet build
- scripts/make-pipeline-cache.py runs the render server's priming over
  every library of the OS image on the host through the tablet's
  compiler and packs the cache
2026-10-29 11:44:31 +08:00
rpone ab11a8cb68 feat(scripts): iPadOS 27 kernel, driver, GPU addon and seed build steps
Source-driver and source-storage builds, the arm64e PAC rewrite for the Rust bridge, the IOAccelerator base ABI of 24A446, the bridge with mimalloc and link-time optimisation, the plugin with the prime list, addon options for a prime list, a pipeline pack and cache export, wallpaper overlay and seed changes, and payload, kernel and userdata steps for the new profile.
2026-10-28 09:20:55 +08:00
bluseliu50 d07f3c3fc4 fix(gpu): let Turnip bind host-import images at any offset
Turnip asked a dedicated allocation of every image made for external
memory, so an image over a no-copy buffer's host pages could not be
bound inside the buffer's import and each such texture fell back to a
shadow image copied in and out per pass. Ask it only for handle types
that carry per-image metadata, as the host-allocation format query
already reports.
2026-10-22 19:04:36 +08:00
bluseliu50 327f765de7 feat(scripts): bind AES and the accelerator from recorded audit results
Both audits need hardware and emulator evidence of the original kernelcache that is not in any repository. Their recorded results (AES method addresses, accelerator base class layout) ship with the scripts and are used when the evidence is absent. They belong to the kernelcache pinned in board.toml.
2026-10-21 00:33:18 +08:00
rpone 6c56ecec19 feat(gpu): import the native Adreno and Metal stack
Bring the current NativeAdreno, NativeMetal, AdrenoFirmware, AdrenoPM4,
AirNir and ArmSmmu4K sources, the Mesa pipeline-cache and builtin-shader
patches, and the Turnip host cache tools.
2026-10-20 18:08:40 +08:00
bluseliu50 dec4c7b5b6 Initial import 2026-10-19 18:49:31 +08:00