Skip to content

fix(agc): honor disabled color targets and their reset state - #1346

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
TibixDev:pr/disabled-color-targets
Oct 8, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
TibixDev:pr/disabled-color-targets

Conversation

@TibixDev

@TibixDev TibixDev commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

What

Exclude COLOR_INVALID attachments from the effective color write mask. Preserve depth-only rendering and the export indices of later color targets. Initialize all eight color-format registers to their disabled reset state.

#1139 handles inactive pixel shaders and #1178 adds pixel-input defaults; neither handles these color targets.

Tested

Fedora 44, Release: driver, graphics, and PM4 tests. Covers disabled and partially written targets, depth-only draws, holes between color exports, missing registers, and context reset. Contribution checks pass. Windows was not tested.

Checklist

  • Current main; no duplicate open PR.
  • One topic.
  • No new code comments.
  • Unsupported paths still throw; UI stubs are documented.
  • No notes, logs, or images in the repository.
  • No new third-party code.
  • General behavior.
  • Depends on: none.
  • AI-assisted: yes.

@github-actions github-actions Bot added the agc libSceAgc* label Oct 8, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 8, 2026
Exclude COLOR_INVALID attachments from the effective write mask while preserving later MRT export indices and depth-only rendering. Validated with the graphics tests and Skyrim menu draws.

AI-assisted implementation and testing by OpenAI Codex.
@TibixDev

TibixDev commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on 58a1bd66. Kept both the merged CMASK extent function and disabled-format write-mask handling.

Fedora 44 Release: agc_driver_tests, agc_driver_graphics_tests, agc_driver_pm4_tests build; the targeted tests and contribution checks pass. Windows CI is pending.

@TibixDev
TibixDev force-pushed the pr/disabled-color-targets branch from ff7b81a to 1841f3c Compare October 8, 2026 07:23
@github-actions

github-actions Bot commented Oct 8, 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
#1414 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp L580

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 8, 2026
@adriadam10

Copy link
Copy Markdown
Collaborator

Checked build + full ctest on current main + this PR (442/442, agc_driver_graphics passes), CI green on the head. COLOR_INVALID targets no longer count in the write mask in the decode, precheck and rejection paths, later export indices are preserved (State.cpp:647 and the test at Graphics.cpp:627), and a missing register still throws. Merging.

@adriadam10
adriadam10 merged commit d393c3e into boykopovar:main Oct 8, 2026
4 checks passed
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.

2 participants