AnyPS5/docs/dev
Michon e9249a0a47 feat(agc): host import windows, least-recent eviction under the budget
A registered range larger than 64 MiB is imported one 64 MiB window at a
time for buffer and fill accesses instead of whole, and the live imports
stay under a budget: APS5_HOST_IMPORT_MIB, else the larger of 6 GiB and
half the physical memory, at most the largest host heap less 2 GiB
(imports and type-3 mirrors share it; #167's rule). An import past the budget
retires the least recently used imports not used in the last 256
lookups.

- An access across window edges imports the cells it touches, grown to
  the union of the range's imports it overlaps, so uses across
  neighbouring edges share one import instead of replacing each other.
- An address-based build (AcquireRegistered) imports the range whole; a
  window over its first byte does not serve it.
- Every refusal (alignment, a failed run, a held import, the budget with
  what may be evicted) is decided before anything is retired.
- An import made when a range is mapped never evicts: the map observer
  holds no GPU lock.

The window size and the budget have setters for the tests.
2026-10-14 14:51:48 +13:00
..
debt feat(agc): host import windows, least-recent eviction under the budget 2026-10-14 14:51:48 +13:00
ARCHITECTURE.md feat(agc): host import windows, least-recent eviction under the budget 2026-10-14 14:51:48 +13:00
BUILD.md Merge pull request #4607 from yunusshaikh7/feat/tracy-profiler 2026-10-12 23:09:21 +02:00
CONVENTIONS.md refactor(docs): separated user and dev in docs + compatibility file 2026-09-28 22:58:17 +03:00
HW_ORACLE.md feat(shader): follow FP16_OVFL in every f16 result 2026-10-10 04:32:38 -03:00
PROGRESS.md feat(progress): publish a progress history chart 2026-10-12 21:31:09 +02:00
TechnicalDebt.md docs: keep the technical debt index and end the NGS2 entry with a newline 2026-10-14 08:39:38 +13:00