Skip to content

test(agc): wait for neighbour image result - #6396

Closed
MarcZX10 wants to merge 1 commit into
boykopovar:mainfrom
MarcZX10:codex/store-over-untracked-neighbour-wait-6383
Closed

MarcZX10 wants to merge 1 commit into
boykopovar:mainfrom
MarcZX10:codex/store-over-untracked-neighbour-wait-6383

Conversation

@MarcZX10

Copy link
Copy Markdown
Contributor

What

The NeighbourCopied fixture previously returned Missed as soon as FindLive found an image while AnyPending() was false. That can observe the image before this store's pending result is registered. It now waits for the live image returned for this address to be the pending image, or for the stored value to reach guest memory before reporting Missed.

Addresses the intermittent fixture failure in #6383. This is separate from #6359's RunSecondStore wait: the changes are in different branches of the same test file and do not depend on each other.

Tested

Linux x86-64, GCC 12.2:

  • agc_driver_store_over_untracked_tests compiled and linked. The build needed a temporary, local dependent-template qualifier in unrelated SrtDescriptorEvaluation.cpp for GCC 12; that workaround was removed before commit. The unrelated source issue is already covered by fix(shader): qualify SRT memory flags template #6306.
  • ctest --test-dir build -R '^agc_driver_store_over_untracked$' --output-on-failure could not reach the test logic: the host CPU (Intel Xeon E5-1620 v2) lacks LZCNT, BMI1, BMI2, MOVBE, AVX2 and FMA, which the runtime requires.
  • python3 tools/check_conventions.py --base upstream/main and git diff --check pass.
  • No GPU runtime result is claimed.

Checklist

  • Based on current main; no other open PR implements the same behavior
  • One topic per PR; follow-ups go in a new pull request
  • No comments in code except technical debt
  • Unimplemented paths throw
  • No notes, investigation .md files or images added to the repository
  • New third-party code is a submodule built from source
  • Generic behavior, not specific to one title
  • Depends on: none
  • Unblocks: none
  • GPUs tested: none; local runtime is blocked by the host CPU feature check
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 15, 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
PR 6385 core/libs/prx/libSceAgcDriver/tests/execution/StoreOverUntracked.cpp L361-365, L367

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 5761 core/libs/prx/libSceAgcDriver/tests/execution/StoreOverUntracked.cpp
PR 6188 core/libs/prx/libSceAgcDriver/tests/execution/StoreOverUntracked.cpp

@MarcZX10

Copy link
Copy Markdown
Contributor Author

The new 100-run RTX 4080 comparison in #6383 shows this predicate is insufficient: #6396 still misses 4/100, while #6385 passes 100/100. The fixture condition should wait for a live image with pending work or for the stored bytes to reach guest memory; #6385 implements that and has direct hardware validation. I am closing #6396 in favor of #6385 to avoid keeping a weaker duplicate open. Thanks to @Neithennn and @kid9 for the reproducible comparison and diagnosis.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

Closing in favor of #6385, whose predicate passes the reported RTX 4080 scenario in 100/100 runs.

@MarcZX10 MarcZX10 closed this Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant