Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -680,7 +680,7 @@ the tree.
| [ps5-native-app-boilerplate](https://github.com/blackbearreloaded/ps5-native-app-boilerplate) | BlackBearReloaded | This repository's foundation: the PS5 ELF converter, the FSELF writer, the clean-room `libc.prx`, and the identity and packaging tooling | The base of this repository (GPL-3.0-or-later) |
| [ps5-payload-dev/sdk](https://github.com/ps5-payload-dev/sdk) | ps5-payload-dev (John Törnblom) | Public PS5 headers and sysroot, the `prospero-clang18`/`lld` target toolchain, and libc++ headers | Fetched, pinned to v0.42 by SHA-256 |
| [PS5_PayloadSDK](https://github.com/mihawk-99/PS5_PayloadSDK) | Mihawk-99, on ps5-payload-dev's SDK | My fork of the payload SDK with the shared platform layer (heap, direct and executable memory, libc gaps) RADV's winsys and the titles build on | Built by `tools/setup-native-dependencies.sh` at a pinned revision |
| [PS5_Mesa](https://github.com/mihawk-99/PS5_Mesa) | Mihawk-99, on Mesa | My Mesa fork: RADV, ACO and NIR with the PS5 winsys and VideoOut WSI | Exported at a pinned revision by `tools/build-radv.sh` from `../PS5_Mesa` |
| [PS5_Mesa](https://github.com/mihawk-99/PS5_Mesa) | Mihawk-99, on Mesa | My Mesa fork: RADV, ACO and NIR with the PS5 winsys and VideoOut WSI (swapchains up to the mode's size, scaled by VideoOut) | Exported at a pinned revision by `tools/build-radv.sh` from `../PS5_Mesa` |
| [ps5-payload-dev/pacbrew-repo](https://github.com/ps5-payload-dev/pacbrew-repo) | ps5-payload-dev | Optional prebuilt PS5 ports (SDL2, OpenSSL, …) for applications | Optional, pinned to v0.40.2 |
| [opengnm-psbc](https://github.com/PS4-OpenGNM/opengnm-psbc) | PS4-OpenGNM | The Mesa-derived shader compiler (NIR + ACO) the driver links for SPIR-V, and the tree the 0.3.0 SDK patches | Fetched by the SDK's patch over its pinned revision; this project's compiler patches are re-applied on top (`tooling/psbc/`) |
| [ps5-vulkan](https://github.com/mpereiraesaa/ps5-vulkan) | mpereiraesaa | A second native PS5 Vulkan implementation: its per-format console evidence and its reporting inventory are cross-checks for this project's audit | Reference; read, not fetched or linked |
Expand Down
21 changes: 21 additions & 0 deletions docs/HARDWARE_FINDINGS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3731,6 +3731,9 @@ device as host memory and laid out by RADV as 64 KiB R_X tiles without DCC or
pipe and bank swizzle. Each present waits for its frame on a thread and flips
with sceVideoOutSubmitFlip(handle, index, 1, argument).

(Since 2026-09-29 a set of framebuffers is registered per swapchain size;
see "VideoOut scales a smaller framebuffer set to the output" below.)

- 60 frames cleared and presented through three images; the last 50 took
0.834 s, 50 periods of the 59.94 Hz mode: the flips gate the presents.
- The last frame read back its first and last pixels as cleared.
Expand Down Expand Up @@ -3769,3 +3772,21 @@ Measured from RADV's shader cache in vkQuake, from time stamps around each call:
group 0, yet the title opens for writing a file of mode 0644 it made
earlier: the mode bits do not predict what a title may do.
- `/data`, where FTP sees the title's folder, does not exist for the title.

## 2026-09-29 — VideoOut scales a smaller framebuffer set to the output (RADV)

Mesa's VideoOut backend (PS5_Mesa 5115a1d) registers one set of five
framebuffers per swapchain size, as set *i* at buffer indices 5*i* onwards,
each with sceVideoOutSetBufferAttribute2 at the swapchain's width and height
(tiling 0, B8G8R8A8 SDR) and sized in whole 128x128-pixel 64 KiB tiles
(1920x1080: 15x9 tiles). On FW 12.02 with the 3840x2160 59.94 Hz mode:

- A 1920x1080 set fills the whole output. DXVK 2.6.2's D3D11 and D3D9
four-quadrant controls, through Wine (Prospero Win), showed full-screen
quadrants on the TV and in a Remote Play capture; with only the 4K set
(before) the same 1080p image sat in the top-left quarter.
- A second set in one process registers: one D3D11 swapchain presented three
1920x1080 frames, was resized to 3840x2160 (set 1, indices 5 to 9) and
presented three more; all correct on the TV.
- Other sizes, and more than two sets in one process, were not measured.

22 changes: 22 additions & 0 deletions docs/RADV_PHASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -937,3 +937,25 @@ The quality warnings are four families:
Next, before any further full run: the targeted rerun of these 61 cases, and
the not-supported features, each either implemented for real or confirmed as
a genuine absence of the hardware or the platform.

## 2026-09-29 — swapchains smaller than the mode

Prospero Win (Wine WoW64 with DXVK 2.6.2) runs its games at a 1920x1080
desktop. The VideoOut swapchain only took 3840x2160, so Wine created the
host swapchain at 4K and the 1080p image showed in the top-left quarter.
The backend now registers a framebuffer set per swapchain size and reports
any size from 1x1 to the mode's, with `VK_PRESENT_SCALING_STRETCH`
(PS5_Mesa 5115a1d; HARDWARE_FINDINGS.md, same date). `tools/build-radv.sh`
pins 5d9f448 (that change and a README note).

Console, FW 12.02, through Prospero Win with the release archive linked as
a title `libvulkan.prx`:

| Check | Result |
| --- | --- |
| DXVK 2.6.2 pixel controls, D3D8/9/10/11, x64 and x86 | 8/8 pass (on cedb774; the WSI change does not touch them) |
| DXVK 2.6.2 real-draw controls, D3D8/9/10/11, x64 and x86 | 8/8 pass on cedb774; D3D11 x64 and D3D9 x86 again on the new code |
| 1920x1080 D3D11 and D3D9 four-quadrant scanout controls | pass, full screen on the TV and in Remote Play |
| 3840x2160 D3D11 control, and a 1080p to 4K resize in one swapchain | pass |
| x64 Vulkan probe, x86 placed-map probe | pass |

4 changes: 3 additions & 1 deletion docs/VULKAN_PROBE_ACTIVE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ record, mine (I closed the CTS title mid-case to use the console;
RADV_PHASE.md, 2026-09-29). Next: the targeted rerun of those 61 cases, then
the not-supported features, before any further full run. The Mesa fork's work is all on its `main` branch.
vkQuake and PS5 RetroArch (v0.5.0-alpha.5) ship on RADV's release archive
(cedb774), with the on-disk shader cache in its exclusive mode; ps5vk is
(cedb774), with the on-disk shader cache in its exclusive mode (the pin has
since moved to 5d9f448, whose VideoOut swapchain also takes sizes below
3840x2160: RADV_PHASE.md, 2026-09-29); ps5vk is
their `PS5_VULKAN_DRIVER=ps5vk` build option. Open: concurrency between
queues (backlog), and Dolphin's first start of a game with an empty shader
cache (83% and 92% for its first two 10 s windows, ps5vk 86% and 99%).
Expand Down
2 changes: 1 addition & 1 deletion tools/build-radv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ set -euo pipefail

root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
mesa_fork="${PS5_MESA_FORK:-$root/../PS5_Mesa}"
mesa_revision=cedb774b27d089fa81f46add28d0a8c13ff0f7d2
mesa_revision=5d9f448ae6cb063ce5f12457abaab1505b9906c2
variant=${1:-debug}
sdk="$root/.deps/native/ps5-payload-sdk"
source_tree="$root/.deps/work/radv-src"
Expand Down