diff --git a/.github/aurora/AGENTS.md b/.github/aurora/AGENTS.md deleted file mode 100644 index 0e9e70b89392..000000000000 --- a/.github/aurora/AGENTS.md +++ /dev/null @@ -1,19 +0,0 @@ -# Aurora Silicon assistant policy - -This is Aurora Silicon's own policy for AI coding assistants working in -this repository. It is the only assistant instruction file this tree -carries. Upstream projects' instruction files are never carried here. - -AGENTS.md, CLAUDE.md, GEMINI.md and .github/copilot-instructions.md are -copies of .github/aurora/AGENTS.md. The aurora-agent-policy workflow -puts them back if anything else replaces them, including an upstream -merge. To change the policy, edit .github/aurora/AGENTS.md. - -## Rules - -- Only public code goes in. Never copy code from proprietary sources. -- Changes are tested on the hardware they affect before they are merged. - -## To be expanded - -Build, test and review conventions for this repository will go here. diff --git a/.github/aurora/agent-policy.sh b/.github/aurora/agent-policy.sh deleted file mode 100755 index 043031fdd9a4..000000000000 --- a/.github/aurora/agent-policy.sh +++ /dev/null @@ -1,235 +0,0 @@ -#!/usr/bin/env bash -# Aurora Silicon assistant-file policy guard. -# -# The canonical policy is .github/aurora/AGENTS.md on the default branch. -# AGENTS.md, CLAUDE.md, GEMINI.md and .github/copilot-instructions.md may -# exist only as byte-identical regular-file copies of it. Every other -# assistant instruction file (any directory depth) is a violation, except -# paths listed one per line in .github/aurora/agent-policy-allow on the -# default branch. -# -# This script works only with paths, modes and object ids. It never reads -# the contents of an assistant instruction file and never checks one out. -# -# Usage: agent-policy.sh push | sweep | pr -# -# Environment: -# DEFAULT_BRANCH default branch name (required) -# POLICY_BRANCHES branches that carry the copies (default: DEFAULT_BRANCH) -# DRY_RUN=1 print what would happen, change nothing -# LOCAL=1 operate on local refs/heads/* (bare clone testing), -# no fetch and no push -# REMOTE remote name (default: origin) -set -u -o pipefail - -MODE=${1:-} -ARG=${2:-} -REMOTE=${REMOTE:-origin} -DRY_RUN=${DRY_RUN:-0} -LOCAL=${LOCAL:-0} -: "${DEFAULT_BRANCH:?DEFAULT_BRANCH must be set}" -POLICY_BRANCHES=${POLICY_BRANCHES:-$DEFAULT_BRANCH} - -CANON_PATH=.github/aurora/AGENTS.md -ALLOW_PATH=.github/aurora/agent-policy-allow -COPIES=(AGENTS.md CLAUDE.md GEMINI.md .github/copilot-instructions.md) -FILE_RE='^((agents?|claude|gemini|codex|copilot-instructions)\.md|\.(cursorrules|clinerules|windsurfrules))$' -DIR_RE='^\.(claude|gemini|cursor|codex)$' -BOT_NAME='github-actions[bot]' -BOT_EMAIL='41898282+github-actions[bot]@users.noreply.github.com' -ZERO=0000000000000000000000000000000000000000 - -log() { printf '%s\n' "$*" >&2; } - -if [ "$LOCAL" = 1 ]; then NS=refs/heads; else NS=refs/remotes/$REMOTE; fi - -fetch_heads() { - [ "$LOCAL" = 1 ] && return 0 - # Tips only, trees only. Blobs are fetched lazily and only for our - # own policy files. - git fetch -q --no-tags --prune --depth=1 --filter=blob:none "$REMOTE" \ - "+refs/heads/$1:$NS/$1" -} - -is_policy_branch() { - local b - for b in $POLICY_BRANCHES; do [ "$b" = "$1" ] && return 0; done - return 1 -} - -CANON= -ALLOW=() -load_canonical() { - CANON=$(git rev-parse -q --verify "$NS/$DEFAULT_BRANCH:$CANON_PATH" 2>/dev/null || true) - if [ -n "$CANON" ] && [ "$(git cat-file -t "$CANON")" != blob ]; then CANON=; fi - local allow - allow=$(git rev-parse -q --verify "$NS/$DEFAULT_BRANCH:$ALLOW_PATH" 2>/dev/null || true) - ALLOW=() - if [ -n "$allow" ]; then - while IFS= read -r line; do - line=${line%%#*}; line=${line%"${line##*[![:space:]]}"} - [ -n "$line" ] && ALLOW+=("$line") - done < <(git cat-file blob "$allow") - fi - log "canonical $CANON_PATH on $DEFAULT_BRANCH: ${CANON:-}" -} - -is_copy_path() { - local c - for c in "${COPIES[@]}"; do [ "$c" = "$1" ] && return 0; done - return 1 -} - -is_allowed() { - local a - for a in "${ALLOW[@]+"${ALLOW[@]}"}"; do [ "$a" = "$1" ] && return 0; done - return 1 -} - -# Print "mode type oidpath" for each violation in commit $1. -# Print "missingpath" for each copy path that is absent (policy use). -scan_commit() { - local commit=$1 meta mode type oid path c - declare -A seen=() - # One awk pass picks the candidates: assistant files at any depth and - # assistant directories (whose contents are not listed separately). - while IFS=$'\t' read -r meta path; do - read -r mode type oid <<<"$meta" - is_allowed "$path" && continue - if [ "$type" != tree ]; then - [ "$path" = "$CANON_PATH" ] && continue - if is_copy_path "$path"; then - seen[$path]=1 - if [ -n "$CANON" ] && [ "$mode" = 100644 ] && [ "$oid" = "$CANON" ]; then - continue - fi - fi - fi - printf '%s %s %s\t%s\n' "$mode" "$type" "$oid" "$path" - done < <(git ls-tree -r -t --full-tree "$commit" | FRE=$FILE_RE DRE=$DIR_RE awk -F'\t' ' - skip != "" && index($2, skip "/") == 1 { next } - { skip = ""; n = split($2, parts, "/"); base = tolower(parts[n]); split($1, m, " ") } - m[2] == "tree" { if (base ~ ENVIRON["DRE"]) { print; skip = $2 } next } - base ~ ENVIRON["FRE"] { print }') - for c in "${COPIES[@]}"; do - [ -z "${seen[$c]:-}" ] && printf 'missing\t%s\n' "$c" - done - return 0 -} - -# heal : returns 0 when clean or healed, 1 when push failed. -heal() { - local b=$1 tip policy=0 out viol=() missing=() line idx newtree commit msg p - tip=$(git rev-parse -q --verify "$NS/$b^{commit}") || { log "$b: no such branch"; return 0; } - is_policy_branch "$b" && policy=1 - out=$(scan_commit "$tip") - while IFS= read -r line; do - [ -z "$line" ] && continue - if [ "${line%%$'\t'*}" = missing ]; then missing+=("${line#*$'\t'}") - else viol+=("$line"); fi - done <<<"$out" - if [ "$policy" = 1 ] && [ -n "$CANON" ]; then :; else missing=(); fi - if [ ${#viol[@]} -eq 0 ] && [ ${#missing[@]} -eq 0 ]; then - log "$b: clean" - return 0 - fi - for line in "${viol[@]+"${viol[@]}"}"; do log "$b: violation ${line}"; done - for p in "${missing[@]+"${missing[@]}"}"; do log "$b: restore copy $p"; done - [ "$DRY_RUN" = 1 ] && { log "$b: dry run, no commit"; return 0; } - - idx=$(mktemp) - export GIT_INDEX_FILE=$idx - git read-tree "$tip" - for line in "${viol[@]+"${viol[@]}"}"; do - p=${line#*$'\t'} - if [ "$(printf '%s' "$line" | cut -d' ' -f2)" = tree ]; then - git ls-tree -r -z --full-tree --name-only "$tip" -- "$p" | while IFS= read -r -d '' f; do - printf '0 %s\t%s\n' "$ZERO" "$f" - done | git update-index --index-info - else - printf '0 %s\t%s\n' "$ZERO" "$p" | git update-index --index-info - fi - done - if [ "$policy" = 1 ] && [ -n "$CANON" ]; then - for p in "${COPIES[@]}"; do - git update-index --add --cacheinfo "100644,$CANON,$p" - done - fi - newtree=$(git write-tree) - unset GIT_INDEX_FILE - rm -f "$idx" - if [ "$newtree" = "$(git rev-parse "$tip^{tree}")" ]; then - log "$b: nothing to change" - return 0 - fi - msg=$(printf 'gfya\n\nAurora agent policy: remove assistant instruction files that are\nnot copies of %s on %s, and keep the copies on policy\nbranches identical to it.\n' "$CANON_PATH" "$DEFAULT_BRANCH") - commit=$(GIT_AUTHOR_NAME=$BOT_NAME GIT_AUTHOR_EMAIL=$BOT_EMAIL \ - GIT_COMMITTER_NAME=$BOT_NAME GIT_COMMITTER_EMAIL=$BOT_EMAIL \ - git commit-tree "$newtree" -p "$tip" -m "$msg") - log "$b: commit $commit" - if [ "$LOCAL" = 1 ]; then - git update-ref "refs/heads/$b" "$commit" "$tip" - return 0 - fi - # Plain push. If the branch moved, give up; the next run retries. - if git push -q "$REMOTE" "$commit:refs/heads/$b"; then - log "$b: pushed" - return 0 - fi - log "$b: push rejected, leaving it for the next run" - return 1 -} - -list_branches() { - if [ "$LOCAL" = 1 ]; then - git for-each-ref --format='%(refname:strip=2)' refs/heads/ - else - git ls-remote --heads "$REMOTE" | awk '{ sub("^refs/heads/", "", $2); print $2 }' - fi -} - -rc=0 -case "$MODE" in -push) - [ -n "$ARG" ] || { log "push needs a branch"; exit 2; } - fetch_heads "$DEFAULT_BRANCH" - [ "$ARG" != "$DEFAULT_BRANCH" ] && fetch_heads "$ARG" - load_canonical - heal "$ARG" || rc=1 - ;; -sweep) - if [ "$LOCAL" != 1 ]; then - git fetch -q --no-tags --prune --depth=1 --filter=blob:none "$REMOTE" \ - "+refs/heads/*:$NS/*" - fi - load_canonical - while IFS= read -r b; do - [ -z "$b" ] && continue - heal "$b" || rc=1 - done < <(list_branches) - ;; -pr) - [ -n "$ARG" ] || { log "pr needs a ref"; exit 2; } - fetch_heads "$DEFAULT_BRANCH" - if [ "$LOCAL" != 1 ]; then - git fetch -q --no-tags --depth=1 --filter=blob:none "$REMOTE" "+$ARG:refs/aurora/pr-head" - head=refs/aurora/pr-head - else - head=$ARG - fi - load_canonical - out=$(scan_commit "$head" | awk -F'\t' '$1 != "missing"') - if [ -n "$out" ]; then - log "Assistant instruction files that are not Aurora policy copies:" - log "$out" - log "Remove them. Aurora's policy lives in $CANON_PATH on $DEFAULT_BRANCH." - exit 1 - fi - log "PR head is clean" - ;; -*) - log "usage: $0 push | sweep | pr " - exit 2 - ;; -esac -exit $rc diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 47dc3e3d863c..be77ac83a189 120000 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1 +1 @@ -AGENTS.md \ No newline at end of file +../AGENTS.md \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index a0fa482c449d..67d79867debf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,13 +1,26 @@ -# SiliconForest Mesa maintenance +# Omacom Mesa assistant policy -This is iconidentify's personally maintained downstream fork. The owner has -authorized AI-assisted research, review, source integration and development here. -The upstream community's contribution policy still applies to submissions there; -do not open upstream issues, comments or merge requests without explicit owner -instructions. +This is the policy for AI coding assistants working in omacom/mesa. This file +is the only assistant instruction file the tree carries: `CLAUDE.md`, +`GEMINI.md` and `.github/copilot-instructions.md` are symlinks to it. +Upstream projects' instruction files are not carried here. To change the +policy, edit this file in a reviewed pull request. -Preserve contributor identities, original commits, licenses and source provenance. -Label newly generated commits with `Generated-by: LLM`. Record which exact source -was built and tested. Host or drm-shim checks do not prove hardware correctness. -Do not enable an unqualified GPU, weaken firmware/ABI admission, install into a -host system, or reboot a test machine as a side effect of a source build. +## Rules + +- Only public code goes in. Never copy code from proprietary sources. +- Preserve contributor identities, original commits, licenses and source + provenance. Land imports with merge commits, not squashes or rebases. +- `integration/aurora` is the Apple Silicon integration branch. `main` and + `26.2` mirror stock Mesa; never force-push or rewrite them. +- Changes land through a reviewed pull request with a green `ci / result`. + CPU and drm-shim checks do not prove hardware correctness. +- Hardware qualification happens on the edge package channel, on the affected + machines, before a change is promoted beyond edge. Record the exact source + commit that was built and tested. +- Keep identity, firmware and kernel-ABI admission checks fail-closed. Admit a + GPU only for an exact, supported identity and kernel contract, and never + weaken admission to make another one start. Hardware qualification of an + admitted GPU can still be pending on edge. +- A source build must not install Mesa, change a boot stack or reboot a + machine as a side effect. diff --git a/MAINTAINING.md b/MAINTAINING.md index 0e3223ca3912..0f0801cbe264 100644 --- a/MAINTAINING.md +++ b/MAINTAINING.md @@ -1,49 +1,36 @@ -# Maintaining SiliconForest Mesa - -The default integration is `siliconforest/next`. Keep original contributor -commits and licensing intact; use merges or `git cherry-pick -x` with a written -record of any conflict resolution. Label newly generated commits as described -in `AGENTS.md`. - -## Reviewing a source update - -1. Check the source repository's visibility before including its refs or code in - a publication. For GitHub, use `gh api repos/OWNER/REPO --jq .visibility`. - Private-source work stays in local research refs and notes. This public - integration contains public-source code only. -2. Pin the exact source SHA, compare divergence against the current integration, - and review dependencies and duplicate implementations. A newer topic name is - not proof that it includes another branch's fixes. +# Maintaining Omacom Mesa + +`integration/aurora` is the integration branch. Changes land through a pull +request with a green `ci / result` and an approval of the latest push, as a +merge commit. Until an admin adds the branch ruleset, maintainers enforce this +by hand. Keep original contributor commits and licensing +intact; when a change needs adapting, use `git cherry-pick -x` and record how +the conflict was resolved. + +## Taking a source update + +1. Check that the source repository is public before pulling its refs or code + in. This tree contains public code only. +2. Pin the exact source SHA. Compare it against `integration/aurora` and review + dependencies and duplicate implementations. A newer topic branch is not proof + that it includes another branch's fixes. 3. Keep identity, topology, USC, HAL and kernel-ABI admission checks intact. Hardware recognition and shader encoding alone do not establish support. -4. Update `SILICONFOREST-SOURCES.json` and the review ledger. Source tags preserve - evidence; their existence does not mean every experiment is approved for the - default build. - -## Checking the integration - -Run the quick checks, build the affected drivers and all registered Asahi test -dependencies, and run the host suite. For changes around device setup, mappings -or synchronization, also run the Vulkan drm-shim regression probe with Khronos -validation enabled. Commands and the exact baseline results are in -`SILICONFOREST-VALIDATION.md`. +4. Update `SILICONFOREST-SOURCES.json` and the review ledger when the source + inventory changes. -`check.py --check-git` works with local maintainer branches or the corresponding -`origin/*` refs in a fresh full clone. It verifies exact source tags and the -limited changes to compatibility profiles. The quick GitHub workflow runs -without requiring all historical source tags or a complete Mesa build. +## Checking -## Publishing source +CI builds both architectures and runs the host suite and drm-shim probes on +every non-documentation pull request. For changes around device setup, +mappings or synchronization, also read the drm-shim probe output, not just the +gate result. Changes to `.github/workflows/` or `.github/mesa-ci/` can change +what the gate checks, so review them as carefully as driver code. -Push explicit branch/tag refs from the reviewed source manifest. Do not use an -unrestricted `--mirror`, `--all` or `--tags` push from a research checkout that -also holds private or unreviewed refs. For a new repository, keep it private until -its remote ref set and source access checks match the intended public inventory. -Cancelling a local wrapper process is not proof that its upload children stopped. +## Shipping -Keep experimental firmware/driver profiles separate. Before publishing installable -packages, qualify the exact board, firmware, m1n1 handoffs and kernel ABI on -hardware, run the relevant CTS and compositor/application checks, and record the -results against a pinned source. Host CPU tests and drm-shim checks do not replace -that hardware qualification. Source maintenance must not install Mesa or alter a -working boot stack as a side effect. +Packages live in omacom/omarchy-pkgs (`pkgbuilds/mesa-aurora`). To ship a +change, pin the exact merged `integration/aurora` commit there, build the split +packages and release on edge. Qualification on the affected machines happens on +edge, before promotion beyond it. CPU tests and drm-shim checks do not replace +that. diff --git a/README.md b/README.md index 89907cba2c7a..f700bc0aec74 100644 --- a/README.md +++ b/README.md @@ -1,106 +1,91 @@ -# SiliconForest Mesa - -Personally maintained Mesa integration for Apple Silicon, by -[iconidentify](https://github.com/iconidentify). Default branch: -**`siliconforest/next`**, Mesa **26.3.0-devel**. - -This combines DJ's Neo/G17P work, Eryk Wieliczko's current M3 Pro native -OpenGL/Vulkan work, Naeem's M3 Max additions, and selected correctness fixes. -Original commits, author identities, copyrights and licenses are retained. -The upstream Mesa README is [README.rst](README.rst). - -## Source profiles - -| Hardware / contract | Branch | Status in this integration | -| --- | --- | --- | -| M1/M2 and AGX2 | `siliconforest/next` | Existing Asahi/Honeykrisp paths retained; no physical-device qualification here | -| M3 Pro, T6030 / G15S, legacy firmware interface with native AGX3 shaders | `siliconforest/next` | Pinned Aurora WIP native GL/Vulkan stack; this update needs hardware requalification | -| M3 Max, T6031 / G15C, single die / four clusters | `siliconforest/next` | Naeem's identity, native admission and USC helper-table fixes merged with Eryk's follow-ups | -| Neo / A18 Pro, T8140 / G17P, USC3 / HAL200 | `siliconforest/next` | DJ's current AGX3b stack retained, including its feature restrictions | -| M3 Air, T8122 / G15G, legacy 14.x firmware | `siliconforest/next` | Scott Jones PR71 integrated; enabled without a Mesa environment opt-in for its exact supported contract; revised address layout is not hardware-qualified | -| M3 Air, T8122, HAL200 / macOS 26.6.2 boot stack | `compat/m3-air-hal200` | Older OpenGL-only compatibility source; not part of the native main build | -| Older M3 boot/firmware stacks | `compat/m3-legacy`, `compat/m3-pro-legacy` | Previous personal source profiles preserved with exact parent pins | -| M4 | `experimental/m4` | Eryk's separate development/evidence branch; unqualified here | -| M5 recognition research | `experimental/m5-recognition` | Public DJ recognition/encoder source; hardware admission stays fail-closed. Native private HAL300 work stays local. | -| Earlier M3 Max experiments | `experimental/m3-max-legacy` | Historical source profile; use the combined native branch for new development | - -A chip name or shader encoder alone does not establish support. Main deliberately -refuses M3 Ultra, M4 and M5 admission. Native M3 Air is experimental and -requires its exact identity, supported firmware and a compatible kernel. No Mesa -environment opt-in is required. -Compatibility and experimental profiles are separate source trees, not additional -drivers silently enabled in one binary. They have **not** undergone the main -branch's build/test run. - -## Kernel and firmware pairing - -Native M3 Pro/Max, experimental M3 Air and Neo use the unified Aurora ABI -represented by `include/drm-uapi/asahi_drm.h`. The checked kernel source is -[omacom/linux-aurora at 7b969982](https://github.com/omacom/linux-aurora/tree/7b969982306e1498a8cbe6e5da9bde743acd8fc5), -`include/uapi/drm/asahi_drm.h`. The update uses the high feature-bit assignments -and timestamp-copy command fields from that contract. It rejects the older -low-bit native contract before VM creation; this is a check for the known -collision, not universal ABI negotiation. The older SiliconForest experimental -header checked on October 18 is no longer the matching contract. - -Do not substitute headers, force a chip identity or use an old kernel simply -because its version string resembles the checked one. Kernel configuration, -firmware and m1n1 handoffs still need qualification on the actual board. -M3 Air needs no `ASAHI_M3_EXPERIMENTAL` variable; its kernel startup -configuration and package defaults are separate. This source update does not change any installed boot stack. +# Omacom Mesa + +Mesa for Omarchy on Apple Silicon: Asahi and Zink OpenGL, and Honeykrisp +Vulkan. Mesa **26.3.0-devel**. The upstream Mesa README is +[README.rst](README.rst). + +| Branch | Contents | +| --- | --- | +| `integration/aurora` | Aurora native GPU work plus Omacom integration fixes. Packages are meant to build from here. | +| `main`, `26.2` | Stock Mesa mirrors. Never force-pushed. | + +The Aurora import brings in DJ's Neo/G17P work, Eryk Wieliczko's native M3 Pro +OpenGL/Vulkan work, Naeem's M3 Max additions and Scott Jones's M3 Air support, +with original commits, authors, copyrights and licenses kept. + +## Hardware + +| Hardware / contract | Status | +| --- | --- | +| M1/M2, AGX2 | Existing Asahi/Honeykrisp paths | +| M3 Pro, T6030 / G15S, legacy firmware with native AGX3 shaders | Native GL/Vulkan; boot and pixel checks passed on J516S | +| M3 Max, T6031 / G15C, single die / four clusters | Native admission; not yet tested on hardware here | +| M3 Air, T8122 / G15G, legacy 14.x firmware | Enabled by default for its exact identity and kernel contract; J613 desktop, texture, MSAA and compute checks [passed](https://github.com/omacom/omarchy-pkgs/pull/1591#issuecomment-6393944044) on `97a65d8`, whose driver code matches this branch; J615 not yet tested | +| Neo / A18 Pro, T8140 / G17P, HAL200 | DJ's AGX3b stack with its feature restrictions | +| M3 Ultra, M4, M5 | Refused | + +A chip name or shader encoder alone does not establish support. Admission +checks the exact chip identity, topology, shader generation and kernel feature +contract, and fails closed on anything else. + +## Kernel pairing + +The native M3, M3 Air and Neo paths use the Aurora UAPI in +`include/drm-uapi/asahi_drm.h`, checked against +[omacom/linux-aurora at 7b969982](https://github.com/omacom/linux-aurora/tree/7b969982306e1498a8cbe6e5da9bde743acd8fc5). +That kernel's G15 backend still uses its older packet layout, so +`src/asahi/lib/agx_g15_wire.c` converts the exact G15S/G15C contract at the DRM +boundary and refuses unknown ones before VM creation. See +[SILICONFOREST-G15-WIRE.md](SILICONFOREST-G15-WIRE.md). + +Do not substitute headers, force a chip identity or pair the driver with a +kernel whose version merely looks similar. ## Build and check -A source build does not install files, replace system Mesa, enable a kernel -option, or reboot anything. The integration was configured on x86_64 with -LLVM/Clang 22.1.8, a matching SPIR-V LLVM translator, Meson 1.10.2, Mako, PLY, -PyYAML, libdrm, SPIR-V Tools, and the development dependencies for X11/Wayland, -EGL, GBM and Vulkan. See [validation](SILICONFOREST-VALIDATION.md) for the exact -configuration and outcomes. +Pull requests run `ci / result`: CPU fixtures and kernel UAPI checks always, +plus x86_64 and aarch64 builds, every configured Meson test and drm-shim Vulkan +probes unless the PR only touches a short list of documentation files. See +[.github/mesa-ci/README.md](.github/mesa-ci/README.md). A push to +`integration/aurora` also produces an attested ARM staging archive. It is a +`debugoptimized` build with assertions enabled, not a package. -Quick checks require a C compiler and Python 3. They compile and run production -chip admission, compression, plane-layout and scratch-layout tests: +Local quick checks need a C compiler and Python 3: ```sh python3 tools/siliconforest/check.py -# In a full clone with all source tags: -python3 tools/siliconforest/check.py --check-git ``` -With the build dependencies available: +A full build needs the Mesa toolchain and development libraries; on Ubuntu +26.04, [.github/mesa-ci/deps.sh](.github/mesa-ci/deps.sh) installs them. Then: ```sh python3 -m venv ../mesa-venv ../mesa-venv/bin/pip install 'meson==1.10.2' 'Mako==1.3.10' 'ply==3.11' PyYAML pytest MESON="$PWD/../mesa-venv/bin/meson" JOBS=8 tools/siliconforest/build.sh ../mesa-build -``` - -The October 18 baseline passed **36 Asahi host suites** and Vulkan regression -probes for four drm-shim identities, with Khronos validation enabled. Results -for the October 24 integration are recorded separately in the validation files. To rerun -those probes after the build: - -```sh -python3 tools/siliconforest/check-kernel-abi.py PATH_TO_SILICONFOREST_LINUX VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \ python3 tools/siliconforest/drm-smoke.py ../mesa-build ``` -The script builds Asahi and Zink OpenGL, Honeykrisp Vulkan, tree-matched shader -compiler tools and drm-shim, then runs the Asahi host suite. Do not reuse shader -compiler binaries from an older Mesa tree. There are no binary releases or -system-install commands for this integration yet. +A source build installs nothing and changes no boot stack. + +## Packaging + +`mesa-aurora` and `vulkan-aurora` in +[omacom/omarchy-pkgs](https://github.com/omacom/omarchy-pkgs/tree/master/pkgbuilds/mesa-aurora) +pin an exact source commit. They still pin Aurora until +[omarchy-pkgs#1591](https://github.com/omacom/omarchy-pkgs/pull/1591) moves them +to `integration/aurora`. Hardware qualification happens on the edge channel. -## What was reviewed and retained +## Provenance -[The review ledger](SILICONFOREST-REVIEW.md) explains merged changes, duplicate -fixes, ABI findings, held regressions and experimental branches. -[SILICONFOREST-SOURCES.json](SILICONFOREST-SOURCES.json) retains the 209 original public branch, -PR and MR snapshots under `sources/2026-10-18/*`, adds two pinned October 24 -inputs, and retains the dated inventory of 37 GitHub PR records and -25 open upstream Asahi MR records. A snapshot is evidence, not approval to ship -its contents. This is a dated public-source investigation; it cannot establish -that no private, deleted, unindexed or newer work exists. +The import was prepared in Chris Kearney's +[SiliconForest Mesa](https://github.com/chriskearney/siliconforest-mesa) fork, +which also keeps the compatibility and experimental source profiles +(`compat/*`, `experimental/*`). The review ledger, source inventory and test +receipts are kept as they were: -GitHub Actions runs the quick CPU checks on main and pull requests. Full host -compilation and hardware qualification are distinct checks. +- [SILICONFOREST-REVIEW.md](SILICONFOREST-REVIEW.md): merged changes, duplicates, ABI findings and held work +- [SILICONFOREST-SOURCES.json](SILICONFOREST-SOURCES.json): pinned public source snapshots +- [SILICONFOREST-VALIDATION.md](SILICONFOREST-VALIDATION.md) and + [SILICONFOREST-HARDWARE-20261024.json](SILICONFOREST-HARDWARE-20261024.json): build, host and hardware results diff --git a/src/intel/tools/intel_noop_drm_shim.c b/src/intel/tools/intel_noop_drm_shim.c index de34ed8d25d1..d23188437103 100644 --- a/src/intel/tools/intel_noop_drm_shim.c +++ b/src/intel/tools/intel_noop_drm_shim.c @@ -140,7 +140,7 @@ i915_ioctl_gem_mmap(int fd, unsigned long request, void *arg) return -1; if (!bo->map) - bo->map = drm_shim_mmap(shim_fd, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, -1, + bo->map = drm_shim_mmap(shim_fd, NULL, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, -1, drm_shim_bo_get_mmap_offset(shim_fd, bo)); mmap_arg->addr_ptr = (uint64_t) (bo->map + mmap_arg->offset); @@ -161,7 +161,7 @@ i915_ioctl_gem_mmap_offset(int fd, unsigned long request, void *arg) return -1; if (!bo->map) - bo->map = drm_shim_mmap(shim_fd, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, -1, + bo->map = drm_shim_mmap(shim_fd, NULL, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, -1, drm_shim_bo_get_mmap_offset(shim_fd, bo)); mmap_arg->offset = drm_shim_bo_get_mmap_offset(shim_fd, bo);