Skip to content

docs(agc): correct multisampled DCC acceptance in the CB passes debt entry - #9361

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
thuanquang:docs/debt-sweep-agc-cb-passes
Oct 25, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
thuanquang:docs/debt-sweep-agc-cb-passes

Conversation

@thuanquang

@thuanquang thuanquang commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

What

One statement in docs/dev/debt/libSceAgcDriver.md no longer matches main; it is replaced with what main does now, and nothing else in the entry changes.

  • Multisampled targets in CB passes: "the target's DCC and FMASK contents are not interpreted. DCC over a multisampled target is accepted only in that pass and throws everywhere else." PR feat(agc): import uniform multisampled DCC fast clears #5939 (a0c51d5, merged 2026-10-17) removed the blanket DCC over a multisampled color target is unsupported check. Draws (core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp:1465) and CB resolve sources (State.cpp:2049) now decode multisampled DCC on a pipe-aligned, single-layer SW_64KB_R_X target with no color transform or lossy mode (State.cpp:1942-1944). core/libs/prx/libSceAgcDriver/tests/Graphics.cpp:4216-4217 requires such a draw state to decode and to pass DrawRejection. Draws, CB resolves and the FMASK decompress all go through acquire (Draw.cpp:2321, 3152, 3156; MultisampleTarget.cpp:772, called at 1128, 1205 and 1238). Its import reads the DCC keys in every case, including that pass (initialDccClear, MultisampleTarget.cpp:565-605, called at 132 and 336). It accepts only uniform 0x00/0x40/0x80/0xc0 keys or, since PR feat(agc): take RADV's comp-to-single clear of a multisampled DCC target #7600, 0x10 comp-to-single keys, and throws on any other key (MultisampledDccClear, MultisampleTarget.cpp:1034-1049). Now: "the target's FMASK contents are not interpreted. In that pass as elsewhere, multisampled DCC is accepted only as a native multisampled DCC fast clear or comp-to-single clear."

Tested

Docs only; nothing was built or run. On origin/main 990f45e I read DecodeColorBuffer and DecodeColorMetadataPass in State.cpp, RunColorMetadataPass and the draw target binding in Draw.cpp, and acquire, the constructor, ApplyFastClear, initialDccClear, checkDccCurrent, MultisampledDccBytes, MultisampledDccClear, createFilled, MaterializeMultisampleTargetClear and ResolveMultisampleTarget in MultisampleTarget.cpp, plus the tests at Graphics.cpp:3979 and 4216-4217, and confirmed that a0c51d5 removed the blanket check and that #7600 (2cca5c0) is on main. Rebased on main 990f45e17d: #7803 added the 'Sample 0 of a multisampled color target' entry right above this one, which stays as main has it; only line numbers moved in the cited code. Each statement was found by a read-only sweep of the debt files and confirmed by two independent verifier passes and a final check on current main. No open pull request edits these sentences (checked again on 990f45e17d against the diffs of all 97 open PRs that edit this file).

  • Rebased onto main b930da950d (head befe345441) for an adjacent-entry conflict; the edited entry is unchanged on main. Rechecked on b930da950d (no later change to these files); the line numbers in What are from 990f45e17d. Current ones: the draw DecodeColorBuffer at State.cpp:1489, the CB resolve source at :2142, the multisampled DCC checks at :2035-:2037, the FMASK decompress at :2157 into Draw.cpp:3363, and acquire at MultisampleTarget.cpp:772, whose MultisampledDccClear (:1031-:1057) accepts only uniform fast-clear keys or comp-to-single keys with a recorded colour and throws on everything else.
  • python tools/check_conventions.py --base origin/main with this title and body passes.
  • Not tested: behaviour on any machine; this changes text only.

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 under Silent stubs in their library's technical debt file
  • 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
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes (Claude Code)

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

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 2434 docs/dev/debt/libSceAgcDriver.md
PR 4448 docs/dev/debt/libSceAgcDriver.md
PR 4449 docs/dev/debt/libSceAgcDriver.md
PR 5058 docs/dev/debt/libSceAgcDriver.md
PR 5372 docs/dev/debt/libSceAgcDriver.md
PR 5925 docs/dev/debt/libSceAgcDriver.md
PR 6194 docs/dev/debt/libSceAgcDriver.md
PR 6223 docs/dev/debt/libSceAgcDriver.md
PR 6273 docs/dev/debt/libSceAgcDriver.md
PR 6280 docs/dev/debt/libSceAgcDriver.md
PR 6300 docs/dev/debt/libSceAgcDriver.md
PR 6412 docs/dev/debt/libSceAgcDriver.md
PR 6481 docs/dev/debt/libSceAgcDriver.md
PR 6548 docs/dev/debt/libSceAgcDriver.md
PR 6549 docs/dev/debt/libSceAgcDriver.md
PR 6804 docs/dev/debt/libSceAgcDriver.md
PR 6808 docs/dev/debt/libSceAgcDriver.md
PR 6867 docs/dev/debt/libSceAgcDriver.md
PR 6977 docs/dev/debt/libSceAgcDriver.md
PR 7256 docs/dev/debt/libSceAgcDriver.md
PR 7449 docs/dev/debt/libSceAgcDriver.md
PR 7505 docs/dev/debt/libSceAgcDriver.md
PR 7604 docs/dev/debt/libSceAgcDriver.md
PR 7642 docs/dev/debt/libSceAgcDriver.md
PR 7844 docs/dev/debt/libSceAgcDriver.md
PR 7910 docs/dev/debt/libSceAgcDriver.md
PR 7978 docs/dev/debt/libSceAgcDriver.md
PR 8014 docs/dev/debt/libSceAgcDriver.md
PR 8223 docs/dev/debt/libSceAgcDriver.md
PR 8319 docs/dev/debt/libSceAgcDriver.md
PR 8520 docs/dev/debt/libSceAgcDriver.md
PR 8592 docs/dev/debt/libSceAgcDriver.md
PR 8874 docs/dev/debt/libSceAgcDriver.md
PR 9020 docs/dev/debt/libSceAgcDriver.md
PR 9335 docs/dev/debt/libSceAgcDriver.md
PR 9356 docs/dev/debt/libSceAgcDriver.md
PR 9387 docs/dev/debt/libSceAgcDriver.md
PR 9393 docs/dev/debt/libSceAgcDriver.md
PR 9431 docs/dev/debt/libSceAgcDriver.md
PR 9432 docs/dev/debt/libSceAgcDriver.md
PR 9592 docs/dev/debt/libSceAgcDriver.md
PR 9672 docs/dev/debt/libSceAgcDriver.md
PR 9673 docs/dev/debt/libSceAgcDriver.md
PR 9674 docs/dev/debt/libSceAgcDriver.md
PR 9675 docs/dev/debt/libSceAgcDriver.md
PR 9676 docs/dev/debt/libSceAgcDriver.md
PR 9700 docs/dev/debt/libSceAgcDriver.md
PR 9748 docs/dev/debt/libSceAgcDriver.md
PR 9842 docs/dev/debt/libSceAgcDriver.md
PR 9891 docs/dev/debt/libSceAgcDriver.md
PR 9892 docs/dev/debt/libSceAgcDriver.md
PR 9893 docs/dev/debt/libSceAgcDriver.md
PR 9895 docs/dev/debt/libSceAgcDriver.md
PR 9898 docs/dev/debt/libSceAgcDriver.md
PR 9904 docs/dev/debt/libSceAgcDriver.md
PR 9905 docs/dev/debt/libSceAgcDriver.md
PR 9906 docs/dev/debt/libSceAgcDriver.md
PR 9940 docs/dev/debt/libSceAgcDriver.md
PR 10026 docs/dev/debt/libSceAgcDriver.md
PR 10049 docs/dev/debt/libSceAgcDriver.md
PR 10193 docs/dev/debt/libSceAgcDriver.md
PR 10233 docs/dev/debt/libSceAgcDriver.md
PR 10333 docs/dev/debt/libSceAgcDriver.md
PR 10435 docs/dev/debt/libSceAgcDriver.md

@github-actions github-actions Bot added docs needs rebase Conflicts with main, rebase needed labels Oct 22, 2026
@thuanquang
thuanquang force-pushed the docs/debt-sweep-agc-cb-passes branch from f9cf441 to 1f295f8 Compare October 23, 2026 16:42
@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Oct 23, 2026
…entry

Co-Authored-By: Claude <noreply@anthropic.com>
@thuanquang
thuanquang force-pushed the docs/debt-sweep-agc-cb-passes branch from 1f295f8 to befe345 Compare October 24, 2026 12:13
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 24, 2026
@adriadam10 adriadam10 self-assigned this Oct 25, 2026
@adriadam10
adriadam10 merged commit 3eb0770 into boykopovar:main Oct 25, 2026
13 checks passed
@adriadam10

Copy link
Copy Markdown
Collaborator

Checked the new wording against MultisampledDccClear and acquire in MultisampleTarget.cpp and the multisampled DCC removal in #5939/#7600: it matches what main does; docs-only, conventions green; merged.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants