Repository navigation
fix(http2): allow completion waits without an event queue - #3925
Conversation
|
Conflicts with main in |
adriadam10
left a comment
There was a problem hiding this comment.
This conflicts with main in core/libs/prx/libSceHttp2/Export.cpp and docs/dev/TechnicalDebt.md after #3535 (merged), and "Allow edits from maintainers" is off, so we can't rebase it for you.
- Please rebase onto current
main. InCompleteAsync, #3535 changed the surrounding code: re-check that the null-kqueue early return still happens after the completion is queued and that the id validation from #3535 still runs first. - Merge the
libSceHttp2 asynchronous requestsentry indocs/dev/TechnicalDebt.mdwith main's current text instead of adding a second line for the same entry. - Re-run
guest_http2after the rebase; the new direct-wait case should still fail without theExport.cppchange.
Happy to review again once it is rebased.
c811921 to
35cf2fd
Compare
|
Rebased in 35cf2fd onto dacd785. Request-ID validation from #3535 runs before completion queuing, and the null-kqueue return follows the enqueue. The debt resolver updates the existing entry once in docs/dev/debt/libSceHttp2.md. The full Windows Release build and guest_http2, guest_http and guest_memory_pool_stats pass; final test times are 0.09 s, 0.36 s and 0.09 s. Conventions and diff checks pass. The new direct-wait case fails at sceHttp2SendRequestAsync not implemented with the baseline Export.cpp and passes after restoring the correction. The final rebase changed neither that baseline nor the correction/test sources. Linux was not tested. Maintainer edits remain disabled at the fork owner's request; I will keep the branch updated. The original-title comparison remains the dated October 11 evidence in the description, not a new gameplay result. Prepared with AI assistance. |
|
A title this unblocks: Crimson Desert (PPSA25286). Ubuntu 24.04, GCC 13.3, Release, RTX 4070 Ti,
AI-assisted: yes |
35cf2fd to
28bcd6b
Compare
Met on 28bcd6b: every point of this review is addressed; full build green on this head.
What
TLOU Part II Remastered (PPSA15508, 01.002.000) calls
sceHttp2SendRequestAsyncwith null kqueue and extra options, then collects the result throughsceHttp2WaitAsync. Rejecting the absent queue stops that sequence.Queue the existing offline completion before returning when no event queue is supplied. Request-ID validation from #3535 still runs first; a supplied queue still receives its notification. Extra options and failed event delivery retain their existing failure paths. This does not enable networking or report a successful network request.
The existing asynchronous-request debt entry is updated once in
docs/dev/debt/libSceHttp2.md. Console timing, error precedence and the completion'sevent_typeremain unmeasured.Tested
Windows 11 x64, WinLibs GCC 15.2.0, Release:
0aa4cb1cas28bcd6be5. Full incremental build,libs,guest_http2,guest_httpandguest_memory_pool_statspass, with a 30-second per-test limit.sceHttp2SendRequestAsync not implementedwith the exact mainExport.cppand passes after restoring the correction. Baseline and candidate HTTP2 source/test files are unchanged by the final rebase.git diff --checkpass. Linux was not tested.The October 13 paired title run is recorded in Game bring-up #5468: main
dacd7852, #3897 at0a91eb31, and #3925 at35cf2fd09, with the current relinker from that base. Only the HTTP2 library differed between runs. Baseline aborted at send; the candidate returned 0 from send and wait, delivered the existing offline completion0x80436063, then stopped at a null read atgame.exe+0x1c60f2. #3965 addresses that later stack issue and was not included.Resolved VideoOut open/flip breakpoints recorded zero calls through termination: the title still stops before the first frame. The separate generated layout retained resource names but is not proof of direct original-folder launching. No menu, gameplay or frame-time result is claimed. The later rebase changes NGS2/PosixForWebKit, not HTTP2; the title report remains pinned to its actual tested runtime.
Checklist
main; no other open PR implements the same functions