Repository navigation
feat(agc-driver): report GPU capture as unavailable - #2851
alfalfa-star wants to merge 4 commits into
Conversation
sceAgcDriverRequestCaptureStart, sceAgcDriverRequestCaptureStop and sceAgcDriverTriggerCapture return DEBUG_UNAVAILABLE (0x8A6C1000), as no capture tool is attached. sceAgcDriverGetShaderDebuggingStatus returns the firmware's constant 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Progress report (66d577d → ae327c4)📈 System libraries: 85.56% (+0.12%, +4 implemented functions) ✅ 4 implemented
|
|
The one failing job, |
|
Same as #2849: which title calls these? For |
|
Windows validation of the current head Windows 11 Pro 26220, WinLibs MinGW-w64 GCC 15.2.0 r7, Ninja, Release,
Validation run with Claude Code assistance. |
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for the Windows run and the clear TechnicalDebt entry. Before this can go in:
- No title is named. @oneandonlydean asked which title calls these exports (and, for
sceAgcDriverGetShaderDebuggingStatus, what the 1 means to it) and that is still unanswered. Please add the title ID and the log line where it stops onmain. core/libs/prx/libSceAgcDriver/State/src/Status.cpp:26,30,34,38: the returned values (0x8A6C1000for the capture calls,1for the debugging status) come from one source (OpenAGC) and are unconfirmed on a console, as the PR itself says. Unverified codes should keep throwing until a title or a second source confirms them.Status.cpp:24:sceAgcDriverRequestCaptureStarttakesconst char*here, but SharpProspero declares it without arguments (Interop/Agc/SceAgcDriver.cs:206). Please say which one the signature follows and why.
The red write-watch (macos-15-intel) job is the known write_watch_threads flake, not this change. Happy to look again once a title and a confirmed value are in.
…ments OpenAGC's agcdriver.h and SharpProspero's SceAgcDriver.cs both declare it as taking no arguments; the const char* came from main's earlier stub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main's conventions check now requires a silent stub to be listed in the Silent stubs section; sceAgcDriverGetShaderDebuggingStatus returns a constant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No title I can run reaches the capture exports on current
I'm converting this to a draft until a title stops at it. Then I'll post the title ID and the log line and mark it ready. Changed:
On the values: I found no second source. sharpemu, REmu and shadPS4 only list the names, and prosper has no golden for them. They stay as in the PR until a title reaching them shows how it treats the result. Tested: Linux, GCC, Release, RX 9070 XT (RADV): full AI-assisted: yes (Claude Code) |
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for the signature fix and the TechnicalDebt entry; both look right, and guest_agc_driver_resources fails without the change and passes with it. Two points are still open:
- No title is named. @oneandonlydean's question (which title calls
sceAgcDriverRequestCaptureStart/Stop/TriggerCaptureandsceAgcDriverGetShaderDebuggingStatus, and what the 1 means to it) is unanswered. Please add the title ID and the call site or log line where it stops onmain; Astro's Playroom does not import any of them, so we cannot check it from our side. core/libs/prx/libSceAgcDriver/State/src/Status.cpp:24,28,32,36:0x8A6C1000and the constant1come from a single source (OpenAGC) and are unconfirmed on a console. Wheremainthrew, returning a plausible unverified value is not exact-or-throw. Either a second source or a title's observed behaviour, or keep these throwing.
…l bridge (#373) * Apply upstream open AGC PRs for the remaining stubbed imports Ports upstream boykopovar/AnyPS5 open PRs into core/libs/prx (libs and their tests only; docs excluded): - boykopovar#2847 DCB/ACB marker span builders - boykopovar#2848 occlusion query size queries - boykopovar#2849 submit validation reported as unavailable - boykopovar#2850 disabled shader instrumentation accepted - boykopovar#2851 GPU capture reported as unavailable, shader debugging status - boykopovar#1060 sceAgcAcquireMemSetEngine Conflicts between the PRs (Unimplemented.cpp stubs and shared test files) were resolved by keeping every change from both sides. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Port libSceAgcDriver leaf imports and remaining libSceAgc rows to the Metal bridge Binds the 35 libSceAgcDriver imports and 17 libSceAgc imports through SceAgcImports without dereferencing guest pointers on the host: - Driver leaf exports (resource registration, capture, submit validation, equeue queries) run the upstream bodies through prx bridge descriptors (upstream-prx/AgcDriver.cpp); the 7-argument registrations read user data from the caller stack. - ACB flip and rendering wait emit the Metal driver packets, as the DCB rows do. - Marker spans, occlusion sizes, shader instrumentation, AcquireMemSetEngine and branch _0300 patchers reuse upstream encoders on host copies. - GetRegisterDefaults2(+Internal) publish the upstream tables in a guest window above the gate table; Create/UpdatePrimState run on host copies of the stage type and special registers. New CTest anyps5_cpu_agc_driver_leaf is in NATIVE_REQUIRED_TESTS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Same as #2849: closing until a title reaches these; the title will also settle the return values. You're welcome to reopen this if you think it was closed by mistake or the situation changes. |
What
Implements the four libSceAgcDriver capture exports that still called
NotImplemented_nid_no_patch:sceAgcDriverRequestCaptureStart,sceAgcDriverRequestCaptureStop,sceAgcDriverTriggerCapturetake no arguments and returnDEBUG_UNAVAILABLE(0x8A6C1000), since no capture tool is attached. OpenAGC'sagcdriver.hand SharpProspero'sSceAgcDriver.csboth declareRequestCaptureStartwithout arguments.sceAgcDriverIsCaptureInProgressalready returns false.sceAgcDriverGetShaderDebuggingStatusreturns 1.Sources: OpenAGC returns the same code for the capture calls; whether a console with no capture attached does the same is unconfirmed. The value 1 is the constant OpenAGC reads from firmware 5.50 (
rJUyMrDdxJgat 0x6740); what it means is unknown. Both are recorded in TechnicalDebt.Tested
Linux (Arch, GCC), Release build, on
main57f96fd:guest_agc_driver_resources: checks the three capture calls' error code, that no capture is reported in progress afterwards, and the debugging status value. It aborts without this change (exit 134).ctestonmain90c152e merged with this branch, feat(agc): implement the occlusion query size queries #2848 and feat(npwebapi2): implement sceNpWebApi2SetRequestTimeout #2853: 813/813 passed (4 skipped for lack of a display).tools/check_conventions.py --base upstream/mainpassed.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)DEBUG_UNAVAILABLEconstant toStatus.cppand touches the same test as feat(agc-driver): report submit validation as unavailable #2849, so whichever merges second needs a rebase🤖 Generated with Claude Code