Qualify SDL 3.4.16 for native controllers and the optional bridge - #68
Conversation
Use official release commit fa2c02bb6e21974a89ea9824bc53c9932abe5f9c for the native arm64/Intel consumer matrix and retain its exact source artifact. No controller engine or second SDL instance is introduced. Bridge and emulator dependency updates follow after their source checks.
Use the host's single SDL target: Dolphin selects the hash-checked official release only with Switch2Kit enabled; Cemu resolves only sdl3 from a pinned registry while retaining its other dependency baseline. Keep the emulator revisions and existing input/motion patches intact. Move the optional bridge and host component tests to the same release. Check actual SDL header and linked runtime versions in consumers and full emulator builds, with failure tests for wrong versions and malformed expectations. Preserve existing negative controls, macOS wired compilation and disabled-backend checks. Keep dependency pins in build configuration rather than duplicating transient CI versions in user documentation. Commit the resulting files directly. Local portable/debug/release tests pass; native final-head qualification remains required.
Require the upgraded SDL version only for enabled native integration. Preserve Cemu's existing unrestricted system-SDL discovery when Switch2Kit is off, while the pinned vcpkg build selects the upgraded package. Add two CMake-executed regression cases for disabled integration and disabled SDL. The system-SDL case fails against the preceding patch. Retain all existing assertions and update the affected upstream-file digest. Clarify that the bridge builder exports, rather than fetches, its pinned source.
Retain the complete SDL dependency update and main's landed controller changes. The exact PR merge source failed the existing README-size regression (110 lines); shorten repeated explanation without relaxing the test, removing platform restrictions, or changing the public examples' ownership. Local repository/link, notice, patcher, bundle and inspector tests pass. Keep exact CI versions in build configuration and PR evidence rather than permanent user documentation. Revalidate the complete combined source on macOS.
Merge current main without dropping the Linux/BlueZ transport, Cemu input loop, native installation or GameCube motor changes. Apply SDL 3.4.16 and exact header/runtime diagnostics to Linux as well as macOS, retaining disabled-backend behavior and all-target Linux builds. Update pinned patch digests, preserve Linux version evidence, and key the Cemu ABI cache on the integration patch. Extend real build-helper regression tests to reject the wrong SDL before either application builds. Locate the actual platform guard rather than the new SDL-selection guard in Linux tests. Complete retained regressions and 85 debug/85 release warnings-as-errors package tests pass. The exact published tree matches the tested local candidate. Full updated-head native CI remains required.
|
Readiness status for unchanged head Rechecked current Actions results: seven of eight workflow families have passed, including the complete Linux test, Dolphin build/install/relocation, and Cemu build/install/relocation jobs. The remaining emulator integration run is https://github.com/jmonster/Switch2Kit/actions/runs/35293486487 . Its host tests, Dolphin Intel job and Cemu arm64 job passed. Dolphin arm64 has passed its application build and inspection and is finishing disabled-backend configuration; Intel Cemu is still building. The dependent GUI-launch matrix must then complete. No failed job is currently reported. No further planned implementation increment remains for this PR. Completion and inspection of the remaining exact-head CI/artifacts are still required before merging; concrete failures would need correction. This is a status-only update, not a new test execution, source commit or PR merge. |
Completion status
Merged as
7c369e873fbf18825368e1738290db5726a6dc30. All eight PR workflows for final head97570169c07a275d0768700cc1c8c36bb735afbacompleted successfully, including the formerly pending Linux Cemu, SDL, packaged-runtime, and full macOS emulator build/launch checks. The merge occurred during the completion audit; that audit verified results and updated this description, but did not execute the merge operation.Head tree:
f56e46d11862f1dfee1e60d8a3c04a61f53a43e0. The implementation retains the Linux/BlueZ backend, native installation, Cemu input loop and GameCube motor support from #70.Implementation
Native consumers, emulator-component tests and the optional bridge use SDL 3.4.16, commit
fa2c02bb6e21974a89ea9824bc53c9932abe5f9c. Dolphin uses the hash-checked release archive for its existing SDL target when Switch2Kit is enabled; disabled builds retain upstream selection. Cemu selects only SDL from its pinned registry, retaining other dependencies on the original baseline and preserving disabled-system-SDL discovery. The pinned Dolphin and Cemu revisions are unchanged.The build-only diagnostic links the actual host SDL target and checks header/runtime version
3004016before building either application. It initializes no SDL subsystem and is not shipped. Final patch files and verified output digests are committed directly; no implementation-generating workflow is introduced.The completed integration corrections preserve Linux resources/library installation, all-target Linux builds, targeted macOS bundles, optional-platform assertions and the README size gate. The real CMake helper regression compiles the version checker and rejects mismatched SDL before application builds. Cemu's cache key includes its integration patch; dependency archives remain individually ABI-keyed.
Completed CI
CI provenance: synthetic merge
b2658325955ca412a16393838ab8819ecd3a1b20merges the feature head intoa187693b8ced4328758c4e242a4eb203d26608a2and has the same tree as the head. Main subsequently incorporated #63/#64 before this PR was merged. These PR runs are not represented as fresh post-merge CI. No checks, assertions or repository protections were weakened during completion. There were no submitted reviews or unresolved review threads at the pre-merge completion check.Previously recorded local validation
On the published feature head, Linux x86_64 / Swift 6.2.1: complete retained regressions, 85 debug / 85 release Swift tests with warnings as errors, 20 isolated BlueZ scenarios, and 8/8 actual SDL/native host tests passed. Additional suites passed: four Linux build/event-loop/install tests; four compiled SDL-version tests; three build-helper tests; nine patcher/disabled-Cemu-selection tests. The wrong-SDL negative regression failed against the previous helper on all four emulator/platform paths and passed with this helper, requiring rejection before application builds or notice inspection.
Both patches' before/after digests matched pinned upstream archives. All 341 tracked files and executable modes in the downloaded head-specific CI archive matched the original candidate. These local results were recorded during implementation, not newly executed in the final CI/readiness audit.
A separately tested local tree combined #63, #64, #65 at
4fef3dc, and this #68 head:fa80b2e7eab3dfadc3196e73c01c9d59079b1422. It passed the retained suite, 92 debug / 92 release tests, 8/8 native host tests,lib/lib64relocation with missing-library negative controls, 20 BlueZ scenarios, and 40 additional transition cases. That tree did not include #71.An additional previously recorded all-four-model harness exercised actual BlueZ transport, the shared queue/C ABI, unmodified SDL 3.4.16, and pinned Cemu motion processing, including input, motor requests, reconnect identity and teardown. Its service and profiles were synthetic; it was not a committed CI test or full gameplay test.
Qualification boundary
Physical controller behavior, measured calibration, gameplay and upstream SDL acceptance remain separate. Linux retains its experimental status and native runtime dependencies. This completion audit performed no physical-controller testing or release publication.