Commit Graph
5 Commits
Author SHA1 Message Date
Acelogic e5bb36ea2c repo: point SnapAdreno and SnapI2CHID at their desktop profiles
SnapAdreno 3985c26..79de60e (branch migrate-private):
  adreno-kext: re-prepare evicted maps (ADRENO_RESIDENT_REPIN)
  adreno-kext: skip write-back maintenance once coherency is verified
  adreno-kext: add desktop build profiles
  adreno-kext: drop the raw-offset task lookup from the re-pin log
  adreno-kext: say which commit the desktop profiles reproduce
SnapI2CHID 9cd36f4..816aad8 (branch migrate-private):
  input: add a desktop build profile

Every new kext feature stays behind its define; the default builds of
both kexts are unchanged section for section. The re-pin and coherent
kext code uses this repository's compat/adreno-resource-tail.h and
compat/adreno-coherent-skip.h.
2026-10-23 20:57:24 -04:00
Acelogic 2c60b47a95 repo: move the components to their split sources
SnapI2CHID 9cd36f4, SnapQCC2072 244d5c7, SnapAdreno 3985c26, SnapMetal 40a1864
and air2ir3 55865cc split their large files into ordered parts that compile
as one translation unit each. Object code is unchanged in every component.
2026-10-23 04:06:57 -04:00
Acelogic 3720495a69 repo: move drivers and GPU components into submodules
The Adreno kext, the Metal plug-in, air2ir3, SnapI2CHID and SnapQCC2072 now
live in their own repositories in the Snapintosh organization, split with
their history (git filter-repo --subdirectory-filter). They are mounted
back at their old paths, so relative build paths in build.sh, the tools
and the includes are unchanged. The EL2 monitor, tools and docs stay in
this repository.

Validation: see the follow-up verification on a fresh recursive clone.
2026-10-23 01:38:07 -04:00
Acelogic 28663c30f0 display: keep live scanout copies naturally aligned
The live scanout is mapped as Device memory, where an unaligned access
is an alignment fault and therefore a kernel panic. Cursor spans start
at an arbitrary x, so they are only 4-byte aligned. For long spans
(the enlarged shake-to-locate cursor, about 1.4 KiB per row) the kernel
memcpy issues 16-byte stores that end up unaligned, and the guest
panicked with "Unaligned kernel data abort" in
AdrenoDisplay::presentGated.

ADRENO_PRESENT_LIVE_ALIGNED routes every copy that reads or writes the
scanout through adreno_display_live_copy. It keeps memcpy when both
ends and the length are 16-byte aligned (whole rows) and otherwise uses
naturally aligned 8- and 4-byte accesses. The gate defaults to 0;
build.sh enables it because the faulting copy is also in the baseline
cursor path.

Validation:
PASS  tools/test-adreno-live-copy.c: 7616 offset/length cases match
      memcpy
PASS  gpu/adreno-kext/kext/build.sh, with locally generated 26A428
      headers
PASS  with the gate off, the deployed kext configuration links
      section-identical to the previous kext (12/12 sections)
OBSERVED  A16, macOS 26A428: with the gate on, the shake-to-locate
      cursor no longer panics. The same gesture panicked without it.
NOT RUN  full host suite; frame-time measurement
2026-10-22 02:36:49 -04:00
Acelogic 1510d8c6ce Snapintosh public release
An EL2 monitor/hypervisor and toolchain that boots macOS 27 on the ASUS A16
(Snapdragon X2 Elite), with an Adreno Metal plug-in and IOGPU kext, and
air2ir3, an AIR to Mesa ir3 shader compiler.

MIT, with GPL-2.0 components listed in LICENSE and THIRD_PARTY_NOTICES.md.
No Apple, Qualcomm, ASUS or Microsoft binaries are included.
2026-10-21 21:26:36 -04:00