Files
chimera-gfx-Public/docs/retroarch/phase-1.0a-pacbrew-sdl-analysis.md
T
Chimera GFX release export a6037502d7
phase0-ci / build-and-audit (push) Successful in 2m14s
Publish Chimera GFX source
2026-09-03 03:27:14 +02:00

57 lines
2.7 KiB
Markdown

# 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.