KytyPS5 Replaces PS5 Pro PSSR With NVIDIA DLSS: How the Emulator Redirects Sony's Upscaler to GeForce RTX Tensor Cores

PlayStation 5 emulation on PC has just reached a milestone that graphics architecture enthusiasts will appreciate. In an update merged this week via commit 782a85c on the official KytyPS5 GitHub repository, lead developer nmzik added native NVIDIA DLSS Super Resolution support to intercept and replace PSSR (PlayStation Spectral Super Resolution) upscaling calls in games running under the emulator's PlayStation 5 Pro mode.
Written in C++ for Windows and Linux (with experimental macOS support via Rosetta 2 and MoltenVK) as a heavily modified evolution of InoriRus's original Kyty project, KytyPS5 operates as a direct translation layer targeting the Vulkan API. Following the Mesa 26.2.6 Linux RADV driver fix for KytyPS5 earlier this month, the project is now tackling AI-driven temporal image reconstruction head-on.
From Basic Linear Scaling in Trinity Mode to NVIDIA Tensor Cores
For several weeks, KytyPS5 has featured an experimental PS5 Pro mode, triggered either via the --trinity command-line flag (a nod to Sony's internal "Project Trinity" codename) or through the Qt launcher settings. When a PS5 Pro-enhanced title detects this hardware profile, its engine unlocks upgraded rendering parameters and hands image upscaling over to Sony's proprietary PSSR library.
On physical console hardware, PSSR relies on a custom machine-learning accelerator rated at 300 TOPS of 8-bit integer performance, as broken down in our technical analysis comparing PS5 Pro's 2.0 ms PSSR 2 pass against QSSR. Because PC GPUs lack Sony's custom instruction set, KytyPS5 previously fell back to basic linear scaling whenever a game invoked PSSR in --trinity mode, resulting in a noticeably softer image with pronounced shimmering.
Check Availability PlayStation 5 Pro Availability on Amazon→
How KytyPS5 Maps Guest PSSR Buffers to the NVIDIA NGX Vulkan API
With the introduction of dlss.cpp and the updated renderPssr.cpp pipeline (shipping in pre-release KytyPS5-2026-11-10-782a85c and newer builds), the emulator's Vulkan render executor intercepts every Pssr::Request packet submitted by the guest game. First, Dlss::Accepts verifies that the pass is temporal rather than spatial-only (kSpatialOnly == 0) and confirms that valid depth (Depth) and motion vector (MotionVectors) descriptors are bound.

When those requirements are met, KytyPS5 queries the Windows registry for the NVIDIA driver's NGXCore path to dynamically load nvngx.dll, or loads libnvidia-ngx.so.1 directly on Linux. The guest PS5 Pro buffers are then wired straight into NVSDK-NGX-VULKAN-EvaluateFeature:
- Geometric and Temporal Buffers: The raw color target (
Color), depth buffer with reverse-Z flag translation (kReverseDepthmapped toDEPTH-INVERTED), and low-resolution motion vectors (MV-LOW-RESpaired withMV.Scale.XandMV.Scale.Yscaling factors) are fed directly to the host GPU's Tensor Cores. - Subpixel Jitter and Exposure Handling: Temporal subpixel jitter offsets (
Jitter.Offset.XandJitter.Offset.Y), exposure textures (or thekAutoExposureflag alongsideDLSS.Pre.Exposure), and camera cut reset flags (kReset) are preserved between two Vulkan memory barriers (vk::MemoryBarrier2). - Dynamic Mode Selection Up to DLAA and 4-Context Cache: The
Dlss::Chooseroutine queriesDLSSOptimalSettingsCallbackto automatically select the DLSS quality mode (ranging from Ultra Performance all the way up to full-resolutionDLAA = 5) whose dynamic resolution range best matches the game's internal render target, while caching up to four activeDlssContextinstances simultaneously.
User-Supplied Model Files and Manual DLSS Presets (A Through O)
To keep the official KytyPS5 repository strictly compliant with its GPL-2.0 open-source license without redistributing proprietary NVIDIA binaries, users must point the emulator to a local folder containing their own DLSS model library (nvngx_dlss.dll on Windows or libnvidia-ngx-dlss.so.* on Linux). This can be configured either in the Qt settings dialog by selecting DLSS under the new PSSR upscaler dropdown, or via the --dlss <folder> command-line option alongside --trinity.
Power users also get a dedicated --dlss-preset <A-O> command-line flag. This allows players to manually force any DLSS rendering profile from Preset A through Preset O (including NVIDIA's newest Transformer-based models) across all quality tiers. On AMD Radeon or Intel Arc graphics cards, on macOS, or whenever a game requests a spatial-only PSSR pass without motion vectors, KytyPS5 cleanly falls back to standard linear scaling.

ASUS TUF Gaming GeForce RTX 5070 Ti 16GB GDDR7 OC Edition
- NVIDIA Blackwell GB203 GPU (8,960 CUDA cores) with 5th-Gen Tensor Cores
- 16GB GDDR7 memory across a 256-bit bus for 4K Vulkan and DirectX 12 upscaling
- Triple Axial-tech fan cooling shroud with Dual BIOS switch
Check Availability ASUS TUF Gaming GeForce RTX 5070 Ti Availability on Amazon→
To revisit how Sony's PlayStation Spectral Super Resolution hardware block operates on the console itself, watch Mark Cerny's official PlayStation 5 Pro technical presentation below:

My Take on the Spec Sheet
From a pure silicon perspective, intercepting guest PSSR packets from a PS5 Pro binary and routing them straight into NVIDIA's NGX Vulkan evaluator is the exact kind of smart pipeline engineering that elevates modern emulation. Because both PSSR and DLSS rely on the same temporal reconstruction fundamentals, including reverse-Z depth buffers, low-res motion vectors, and subpixel jitter offsets, mapping the console's descriptors onto GeForce RTX Tensor Cores avoids ugly shader hacks. Swapping out blurry linear scaling for a user-supplied DLSS model, complete with manual command-line control over Presets A through O and full-resolution DLAA, actually gives a high-end PC rig the potential to reconstruct cleaner edges than the console's native upscaler. We have not yet had a physical unit on our desk, so if the manufacturer's team would like to send over a review sample so we can put it through our full real-world testing protocol, our lab doors are wide open.
Chaya "Chayane" on the Code & AI Pipeline: Looking through the 361 lines of dlss.cpp and the accompanying 331-line unit test suite (DlssTests.cpp) committed by nmzik, what stands out most is how cleanly the legal and software boundaries are handled. Dynamically loading nvngx.dll from the driver registry while letting users supply their own model binary keeps the GPL-2.0 repository completely free of proprietary blobs. The logical next step for contributors will be hooking the same PSSR descriptor bridge into AMD's FidelityFX SDK and Intel's XeSS so Radeon and Arc owners aren't left stuck on linear scaling in Trinity mode.


















