Files
NX2navi/.gitignore
chrg6 2ede7101fa Build game 1.1.1 with the kit's execution profile, and make its instrumented build.
tools/make_game.py, the build players run through the launcher, read no profile: only tools/build_game.py did, which
does not build 1.1.1. A kit with data/pgo-v111.profdata (build/pgo/ in a checkout) now compiles the lifted code at -O2
with it and the runtime too, the prebuilt runtime library included. The profile is left out, and every command and
key is what it was, when the kit has none, when its record names another recomp/ than the kit's, when a compiler of
the build refuses the file in one trial compile before the others start, and with NX2NAVI_PGO=off. The record holds
recomp/ by content, which a kit without git can compare. The object keys hold the profile's content and not the kit's
folder, so a launcher update that moves the kit keeps the objects.

--pgo gen (NX2NAVI_PGO=gen from a launcher) builds the instrumented game into the game folder: it counts into
<out>/pgo, records what it was built from for the merge, and stops at once when the build tools lack the profile
runtime. tools/pgo.py merge takes that record, refuses a game built from another recomp/ and finds llvm-profdata in an
MSYS2 folder too. tools/check_content.py refuses profiles in a commit.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 22:30:46 -05:00

98 lines
2.1 KiB
Plaintext

# Pinned read-only checkouts (tools/fetch_refs.sh; cloned locally, never committed)
/refs/
# Downloaded toolchain binaries and Python environments
/toolchain/
/.venv/
/.venv-py314/
__pycache__/
# Personal paths to game files and keys
/config.local.toml
# Game inputs and everything derived from them. Never commit these.
# tools/check_content.py enforces the same rule in CI and the pre-commit hook.
/game/
/build/
/generated/
# Button art a release carries (tools/make_launcher.py --prompt-art); a checkout may hold it for a test build
/prompt-art/
# The shared pipeline list a release carries (tools/pipeline_list.py merge; tools/prepare_shaders.py reads it here)
/tools/data/pipeline_list.bin
/data/pipeline_list.bin
# Execution profiles of the game's code (tools/pgo.py merge writes them under build/; a release carries one in data/)
*.profdata
*.profraw
/data/pgo-*.json
*.xci
*.xcz
*.nsp
*.nsz
*.nca
*.ncz
*.tik
*.keys
*.nso
*.npdm
*.zs
*.pack
*.sarc
*.bfres
*.bntx
*.bnsh
*.webm
# The runtime's own shaders compiled to SPIR-V (tools/build_shaders.py builds them from runtime/shaders/ and the
# tools/make_*.py assemblers when the game is built; tools/check_content.py refuses them in a commit)
/runtime/*_spv.h
*.spv
# The menu font's bytes as a header for compilers without #embed (tools/build_shaders.py EMBEDDED)
/runtime/ui/roboto_ttf.h
/runtime/smaa_area_tex.h
/runtime/smaa_search_tex.h
# Build outputs
*.exe
*.dll
*.pdb
*.ilk
*.obj
*.o
*.lib
*.a
*.so
*.so.*
*.AppImage
# .NET build output of the shader translator (tools/build_xlate.py)
/tools/xlate/bin/
/tools/xlate/obj/
# Coding-agent setup and working notes (skills, hooks, playbook, backlog, research notes, milestone plans): local to
# the maintainer's machine. tools/worktree.py links .claude and notes into task worktrees.
/.claude/
/.agents/
/CLAUDE.local.md
/skills-lock.json
/notes/
/docs/milestones/
# Editor settings
.vs/
.vscode/
.idea/
# Patch leftovers, logs and OS files
*.orig
*.rej
*.log
Thumbs.db
desktop.ini
.DS_Store
# Agent task worktrees (tools/worktree.py)
/.worktrees/
# The release folder (tools/make_release.py): nx2navi_xlate.exe with its id file, hactool, ninja and the DLLs
/bin/