Repository navigation
Conversation
Progress report (19bb30c → 977418f)📉 System libraries: 89.28% (-0.96%, +4 implemented, +42 declared functions) ✅ 4 implemented
🆕 42 declared as stubs
|
11 tasks done
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
JJenkx
force-pushed
the
feat/ult-bound-condition-variables
branch
from
October 15, 2026 13:02
73b761a to
581eea1
Compare
Contributor
Author
|
Closing this draft to stay within the 20-open-PR limit while prioritizing the Cocoon shader-fusion fix with a reproduced native stop and a regression checked on current main. The implementation is preserved on feat/ult-bound-condition-variables at 581eea1; no code is discarded. It can be revisited when a title needs this path and a slot is available. |
11 tasks done
JJenkx
force-pushed
the
feat/ult-bound-condition-variables
branch
from
October 18, 2026 17:27
581eea1 to
977418f
Compare
JJenkx
marked this pull request as ready for review
October 18, 2026 17:27
This branch has not been deployed
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
Implement
_sceUltConditionVariableCreate,sceUltConditionVariableWait,sceUltConditionVariableSignalandsceUltConditionVariableDestroywith a creation-time bound mutex. Wait atomically queues the caller and releases its logical mutex, then reacquires it before successful return. Signal selects one current waiter and is not retained without a waiter. Live conditions and reacquiring waiters prevent mutex destruction. Finalization invalidates conditions and wakes queued and reacquiring waiters.Depends on #6838, exact head
5ccf926f09ddd435285f79858f94ff79cf50799e. This branch carries that single commit with original authorship, rebased onto mainf03a2da5eec6ff0fc9de5c65e6835e7a0d28b0d4, followed by this implementation. It replaces three throwing stubs from that dependency, corrects its obsolete no-argument destroy test, and removes those implemented functions from its throwing-stub debt list. Merge #6838 first; after it merges, retain only the implementation commit. This supersedes the earlier standalone version of this PR.The bound-mutex ABI is inferred from Earthion PPSA28061 callers. Error precedence, busy/state results, FIFO selection and recursive waits have not been measured on PS5 hardware. Non-null condition options and waits at recursion depth above one throw. Scheduling priority and build-version validation remain unimplemented and documented. The existing per-mutex locking, ownership and recursive mutex behavior are preserved.
Tested
Linux x86-64, GCC Release, Ryzen 9 7950X. Refreshed head
977418f2d271c5eb370826e3f093478f3218dbc9on mainf03a2da5eeplus #6838:libsandguest_ult_condition_tests,guest_ult_queue_tests,guest_ult_thread_testsbuild with the official bundled submodule pins.ctest --test-dir build-full -R '^guest_ult_' --output-on-failure: 17/17 pass, zero skipped, 1.01 seconds. Six condition cases cover validation, handoff, non-retained signals, signal-one behavior, 5,000 handoffs, queued finalization, finalization during mutex reacquisition and object reuse. Existing queue and thread cases also pass, including the dependency's updated destroy check.libsand passes 17/17 cases in 1.00 seconds, before stacking the export dependency.--base origin/main) and whitespace checks pass. No private dependency patch is used. No current-head native title run, Windows run, full project test-suite run or performance claim.Historical title evidence remains tied to its earlier revisions: on main
385ed71f2, the same default-converted Earthion executable exits 127 withundefined symbol: jnKaHGkrxZ4(_sceUltConditionVariableCreate); the other three condition imports are unresolved too. With implementation8435f3bb3, the executable resolves those imports, reaches stage/combat imagery and closes normally. Later captures become identical; input-controlled gameplay and complete title correctness remain unproven. These are not current-head or performance results. Original game files are preserved; no game-derived binaries or raw title logs are published.Earlier negative-control and hosted CI results belong to their recorded old heads: removing queued-condition finalization notification failed its regression; historical Windows CI passed all 17 ULT cases, while Linux had one unresolved graphics-suite failure outside this focused set. No full green CI claim is made for this refresh.
Evidence: tests, conventions, report and implementation patch, assets prefixed
ult-f03a-.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)