This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Minimal VideoOut clear-frame experiment
|
||||
|
||||
## Goal and non-goals
|
||||
|
||||
Display exactly one fixed 1920x1080 solid frame through the existing pinned
|
||||
PS5 SDL2 CPU-framebuffer backend, hold it for one second, and cleanly release
|
||||
SDL. This experiment does not use `libchimera-gfx` hardware contexts, GNM,
|
||||
shaders, command buffers, compute, custom tiling code, input, audio, OpenGL,
|
||||
OSMesa, or a render loop.
|
||||
|
||||
## Application sequence
|
||||
|
||||
Project code performs the following calls only after exact compile-time and
|
||||
runtime firmware identifiers match and the literal acknowledgement is present:
|
||||
|
||||
1. `SDL_SetMainReady`
|
||||
2. `SDL_Init(SDL_INIT_VIDEO)`
|
||||
3. `SDL_CreateWindow`
|
||||
4. `SDL_GetWindowSurface`
|
||||
5. `SDL_MapRGBA`
|
||||
6. `SDL_FillRect`
|
||||
7. `SDL_UpdateWindowSurface` exactly once
|
||||
8. `SDL_Delay(1000)`
|
||||
9. `SDL_DestroyWindow`
|
||||
10. `SDL_Quit`
|
||||
|
||||
The fixed color is RGBA `(0x18, 0x2a, 0x41, 0xff)`. Logs contain stage names
|
||||
and booleans only.
|
||||
|
||||
## Indirect pinned-SDL behavior
|
||||
|
||||
At commit `0baf4ac49382b537ba449901b5b6d0d189bb1fbb`, the reviewed PS5 video
|
||||
backend indirectly uses these public export names:
|
||||
|
||||
- initialization: `sceSystemServiceHideSplashScreen`, `sceVideoOutOpen`,
|
||||
`sceKernelAllocateMainDirectMemory`, `sceKernelMapDirectMemory`,
|
||||
`sceKernelCreateEqueue`, `sceVideoOutAddFlipEvent`,
|
||||
`sceVideoOutSetFlipRate`, `sceVideoOutSetBufferAttribute2`, and
|
||||
`sceVideoOutRegisterBuffers2`;
|
||||
- single present: `sceVideoOutSubmitFlip` and `sceKernelWaitEqueue`;
|
||||
- cleanup: `sceVideoOutDeleteFlipEvent`, `sceVideoOutClose`,
|
||||
`sceKernelReleaseDirectMemory`, and `sceKernelDeleteEqueue`.
|
||||
|
||||
These are indirect implementation observations, not independently proven
|
||||
`chimera-gfx` ABI declarations. The overlay removes keyboard and IME setup.
|
||||
|
||||
## Build boundary
|
||||
|
||||
`tools/build-phase1-videoout.sh` verifies both upstream commits, stages the
|
||||
reviewed SDL overlay, disables SDL2main plus unrelated SDL subsystems, and
|
||||
cross-compiles the probe and candidate. It then statically requires the exact
|
||||
15-name Sce import inventory above and zero GNM, keyboard, IME, or UserService
|
||||
imports. It contains no upload, run, host, port, or boot command. The default
|
||||
firmware identifier is `NONE`.
|
||||
|
||||
## Known blocker
|
||||
|
||||
The pinned SDL backend waits inside `sceKernelWaitEqueue` with no publicly
|
||||
proven bounded timeout in this call path. Project code cannot safely cancel
|
||||
that wait. The artifact is suitable for offline inspection, but not yet for
|
||||
hardware authorization until `HARDWARE_TEST_PLAN.md` records an accepted
|
||||
supervisor/recovery mechanism and an exact firmware.
|
||||
Reference in New Issue
Block a user