This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Phase 1.0P VideoOut submit analysis
|
||||
|
||||
Phase 1.0P is an offline postmortem of the consumed Phase-1.0O run. It adds no
|
||||
target source or artifact and performs no device action. The exact runtime
|
||||
evidence remains the M artifact (1,845,208 bytes, SHA-256
|
||||
`c99a0856309a357ad2667d89b4924e4063ad214cae09c8a419457b0732f583cd`)
|
||||
and the ignored O trace (18,031 bytes, SHA-256
|
||||
`3d0b8811ae11f5cac2c2d331e252e1789a10588cab0e6045828a6b6af0fe1eb6`).
|
||||
|
||||
## Proven call boundary
|
||||
|
||||
The exact linked SDL overlay source has SHA-256
|
||||
`9949a280fed40241746788a8c001280455bc629e0566a88f82f16a8634d43025`.
|
||||
Its linker map has SHA-256
|
||||
`6768ffc7267b9b362c3b953571e5dfeed1e70004a3e19f41ef500c3f26272719`
|
||||
and locates `PS5_VideoInit` at `0xfdc20` and
|
||||
`PS5_PresentEarlyDiagnosticFrame` at `0xfe560`.
|
||||
|
||||
Disassembly of the exact M ELF proves that the indirect call at `0xfe7bc`
|
||||
loads the VideoOut handle into `edi`, zero into `esi`, one into `edx`, and
|
||||
zero into `ecx`. The corresponding GOT slot is `0x1779b0`. The code tests
|
||||
`eax` and, on failure, reads `errno` before emitting D07. The O trace therefore
|
||||
binds the following facts across source, map, disassembly and runtime:
|
||||
|
||||
- `sceVideoOutOpen` returned positive handle `0x4e100100`;
|
||||
- `sceVideoOutRegisterBuffers2(handle, 0, 0, buffers, 2, attr, 0, NULL)`
|
||||
returned `0`;
|
||||
- the diagnostic copied pixels into registered buffer zero;
|
||||
- `sceVideoOutSubmitFlip(handle, 0, 1, 0)` returned `-1`;
|
||||
- the immediately saved `errno` was `0`;
|
||||
- no flip-event wait followed the failed submit.
|
||||
|
||||
The unmodified public SDL source at commit
|
||||
`0baf4ac49382b537ba449901b5b6d0d189bb1fbb` also starts `frame_id` at zero,
|
||||
uses `idx = frame_id % 2`, and calls the same tuple on its first normal frame.
|
||||
The earlier diagnostic-versus-normal first-index mismatch has therefore been
|
||||
eliminated and cannot explain the O result.
|
||||
|
||||
## Evidence limits
|
||||
|
||||
SDK v0.41 commit `d2e2e585740362976a39fdd5ccf390f199a7bc37` exports symbol stubs,
|
||||
but supplies no public VideoOut prototypes, structures, constants or return
|
||||
semantics. The SDL fork is the only local public source for the prototype,
|
||||
the 32-byte buffer descriptor, the opaque 80-byte attribute object and the
|
||||
format constant `0x8000000022000000`. Buffer registration returning zero is
|
||||
useful runtime evidence, but it does not independently validate those opaque
|
||||
semantics.
|
||||
|
||||
| Question | Classification | Reason |
|
||||
|---|---|---|
|
||||
| exact failure site | PROVEN | source/map/disassembly plus D07 |
|
||||
| raw submit return | PROVEN | D07 is `-1` |
|
||||
| useful errno identity | ABSENT | saved value is `0` |
|
||||
| frame-zero difference from normal path | REJECTED_CURRENT_CAUSE | both paths now use zero |
|
||||
| buffer-zero validity | UNPROVEN | consistent with source, not independently specified |
|
||||
| flip-mode value `1` | UNPROVEN | no local public semantic definition |
|
||||
| frame-ID zero validity | UNPROVEN | used by SDL, not independently specified |
|
||||
| buffer attribute/layout semantics | UNPROVEN | opaque fork-local declaration |
|
||||
| flip-master or active-app ownership | UNPROVEN | export names are not callable ABI evidence |
|
||||
| visible presentation or cleanup | UNPROVEN | no successful submit or terminal proof |
|
||||
|
||||
Calling `sceVideoOutSetFlipMaster`, a status query, or changing a submit
|
||||
argument based only on an export name would be an ABI guess. Phase 1.0P does
|
||||
not authorize or recommend such a change. Its decision is
|
||||
`VIDEOOUT_SUBMIT_FAILURE_SITE_PROVEN_ROOT_CAUSE_UNRESOLVED`.
|
||||
|
||||
## Safe continuation gate
|
||||
|
||||
Before another target artifact is designed, acceptable public evidence must
|
||||
define the relevant VideoOut signature, arguments, structure layouts, return
|
||||
codes and required ownership/state. If that evidence cannot be obtained, the
|
||||
hardware path remains fail-closed. A later artifact also needs a corrected
|
||||
terminal protocol, separately audited and separately authorized before any
|
||||
device action.
|
||||
Reference in New Issue
Block a user