Skip to content

test(agc): skip the arena host hole checks when no host region lies in the arena - #4660

Closed
kr4y4 wants to merge 1 commit into
boykopovar:mainfrom
kr4y4:test/agc-arena-host-exclusion-optional
Closed

kr4y4 wants to merge 1 commit into
boykopovar:mainfrom
kr4y4:test/agc-arena-host-exclusion-optional

Conversation

@kr4y4

@kr4y4 kr4y4 commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

What

agc_driver_graphics sometimes fails on Windows with write-watched arena contained no host exclusion to test, from hostWriteWatchExclusionTests in BdaResources.cpp (#3594). The check needs a host region inside the guest arena, and whether there is one depends on the process's address layout.

  • On Windows the arena is reserved before main runs. Its host regions are whatever the process had already mapped in [0x2_0000_0000, 0xFC_0000_0000). In my runs they were 2 MiB private reservations with a few committed pages, at addresses that changed with every start.
  • I printed the count from Arena() (a local change, not part of this PR) over 200 starts of agc_driver_graphics_tests.exe on main 2a5eca1. 5 starts had no host region; the others had 14 to 16. Those 5 starts fail the check.
  • fix(agc): decode primitive type 3 as a line strip #4584's description reports the same failure in 2 of 10 runs.

The check now prints that the arena host holes were not tested when there is no host region, as the file already does when write watch or the arena is unavailable. When there is one, which is most starts, it runs as before. The host heap checks after it always run.

Tested

Windows 11 (26200), WinLibs GCC 15.2.0 r7, Release, CI configure flags, main 2a5eca1, an RTX 4070 Laptop GPU and an Intel Raptor Lake-S iGPU.

  • Before: this check failed agc_driver_graphics twice on the RTX 4070 in my runs of two unrelated pull requests, which don't touch the arena. On plain main it passed 25 of 25 runs on each GPU, which fits a rate of about 2.5 %.
  • After: agc_driver_graphics passes on both GPUs with --repeat until-fail:3.
  • I also forced the "no host region" case locally, by making the loop never match a host region. The test then prints the new line and the rest of agc_driver_graphics passes on both GPUs.
  • tools/check_conventions.py --base origin/main passes, and tools/pr_overlap.py finds no overlap with open pull requests.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source (none added)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: none
  • AI-assisted: yes

🤖 Generated with Claude Code

…n the arena

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xXPBSXx

xXPBSXx commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Windows test of #4660 (MinGW GCC, Release, Windows 10, RTX 4080 SUPER, agc_driver_graphics through ctest, main 0428328b7 + this PR):

  • With the change: 30 runs, 30 passed. The new line arena host holes not tested did not appear in any of them, so the "no host region" case was not hit and the new branch itself was not exercised in my runs.
  • Plain main, same machine: earlier today 2 failures in 10 runs (3e0e01f35), and 0 failures in 23 later runs (44ab0c39e); I stopped the later series at 23 because a game was started. Together 2 in 33. Across all the failures I saw today (3 including one on the line-strip branch), I read the final message in one case only: it was write-watched arena contained no host exclusion to test, as this PR describes; for the others I only saw the vkAllocateMemory lines, so I can't say they were the same failure.
  • The [gpu] host import ... failed at vkAllocateMemory (-2); falling back to copies lines also appear in the passing runs (30 of 30 here, 23 of 23 on main), so they are not related to this failure.

Not tested: the skip path was not forced here.

AI-assisted (Claude Code).

@github-actions

github-actions Bot commented Oct 12, 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
#4746 core/libs/prx/libSceAgcDriver/tests/BdaResources.cpp L807-829

@kr4y4 kr4y4 mentioned this pull request Oct 12, 2026
7 tasks done
@kr4y4

kr4y4 commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of #4746, which reserves the host hole so the check runs on every start instead of being skipped. The Windows results are in #4746 (comment).

Written with AI assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc*

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants