Repository navigation
fix(libSceNgs2.native): return the module's buffer and allocator errors from sceNgs2SystemCreate and sceNgs2SystemCreateWithAllocator - #9316
Conversation
…rs from sceNgs2SystemCreate and sceNgs2SystemCreateWithAllocator
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
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.
|
|
Windows run of 6279944 merged onto Built |
|
@MarrasFederico I read the stack: #9316 contains #9312, so I will review and land #9316 and treat #9312 as included. The module error codes and the new tests look right to me. Before it can merge, Could you rebase onto current
constexpr std::uint32_t knownFlags = 0x2;
if ((option->flags & ~knownFlags) != 0) throw std::runtime_error("NGS2: system option flags " + Ngs2Hex(option->flags) + " are not implemented");
After the push CI runs again on the new head, and I will do a short delta review. |
…tion-codes # Conflicts: # core/libs/prx/libSceNgs2.native/src/System.cpp
…eate-arguments # Conflicts: # core/libs/prx/libSceNgs2.native/include/Ngs2Types.hpp
|
@oneandonlydean thanks, both are in the current head (
On that tree the library builds and all 13 NGS2 test targets pass after a full rebuild, including #8341's flags test in |
What
sceNgs2SystemCreateandsceNgs2SystemCreateWithAllocatorchecked the output handle first and threw for a missing buffer or allocator. They now follow prosper's reading of the two exports inlibSceNgs2.native.sprx(0x1d1e0and0x1d2f0):sceNgs2SystemCreate:host_bufferin it, returns0x804A8020;0x804A8010;sceNgs2SystemCreateWithAllocator:alloc_handler, returns0x804A8023;free_handler: the module checks onlyalloc_handler, so an allocator with nofree_handlerkeeps throwing, after the option checks as before. The new debt entry records it.Rack creation is left as it is. #8609's tests rely on its current order, and it will follow separately.
This builds on #9312, which makes the option checks return codes.
Tested
Ubuntu 26.04.1, kernel 7.0.0-38, GCC 15.2.0, Release, full build with
BUILD_TESTING=ON. Windows was not compiled. No title was run.ngs2_handleerrors, newCheckCreateArguments:sceNgs2SystemCreate:0x804A8020, also with a NULL handle and a bad option;0x804A8010;sceNgs2SystemCreateWithAllocator:0x804A8023;ngs2tests pass.tools/check_conventions.py --base origin/mainpasses.tools/pr_overlap.pyreports:flagsline, inherited from fix(libSceNgs2.native): validate the system option with the module's error codes #9312;Ngs2Types.hppL11. Both branches carry fix(libSceNgs2.native): validate the system option with the module's error codes #9312's constants; this one adds two lines after them, and fix(libSceNgs2.native): return the module's codes from sceNgs2SystemSetSampleRate and sceNgs2SystemSetGrainSamples #9315 does not change the header.It could not compare feat(ngs2): add experimental I3DL2 reverb #1384 and feat(ngs2): decode complete HE-VAG waveform blocks #5797; neither changes these two calls.
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)