DuckStation rolling release adds multi-threaded shader compilation
Key Takeaway
The DuckStation PlayStation 1 emulator introduces multi-threaded shader and pipeline compilation to improve performance.
Summary
The latest rolling release of the DuckStation emulator includes significant architectural improvements to GPU and SPU handling. Key updates feature multi-threaded shader and pipeline compilation, optimized SPU processing, and the use of Vulkan timeline semaphores. The update also refines the shader cache system using UIDs and binary keys.
Technical improvements in DuckStation
- GPU/HW: Implemented multi-threaded shader and pipeline compilation.
- GPU/HW: Switched to using UIDs for shader generation and shader cache keys.
- SPU: Vectorized Gaussian interpolation and streamlined per-voice flag processing.
- Vulkan: Added support for timeline semaphores when available.
- Threading: Introduced lightweight Mutex and ConditionVariable wrappers and dynamic TaskQueue thread counts.
- ObjectArchive: Migrated to binary keys instead of strings for improved shader cache lookups.
Why it matters
These optimizations aim to reduce stuttering and improve emulation smoothness, particularly during shader heavy scenes in PlayStation 1 titles.
Original reference: github.com →