Repository navigation
feat(libSceAgc): implement the vieBRwlh1Lw interpolant mapping update - #3829
Merged
Merged
Conversation
Hollow Knight Silksong (PPSA12544) imports libSceAgc NID vieBRwlh1Lw (boykopovar#699). Its name is unknown: it is not in aerolib, and the sceAgcUpdateInterpolantMapping label other projects give it hashes to SbuY2jN+axQ. OpenAGC (src/game_compat.c at 3c7e807, sceAgcUnknownVieBRwlh1Lw) reads it from FW 11.60 as the dbOlWdppb4o transform with the same (regs, gs, ps) arguments, without the identity tail: it writes one register per pixel shader input, none for a pixel shader without inputs, and rejects a null pixel shader. It now shares the dbOlWdppb4o path and throws for the rejected arguments. For is_f16 1 and 3 inputs whose default_value and default_value_hi differ, OpenAGC takes DEFAULT_VAL from default_value_hi, while KytyPS5, sharpemu and dbOlWdppb4o here take it from default_value; these inputs throw. On every other input the dbOlWdppb4o values equal OpenAGC's. agc_interpolant_mapping runs the dbOlWdppb4o vectors and OpenAGC's enhanced-mapping vectors through it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Oct 11, 2026
…ional Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Oct 11, 2026
Collaborator
|
Checked on Linux: libSceAgc build and ctest (20/20, including Added one commit: moved the Functional TechnicalDebt line off the end of the file, where every PR appends and conflicts. Merging once CI is green. |
11 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Carries David's
screamm/AnyPS5:feat/agc-vieBRwlh1Lwcommit from #3364 onto currentmain, preserving its author. The only rebase conflict was in TechnicalDebt, where both new entries are kept; the implementation and test files are identical to blawesom's verified rebase (blawesom:verify/3364).sceAgcUnknown_vieBRwlh1Lw, the interpolant mapping update Hollow Knight: Silksong (PPSA12544) imports (feat(libs): add exports imported by PPSA12544 #699), after OpenAGC'sgame_compat.cand its test vectors. It takes the same(regs, gs, ps)as the implementeddbOlWdppb4o, applies the same register transform without the identity tail, writes one register per pixel shader input and nothing for a shader without inputs, and rejects null registers, a null pixel shader, more than 32 inputs, a missing geometry shader and null semantic tables. AfillIdentityTailflag is added toCreateInterpolantMapping; the two existing exports are unchanged.default_value_hiwhile this repository'sdbOlWdppb4o, KytyPS5 and sharpemu usedefault_value. Recorded in TechnicalDebt.The library progress moves from 2903/3383 (85.81%) to 2904/3383 (85.84%).
Closes #3364.
Tested
Linux (Bazzite 44, GCC 16.2.1, Ninja, Release,
-DBUILD_TESTING=ON), based onmaina11c8f7f:libs, and fullctest: 823 pass, 8 skip, 1 failure (832 registered tests). The failure is the GPUagc_driver_pixel_interlocktest, which passes 5 of 10 runs on its own here and also fails intermittently on this machine on branches that do not touch libSceAgc. Its test binary loads onlylibSceAgcDriver.prx, notlibSceAgc.prx, so this change cannot reach it.agc_interpolant_mappingandguest_shader_linkpass.tools/check_conventions.py --base upstream/mainandgit diff --checkpass.Checklist
main; no other open PR implements the same functions.mdfiles or images added to the repository