Repository navigation
fix(agc): read shader user data without tail padding - #2063
oneandonlydean merged 2 commits into
Conversation
|
Checked with the title from #2026. On the same build ( Two small points:
|
|
Addressed: both files now include |
a960ade to
c22c8e9
Compare
|
Rebased the fix and its regression test onto current upstream |
c22c8e9 to
9783357
Compare
|
Rebased the reviewed diff onto current upstream |
|
Latest fork Build completed with the same baseline failure on Linux and Windows: |
9783357 to
4b3629b
Compare
a00d995 to
1b5a314
Compare
|
Rebased PR #2063 linearly onto current |
|
Windows run: Windows 11 Pro 25H2 (10.0.26200.9457), RTX 5060 Ti (NVIDIA 617.42), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release,
AI-assisted: yes |
|
Thanks for the Windows report: it covers the exact PR head |
1b5a314 to
36762dc
Compare
|
Rebased the existing PR linearly onto current |
36762dc to
37e7963
Compare
Updated head and validationI rebased the existing branch linearly onto upstream The overlap audit still concerns only the shared test source with #2261; that PR tests NGG routing, while this one tests the serialized user-data boundary. There is no shared production change or dependency. Could a collaborator with write access run Actions → Build for PR #2063 on this head? The required upstream Linux/Windows and relinker matrix has not run for it. |
37e7963 to
6229842
Compare
Rebase and current-head validationRebased the existing branch onto upstream On Linux x86-64 with GCC 12.2 in Release mode, The official upstream Build and relinker matrix has not run on this head; under #2113 it needs a collaborator with write access to dispatch it. |
…data-tail-padding fix(agc): read shader user data without tail padding
What
Read only the serialized
ShaderUserDatafields throughsharp_resource_count; the in-memory C++ struct has trailing padding that is not present in the guest shader header. Pin the serialized size to 54 bytes and cover a header that ends at that boundary.Overlap audit
The overlap report with #2261 is limited to
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp. This PR tests the serializedShaderUserDataboundary; #2261 tests registered NGG workgroup routing. They do not share production files or behavior, and this PR does not depend on #2261.Tested
Current PR head
62298425is rebased linearly onto upstreammainatcb9734cd8a9921067c84229a529518589010175a. The complete source diff remains limited to two files.libSceAgcDriverandagc_driver_graphics_tests;agc_driver_graphicspassed (1/1, 8.70 s) on this head. The regression pins the serialized boundary withstatic_assert(userDataBytes == 54).python3 tools/check_conventions.py --base upstream/mainandgit diff --check upstream/main...HEADpass.1b5a314bcherry-picked ontomaind70b8998(report).mainf1451396plus dependencies from AGC driver: PPSA99005 (ps5-opengl, Mesa shaders) aborts in DecodeVertexStageInfo: header pointer outside the registered shader header #2026: with this fix, PPSA99005 got pastDecodeVertexStageInfoand stopped at the next known check (sceAgcCreatePrimState: invalid context register offsets);agc_driver_graphicspassed. This was not tested on currentmain.Checklist
main; no other open PR implements this correction#include <cstddef>is included directly whereoffsetofis used