Files
PS5_RetroArch/evidence/vulkan-a4-zero-refusals
Mihawk 9678dba7da A4 reached: the refusals are zero, and the trace names the driver that ran
Two patches, both verified by one console run and a replayed capture.

0036 removes the last refusal. It did not come from an upload, which is where
docs/GPU_PATH_CRITERIA.md said A2 was: it came from vkCreateComputePipelines.
../PS5_Vulkan's ps5vk_descriptor_options (driver/ps5vk_pipeline.c:120-150) walks
every set-0 binding whose stage flags match the stage being compiled and refuses
any with stride 0, and ps5vk_descriptor_stride gives a storage image stride 0 on
purpose ("pipelines refuse them until a probe proves their entries",
ps5vk_descriptor_set_layout.c:24-40). This frontend's set 0 declares a
compute-stage storage image at binding 3, and exactly one pipeline is compiled
with COMPUTE against that layout: rgb565_to_rgba8888, the compute upload. So the
refusal fired once per vulkan_init_pipelines call - init, plus each swapchain
recreation, three times in the recorded run, every line identical.

That pipeline is not needed here. It serves the compute upload, and patch 0027
already names the one format this port uses for a menu frame, so the formats
cannot differ and vulkan_copy_staging_to_dynamic never takes the branch; the
branch would in fact fail its own retro_assert. The handle stays NULL and the
refusals stop. Deliberately the smallest change: the layout keeps binding 3, so
the compute branch stays consistent with the set it writes, and retiring the
binding is a separate step that waits on the upload path being proven unnecessary
rather than assumed to be.

0038 makes B1 a record instead of an inference. The frontend logs which display
server it found and never which video driver ran, and on this console
/app0/retroarch.log does not exist to be read (FTP answers "no such file"). The
Vulkan driver now marks its own init on stderr, which src/main.cpp points at the
trace file, exactly as this port's own driver already does with "ps5_init
entered" - so a trace names one driver and not the other.

Evidence: evidence/vulkan-a4-zero-refusals, from
`bash tools/run-title.sh --watch 30`. The trace is 9 lines, carries
"video driver: video_vulkan init entered", carries no "ps5_init entered", and
grep -c 'vulkan: ' over it is 0 - A4 and B1. tools/verify.sh passes format, unit,
build, integration and evidence.

Not claimed: B2, B3 and B4 - that frames present and that the menu is visible
through the GPU path. The owner's confirmation is the only witness for "on the
screen", and it has not been given for this run. C1-C4 are unmeasured.

Also recorded: the patch count pin in tests/test_frontend.py moves 44 to 46.
2026-09-19 08:39:55 -04:00
..