Skip to content

test(agc): bound the storage cache budget regression workload - #2027

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
kali113:fix/storage-cache-test-runtime
Oct 9, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
kali113:fix/storage-cache-test-runtime

Conversation

@kali113

@kali113 kali113 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

What

agc_driver_storage_cache_budget uploads and flushes 64 MiB images to test a multi-gigabyte cache. Cold Linux lavapipe runs in #1059/#1971 took 40–60 seconds, exceeding the 30-second test limit, and CPU devices skipped the eviction assertions.

Use the existing APS5_TEXTURE_CACHE_MIB override for a 32 MiB test cache and 512×512 R32_UINT images (1 MiB each). Size the retention and eviction sets from the actual accounted allocation. Keep shader marker readback, object-identity, retained-entry, exact two-oldest-entry eviction and cleanup checks; execute eviction on CPU Vulkan too. Set the test's CTest timeout to 30 seconds. Existing graphics unit tests retain coverage of the physical-heap budget formula.

#1059 has merged. This branch has been rebuilt directly on main d70b8998: one commit, two files. The final diff contains only the bounded storage test and its timeout. All #1971, #1265, #1986, #1999 and #1913 prerequisite changes have been removed; none is needed for this patch. This addresses the review request to isolate the diff.

Duplicate review inspected #1059/#1971 and #1971's e3180e13 update: that update fixes sampled-texture identity and does not bound this storage test. The broader #2001 removal proposal is not an implementation dependency.

Tested

Exact source head 68072d60: independent validation passes on native GitHub Linux and Windows runners, Release / GCC, including full default builds, all-library packaging and three repetitions of the relevant runtime tests under a 30-second limit. Linux lavapipe executes the storage test three times with distinct empty Mesa caches: 4.63, 1.43 and 1.37 s; graphics unit tests also pass. Hosted Windows runs the graphics tests and skips the storage Vulkan test because no usable device is available. No Windows GPU execution is claimed.

These are fork validation jobs, not collaborator-dispatched upstream checks. Unrelated tests from the full suite were not run in this validation.

Earlier pre-PR Linux validation on the prerequisite integration branch took 0.44, 0.42 and 0.40 s for separate cold caches. Ignoring the configured cache budget deliberately failed the eviction assertion in 0.42 s, confirming that the test checks eviction. Earlier validation. This historical result is separate from validation of the newly isolated head.

Conventions and git diff --check pass. No production cache policy or shader semantics change. Windows hosted Vulkan skips, if any, are disclosed in the current validation result; no physical-GPU or console testing is claimed.

Checklist

  • Based on main snapshot d70b8998; no other open PR implements this change
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw; no silent stubs added
  • No notes, investigation files or images added to the repository
  • New third-party code is a submodule built from source (none added)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes, OpenAI Codex

Copilot AI balanced review requested due to automatic review settings October 9, 2026 05:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@MarcZX10

MarcZX10 commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

I reviewed the PR metadata and the full diff. The PR currently includes substantial implementation changes from #1971, #1265, and #1986, all still open, alongside the bounded-test work. Could you isolate this test change on top of the prerequisite stack (or rebase it after those prerequisites merge) so this PR’s diff contains only the test topic? I’ll hold off on approval until the diff is isolated and Linux/Windows finish for that head.

@kali113
kali113 force-pushed the fix/storage-cache-test-runtime branch from 881e519 to 68072d6 Compare October 9, 2026 12:20
@kali113
kali113 marked this pull request as ready for review October 9, 2026 12:20
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#2223 core/libs/prx/libSceAgcDriver/tests/execution/StorageCacheBudget.cpp L44-109, L157-158
#2363 core/libs/prx/libSceAgcDriver/CMakeLists.txt L656

@popcoder565

Copy link
Copy Markdown
Contributor

Native Windows run, since no Windows results were posted. Setup: Windows 10 (19045), RTX 3060 Laptop (NVIDIA 616.92), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release. Head 68072d60, merged onto main d70b899 in one build with 33 other AGC/shader PRs that had no Windows run.

No title was run.

🤖 Addressed by Claude Code

@oneandonlydean
oneandonlydean merged commit 31cf52d into boykopovar:main Oct 9, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* build relinker shader core/shader

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants