Archive of https://github.com/blackbearreloaded/ps5-fsr4 — A proof of concept of FSR4 running on PS5 GPU https://github.com/blackbearreloaded/ps5-fsr4
  • Python 83.1%
  • C 15.2%
  • Makefile 1.2%
  • C++ 0.3%
  • HLSL 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-10 10:48:02 -04:00
.github Publish the compiler cache snapshot from its own workflow 2026-10-10 10:48:02 -04:00
comparisons Re-measure every benchmark case without the flushes of mapped staging memory 2026-09-29 00:16:33 -04:00
docs CI: build on an ubuntu-24.04 runner without a container 2026-10-09 17:44:13 -04:00
examples Run the showcase on system software 10 and leave the title on a fatal GPU error 2026-10-05 15:11:51 -04:00
experiments Adopt an FSR4-first layout on top of the driver submodule 2026-09-28 10:16:19 -04:00
external Take the driver fix for graphics on system software 10 2026-10-05 15:11:51 -04:00
include/ps5fsr4 Add AMD Ultra Performance model and select it per frame like FidelityFX 2026-09-28 20:46:07 -04:00
src Unmap the model and the benchmark inputs after upload so ps5vk stops flushing them every frame 2026-09-29 00:14:45 -04:00
tests Release job: add missing files to an existing release, never replace one 2026-10-08 20:21:53 -04:00
tools Compile the CI build through ccache and keep the cache between runs (#1) 2026-10-10 10:46:34 -04:00
.gitignore Add FSR4 build targets, licensing and project documents 2026-09-28 10:18:35 -04:00
.gitmodules Add the ps5-vulkan driver as a submodule 2026-09-28 10:12:54 -04:00
BUILDING.md Compile the CI build through ccache and keep the cache between runs (#1) 2026-10-10 10:46:34 -04:00
LICENSE Add FSR4 build targets, licensing and project documents 2026-09-28 10:18:35 -04:00
Makefile Compile the CI build through ccache and keep the cache between runs (#1) 2026-10-10 10:46:34 -04:00
README.md Docs: a push to main no longer builds; pull requests, tags and manual runs do 2026-10-07 22:42:31 -04:00
THIRD_PARTY_NOTICES.md Standardize the README footer and third-party notices 2026-09-29 18:18:50 -04:00
VALIDATION.md Accept 720p to 4K Ultra Performance on the PS5 2026-09-28 23:48:19 -04:00

PS5 FSR4

PS5 FSR4 Showcase: FSR 4 beside a bilinear upscale of the same frame

The showcase app on a PS5, upscaling 640×360 to 1920×1080 at 60 fps. Both lenses magnify the same spot of a resolution chart four times: FSR 4 on the left, a bilinear upscale of the same frame on the right.

Warning

Experimental. FSR4 runs natively on the PS5 and passes its acceptance against the WARP reference in every captured scenario up to 2560×1440. Pre-releases carry the showcase app, the SDK and their source. The SDK is built from the BC250 RC11 build of AMD's FSR4 provider and needs a diagnostic profile of the Vulkan driver.

Important

Primary FSR4 porting credit: the BC250 FSR4 project. Our FSR4 effort builds on the pioneering work of dmoraza (dmorazasanchez) and daniel-h-0 and contributors, whose BC250 fork is our primary technical reference for FSR4 INT8 shader optimizations, provider tooling and reference workloads. AMD / GPUOpen created FSR4 itself. BlackBearReloaded's contribution here is the native PS5 adaptation, integration and validation. See full credits and source provenance.

A reusable FSR 4.1.1 INT8 SDK for native PS5 homebrew, running on Vulkan compute. The Vulkan driver is the external/ps5-vulkan submodule: BlackBearReloaded's fork of Manuel Pereira's ps5-vulkan. This project is independent of the upstream driver project.

Status: Experimental.

  • The ps5_fsr4 runtime upscales 1280×720 to 1920×1080 on the PS5 in about 2.7 ms per frame, and outputs up to 3840×2160 (performance). Generated INT8 kernels run the network, including the postpass's learned head, faster than AMD's converted shaders and produce the same bytes.
  • Every captured scenario up to 2560×1440 is accepted: static, motion, camera cut, SDR, dynamic resolution, sharpening, several output sizes, the 1080p and 1440p targets and AMD's Ultra Performance model for 3× upscaling. At 4K, motion and Ultra Performance pass too; in the static capture one frame of four misses the rule by 0.16 dB (validation).
  • An interactive demo renders a scene, upscales it and presents it at 60 fps.
  • The showcase app (PPSA99011) draws a city at dusk and upscales it at 60 fps. Its settings choose every quality mode at 1080p, 1440p and 4K output, with split views against bilinear and native rendering, a paired magnifier and a benchmark of the upscaler.
  • GitHub Actions builds and tests everything from pinned public inputs for every pull request and, on main, when started by hand; a v* tag publishes a pre-release with the showcase app, the SDK and their source (releasing).
  • tools/build_fsr4_sdk.py stages the SDK: libps5_fsr4.a, its header, notices and a warmed pipeline cache (FSR4 SDK).

Performance

Milliseconds per frame on the PS5 for each render and output size, against the 16.7 ms of one 60 fps frame
Render → output Mode Time per frame Share of a 60 fps frame
640×360 → 1920×1080 Ultra Performance 2.92 ms 18%
1280×720 → 1920×1080 Quality 2.95 ms 18%
1280×720 → 2560×1440 Performance 4.92 ms 30%
1706×960 → 2560×1440 Quality 4.95 ms 30%
1920×1080 → 3840×2160 Performance 10.86 ms 65%
1280×720 → 3840×2160 Ultra Performance 10.94 ms 66%

These times come from the headless benchmark (tools/build_fsr4_bench.py). It submits 1,800 frames back to back and times each from submission to completion on the GPU. The interactive demo paces frames at 60 fps and measures less: 2.66 ms for 1280×720 → 1920×1080. For that case AMD's converted shaders alone take 3.26 ms on the PS5, and 3.93 ms of GPU time on a BC250 at 1850 MHz.

The showcase app runs the same six cases on any console: Benchmark the six scenarios in its settings times each one and shows it beside this table.

Milliseconds per frame for 1280×720 to 1920×1080 after each optimization step, from 27 ms to 2.67 ms

tools/build_fsr4_perf_charts.py draws both charts from the measurements recorded in it.

Before and after

Captured on a PS5: bilinear and FSR4 upscales of 960×540 to 1920×1080, native 1080p and a 64× supersampled reference, 3× zoom

Captured on a PS5: FSR4 upscales 960×540 to 1920×1080 in about 2.7 ms. From a quarter of the pixels it comes closer to a 64× supersampled reference (37.5 dB) than native 1080p rendering does (31.2 dB).

Captured on a PS5: bilinear and FSR4 upscales of 1280×720 to 3840×2160, native 4K and a 64× supersampled reference, 3× zoom

At 4K: FSR4's Ultra Performance model upscales 1280×720, a ninth of the pixels, to 3840×2160 in 10.9 ms (headless benchmark). It comes closer to the reference (38.6 dB) than native 4K rendering does (34.0 dB).

Tip

Every comparison is in comparisons/: three shots of the demo scene at 1080p (from 1280×720 and 960×540), 1440p (from 1706×960 and 1280×720) and 4K (from 1920×1080 and 1280×720), with lossless full-size frames, 1:1 crops, 3× zooms, PSNR/SSIM against the supersampled reference and, at 1080p, an orbiting motion clip, all captured on the console.

Layout

Path Contents
include/ps5fsr4/ Public C API
src/ Runtime: context, dispatch, constants and pass tables
tools/ Shader converter, reference exports, runtime/SDK/app builders, acceptance
tests/ Host tests
examples/ Runtime test, interactive demo, showcase app, comparison capture and replay witnesses
comparisons/ Before/after captures of the demo scene at 1080p, 1440p and 4K, built by tools/build_fsr4_comparisons.py
docs/ SDK guide, reference procedure, research notes, performance charts
external/ps5-vulkan/ The Vulkan driver (submodule)
.github/workflows/ The GitHub Actions build: tests, packages and pre-releases (releasing)

Clone with git clone --recurse-submodules, or let make fetch the driver, then follow BUILDING.md.

Development

Keep test captures, logs and detailed results local. Commit code changes with brief descriptions. This repository remains public.

Credits

Built with the PS5 Payload SDK by John Törnblom (ps5-payload-dev). Third-party components, authors and licenses are listed in THIRD_PARTY_NOTICES.md.

License

Copyright © 2026 BlackBearReloaded. Licensed under GPL-3.0-or-later; see LICENSE. Third-party components keep their own licenses. Binary releases are built from the tagged source in this repository.

Disclaimer

  • No affiliation. This is an independent homebrew project. It is not affiliated with, endorsed by, or sponsored by Sony Interactive Entertainment. "PlayStation", "PS5" and related marks are trademarks of Sony Interactive Entertainment Inc. AMD, FidelityFX and FSR are trademarks of Advanced Micro Devices, Inc., which does not endorse this project.
  • No proprietary material. No Sony SDK, firmware, encryption keys or decrypted system modules are included.
  • No warranty. This project is provided "as is", without warranty of any kind, to the extent permitted by law. See sections 15 and 16 of the GPL.
  • Use at your own risk. Running homebrew requires a modified console, which may void its warranty, breach the platform's terms of service, or cause data loss.
  • Legal use only. Use it only with hardware, accounts and content you own. This project does not support or enable piracy.

AI assistance

This project was developed with AI assistance from OpenAI and/or Anthropic tools.