This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Phase 1.0A PacBrew and PS5 SDL analysis
|
||||
|
||||
## Identities
|
||||
|
||||
| Source | Identity |
|
||||
| --- | --- |
|
||||
| PacBrew repository | `c2abcfcb60f569128abd0e8e70ad03a67bee5ea7` |
|
||||
| PS5 SDL fork | `0baf4ac49382b537ba449901b5b6d0d189bb1fbb` |
|
||||
| SDL reported revision | `SDL-2.30.12-g0baf4ac4` |
|
||||
| SDL license | Zlib |
|
||||
|
||||
The PacBrew SDL2 recipe builds the PS5 fork and enables OpenGL and LOADSO.
|
||||
Those two options are intentionally disabled here. PacBrew recipes were also
|
||||
reviewed for SDL2_image, SDL2_mixer, SDL2_ttf, freetype, zlib, libpng, OpenAL,
|
||||
elfldr and representative emulator ports. None is needed by the two Phase
|
||||
1.0A binaries beyond SDL2 itself.
|
||||
|
||||
## Native backend inventory
|
||||
|
||||
| Area | PS5 SDL implementation | APIs/dependencies | Phase 1.0A use |
|
||||
| --- | --- | --- | --- |
|
||||
| Video | Software surface, tiled direct-memory buffers, double buffer, VideoOut flip/equeue | `SceVideoOut`, kernel equeue/direct memory, user/system service | Enabled |
|
||||
| Render | SDL software renderer targeting the window framebuffer | SDL core software renderer | Enabled |
|
||||
| Input | Up to four PS5 Pad users, buttons, axes, connect/disconnect polling | `ScePad`, `SceUserService` | Enabled for one controller |
|
||||
| Audio | 48 kHz, mono/stereo, S16 or F32, bounded 256-2048 sample buffers | `SceAudioOut` | Enabled, RetroArch requests stereo |
|
||||
| Keyboard/IME | PS5 keyboard and IME dialog | `SceKeyboard`, `SceImeDialog` | Removed by reviewed overlay |
|
||||
| Filesystem | PS5 implementation exists | user service/filesystem | Disabled |
|
||||
| OpenGL/OSMesa | Optional source exists | Mesa/OSMesa | Disabled |
|
||||
| LoadSO | Optional | dynamic loader | Disabled |
|
||||
|
||||
## Reviewed overlay
|
||||
|
||||
The fork carries only a patch, not SDL source. The patch:
|
||||
|
||||
- removes keyboard/IME initialization and event pumping;
|
||||
- replaces twelve freshly created worker threads per frame with a checked
|
||||
single-thread tile copy;
|
||||
- rejects non-positive or non-tile-aligned framebuffer dimensions;
|
||||
- passes a 100,000 microsecond timeout to `sceKernelWaitEqueue`;
|
||||
- propagates copy and timeout errors to SDL.
|
||||
|
||||
SDL is configured with video, render, events, joystick, threads, timers and
|
||||
audio on; filesystem, file, loadso, OpenGL, Vulkan, haptic, sensor, locale,
|
||||
misc, libsamplerate, disk audio and dummy audio are off.
|
||||
|
||||
## Classification
|
||||
|
||||
`PS5_SDL_PARTIAL_CANDIDATE`
|
||||
|
||||
The source contains real PS5 video, controller and audio backends and the
|
||||
software RetroArch profile links them. It is not `FULL` because firmware-9.60
|
||||
runtime behaviour, VideoOut ownership, error cleanup, disconnect recovery,
|
||||
audio underrun/overrun reporting, exact flip timeout semantics and shutdown
|
||||
after partial initialization have not been verified on hardware.
|
||||
|
||||
Static build and host audits are not runtime evidence.
|
||||
Reference in New Issue
Block a user