Commit Graph
21 Commits
Author SHA1 Message Date
Acelogic c77dd9974e repo: move SnapAdreno to early swap completion
SnapAdreno a2d43d0: ADRENO_PRESENT_EARLY_DONE in AdrenoDisplay
(src/AdrenoDisplayEarlyDone.h, boot-arg adreno_present_early_done)
and the desktop-early-done profile (desktop-backlight plus the
define). Define off, the desktop-next profile still builds the
deployed swap-path-20261024 AdrenoX2 section for section.
2026-10-24 21:54:41 -04:00
Acelogic 5e7b890849 repo: merge the icon pixel probe and the CS table fix set (icon-pixels-next)
The on-device CoreImage pixel test (tools/run-icon-pixels.py, compare-icon-pixels.py, SnapMetal harness/icon-pixels) and SnapMetal 8fe64cb's ADRENO_CS_TABLES=1 build (SP_CS_CONFIG NTEX equal to NSAMP, as Mesa programs every stage), trusted and deployable as metal-stage-iconfix-20261024 (AdrenoMetal ba3a3fd6, CDHash 11d5ff9a; the icon-pixels tool 25f07e86). next1/next1b showed partial System Settings icons with no plug-in or kext refusal.
2026-10-24 20:21:48 -04:00
Acelogic 463c4036c5 repo: point SnapAdreno at the swap brightness path
SnapAdreno e1cf072 (branch backlight-path, not pushed): AdrenoDisplay
overrides swap_submit and hands the brightness each swap carries to
AdrenoBacklight as source "swap"; AdrenoBacklight no longer publishes
force-brightness-control, whose writes WindowServer's sandbox refused
in run next2c. The default kext is section for section unchanged.
2026-10-24 20:19:28 -04:00
Acelogic bad2b992dc repo: merge the ADRENO_CS_TABLES candidate (icon-pixels-fix)
The --cs-tables expectations of test-adreno-settings-ci-encoding.py,
and SnapMetal at icon-pixels-next (8fe64cb): ADRENO_CS_TABLES (51d07a1,
ef0c80a) merged with the icon-pixels probe (713dab1, 263dd47).
2026-10-24 19:55:32 -04:00
Acelogic 88fac86a26 repo: merge the icon-pixels pixel test (icon-pixels)
icon-pixels (SnapMetal harness/icon-pixels*.m) and the tools that
build it, run it in the guest over the console and compare its lines
with this Mac's reference; docs/RUNNING.md describes the check.
2026-10-24 19:55:22 -04:00
Acelogic 1421e52e29 repo: point SnapMetal at the per-process ADRENO_CS_TABLES opt-out
SnapMetal ef0c80a lets a process started with ADRENO_CS_TABLES=0 keep the
old compute counts, so icon-pixels can compare both encodings in one
boot with the candidate installed.
2026-10-24 19:47:06 -04:00
Acelogic 8351bc0674 repo: point SnapAdreno at its backlight-path branch
SnapAdreno 9cc1e92 (branch backlight-path, not pushed): AdrenoBacklight
maps nits proportionally onto levels with the compat helpers of the
previous commit, publishes force-brightness-control so WindowServer's
BrightnessControl writes brightness-nits to it, and publishes its
DPCD700 diagnostic as 64 bits. The default kext is section for section
the base commit's.
2026-10-24 19:46:45 -04:00
Acelogic bc5846fb4e repo: point SnapMetal at icon-pixels without --bundle
SnapMetal 263dd47 removes icon-pixels' second-plug-in mode, which
cannot work in the guest (Metal's device list loads the installed
plug-in first).
2026-10-24 19:42:46 -04:00
Acelogic 9e64bbb125 repo: point SnapMetal at the ADRENO_CS_TABLES candidate
SnapMetal 51d07a1 adds ADRENO_CS_TABLES (default off): CoreImage's
compute kernels get SP_CS_CONFIG NTEX = NSAMP = their T#/S# count and
NUAV = their UAV count, as Mesa programs every stage. A candidate for
the partial Settings icons, to be decided by the icon-pixels check.
2026-10-24 19:40:25 -04:00
Acelogic 2986fc3ba9 repo: point SnapMetal at the icon-pixels probe
SnapMetal 713dab1 adds harness/icon-pixels*.m, the on-device pixel
probe of the CoreImage kernels behind the System Settings icons.
2026-10-24 19:31:58 -04:00
Acelogic b78c12e1f2 repo: point the submodules at their next branches
SnapAdreno f54b9ec..b5bfcb4 (next):
  adreno-kext: add the desktop-next build profile
  (desktop-nocoherent plus ADRENO_BACKLIGHT in AdrenoDisplay.o, the
  kext of an --edp-backlight run without --gpu-coherent)
SnapMetal 936d51b..7bc40ef (next): the --no-ff merge of
  feature/settings-icons onto migrate-private 40a1864 (same tree as
  936d51b)
SnapI2CHID 816aad8..f0b7984 (next): the merge of feature/fn-keys
  (abaa501 Fn-key layer, 7c0a059 desktop-fnkeys profile). fn-keys made
  no pointer commit, so this is the first one that carries it; the
  umbrella's tests and build-auxkc-desktop.sh I2C_PROFILE need it.

Default builds stay section-identical to migrate-private
(tools/macho-sections.py, ZERO_AR_DATE=1): AdrenoX2 default 12 of 12,
SnapI2CHID default and desktop 12 of 12 each.
2026-10-24 03:58:07 -04:00
Acelogic a254f01fc9 repo: merge the Settings pane icons (settings-icons)
Merge feature/settings-icons (b9c12cb..22aad4b). docs/RUNNING.md and
tools/cycle_lib/installed_fresh.py merge without conflict: the
settings-icons trust set (ADDITIONS/TRUST_PAYLOAD, mirror-slab kept as
ADDITIONS_MIRRORSLAB for rollback) sits beside the brightness and
fn-keys options.

gpu/adreno-kext/kext: SnapAdreno next f54b9ec, the merge of all three
SnapAdreno feature branches; gpu/adreno-kext/plugin: SnapMetal 936d51b
(feature/settings-icons).
2026-10-24 03:46:49 -04:00
Acelogic 5b35148492 repo: merge the eDP panel brightness (brightness)
Merge feature/brightness (7da9adf..f189da7) onto the display-modes
merge.

tools/check-iomfb-vtable.py: both branches added an AdrenoDisplay
define option (display-modes --display-define, applied to
AdrenoDisplay.cpp only; brightness --define, applied to every .cpp).
Keep one implementation: --display-define, with --define as an alias
of the same list, compiles AdrenoDisplay.cpp alone with the defines,
which is what both branches' help text promises and what
test-adreno-display-trace.py passes.

gpu/adreno-kext/kext: SnapAdreno next 53c0054, the merge of
feature/display-modes and feature/brightness.
2026-10-24 03:46:35 -04:00
Acelogic 8856849ef7 repo: point SnapMetal and SnapAdreno at the settings-icons work
SnapMetal 40a1864..936d51b (branch feature/settings-icons):
  adreno-metal: let build.sh pass ADRENO_PIPELINE
  adreno-metal: encode the CoreImage kernels of Settings pane icons
  adreno-metal: add the Settings pane icon harnesses
SnapAdreno 79de60e..e7b1d3c (branch feature/settings-icons):
  adreno-kext: opt in to multi-unit CS sampler loads (adreno_cs_samplers)
  adreno-kext: build the desktop profiles with ADRENO_IB_CS_SAMPLERS

Both features stay behind their defines. With ADRENO_SETTINGS_ICONS
unset or 0 the plug-in builds byte for byte as at 40a1864 (strict,
lenient, and with ADRENO_PIPELINE); without ADRENO_IB_CS_SAMPLERS the
default and desktop-profile kexts are byte-identical to 79de60e's. The
profiles now carry ADRENO_IB_CS_SAMPLERS, inert unless the guest boots
with adreno_cs_samplers=1. SnapAdreno's AdrenoX2 calls this
repository's adreno_ib_set_cs_sampler_units (compat, b9c12cb).
2026-10-24 03:35:46 -04:00
Acelogic f189da74f0 repo: move SnapAdreno to the AdrenoBacklight commits
gpu/adreno-kext/kext 79de60e -> 41334e1 (SnapAdreno feature/brightness):
the AdrenoBacklight service (c94a34f) and the desktop-backlight profile
(41334e1) that --edp-backlight's AuxKC is built from. The default and
desktop kexts are section for section unchanged. Not pushed.
2026-10-24 01:57:48 -04:00
Acelogic 40a150a538 repo: move SnapAdreno to the head rule and IOMFB trace
SnapAdreno feature/display-modes (c1b4ad5):
- moves the re-pin refusal report into an ordered part;
- adds ADRENO_RESIDENT_HEAD_OFFSET: page-unaligned client buffers are
  mapped in whole pages, using compat/adreno-resource-tail.h;
- adds ADRENO_DISPLAY_TRACE_MODES: the IOMFB call and swap geometry
  trace;
- builds both in the desktop profiles.
With the defines off, the default build and both profiles are
section-identical to SnapAdreno 79de60e.
2026-10-24 01:46:09 -04:00
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