Repository navigation
Releases: cyberps96/Shaderless
Release list
v0.2.2-beta
Shaderless v0.2.2-beta
Major reliability, large-cache, and usability update fixing GitHub Issues #1, #2, and #3, plus library filtering, live Proton switch detection, and an in-app Support modal.
Highlights & What's Fixed
- Multi-part NVIDIA shader caches & configurable max cache size (
5–500 GB, default10 GB) (#1):- Fixes late-game shader eviction and NVIDIA's single-file
~2 GB(int32offset) truncation wall on huge Unreal Engine 5 games (such as Valor Mortis and The Blood of Dawnwalker). - Automatically splits
>40,000-pipeline compiles into clean batches and packs NVIDIAGLCacheacross<1.85 GBlock-free multi-part files (steamapp_merged_shader_cache+shaderless_part1..N) with zero duplicate copies — cutting legacy4.0 GBduplicated caches in half while preserving every overflow shader. - Configurable in ⚙️ Settings (
10 / 25 / 50 / 100 GBor custom5–500 GB) or via./run-cli.sh settings --max-cache-gb <5..500>for both NVIDIA (__GL_SHADER_DISK_CACHE_SIZE) and AMD Mesa (MESA_SHADER_CACHE_MAX_SIZE), overriding Steam's4 GBdefault inside Proton'suser_settings.py. - Legacy truncated
>=2 GBsingle-file caches are automatically markedStale (>2 GB Truncated)for a one-click rebuild.
- Fixes late-game shader eviction and NVIDIA's single-file
- Standalone recorded-pipeline compile fallback, AMD headless warmer fix & Flatpak Mesa linking (#2):
- Games whose static archives aren't directly extractable (such as CryEngine / Kingdom Come: Deliverance II and custom DX12 engines) now compile directly from recorded gameplay pipelines in
recording.db. - Disables
vk_khr_present_waitduring headless warmer runs so hidden swapchains don't crash AMD Mesa / RADV on Wayland/XWayland. - Links compiled AMD Mesa caches into Flatpak Heroic and Flatpak Lutris sandboxes.
- Games whose static archives aren't directly extractable (such as CryEngine / Kingdom Come: Deliverance II and custom DX12 engines) now compile directly from recorded gameplay pipelines in
- Smarter game client
.exedetection (#3):- Filters out launcher/updater/API wrapper executables (such as World of Tanks
wgc_api.exe, crash reporters, and installers) and prioritizes realwin64/Bin64game binaries.
- Filters out launcher/updater/API wrapper executables (such as World of Tanks
- Instant Proton version switch detection & headless prefix bootstrap:
- Watches Steam, Heroic, and Lutris Proton configuration changes live and marks affected games
Stale (Proton updated)within ~2 seconds. - Initializes fresh or newly switched Proton prefixes headlessly before warming so compilation works even before launching the game once.
- Watches Steam, Heroic, and Lutris Proton configuration changes live and marks affected games
- Launcher & library filter bar + auto-refresh on game exit:
- Filter installed games by All / Steam / Heroic / Lutris, toggle ⚡ Needs Compile, or press
/to instant-search by name, engine, launcher, or AppID (also available in CLI via./run-cli.sh list --source ... --needs-compile --search ...). - Closing a recorded game while Shaderless is open now automatically imports
shaderless.dband updates the card's Recorded Pipelines count right away, even when Auto-Compile on Exit is turned off.
- Filter installed games by All / Steam / Heroic / Lutris, toggle ⚡ Needs Compile, or press
- In-app 💜 Support modal & dark-theme UI polish:
- Added an optional 💜 Support
Install
tar -xzf Shaderless-v0.2.2-beta-linux-x64.tar.gz
cd Shaderless-v0.2.2-beta-linux-x64
./run-gui.sh # launch the app
./install-desktop.sh # optional: adds Shaderless to your app menu and desktopNeeds webkit2gtk-4.1. See the README for full instructions.
AMD users: please share your results via the AMD test report.
Shaderless v0.2.1-beta
Shaderless v0.2.1-beta
Small bug-fix update and new Unreal Engine 5 benchmark results.
What's fixed
- Fix
kernel32.dllcrash when compiling recorded games with middleware DLLs: Fixed a Windows-only P/Invoke crash (Unable to load shared library 'kernel32.dll') triggered during Re-Compile or Auto-Compile on Exit on games that ship middleware upscaler/shader DLLs next to their executable (such as AMD FidelityFX / FSRamd_fidelityfx_*.dll,ffx_*.dll, Intel XeSSlibxess*.dll, OptiScaler, or NVIDIA Streamline). Added cross-platform Linux file identity and path guards inKeyFiles,GameFiles, andProcessMemory. - Fix tiny initial GUI window size (
200×200box): Fixed the GTK3 / Photino window opening in a small200×200default box on launch instead of1150×750(with a900×600minimum size).
New test results: The Blood of Dawnwalker (Unreal Engine 5)
Measured on RTX 3070 · NVIDIA 615.78.08 · CachyOS · GE-Proton 11-7 (Steam):
| Session | Had to compile (> 3 ms) | Typical create time | Slowest create | Compile time during loading screens |
|---|---|---|---|---|
| Session 1 (no cache) | 85.5% | 37 ms | 3.8 s | 205 s |
| Session 2 (after Record + Re-Compile) | 1.1% | 0.24 ms | 270 ms | 30 s |
(120,041 pipelines pre-compiled after Session 1; 99.4% of Session 2's ~19,500 pipeline creates were already known and hit the driver cache immediately.)
Install
tar -xzf Shaderless-v0.2.1-beta-linux-x64.tar.gz
cd Shaderless-v0.2.1-beta-linux-x64
./run-gui.shNeeds webkit2gtk-4.1. See the README.
AMD users: please fill in the AMD test report.
Shaderless v0.2.0-beta
Shaderless v0.2.0-beta
Major feature update: Flatpak launchers, DirectX 11 support, incremental re-compile, optional auto-record & auto-compile on exit, stale cache detection, and multi-area NVIDIA GLCache merging.
What's new
- Incremental Re-Compile: After you play and record new pipelines, clicking Re-Compile now compiles only the newly recorded pipelines instead of rebuilding the entire cache from scratch, while preserving the full
shaderless.warmedsnapshot. - Multi-Area NVIDIA GLCache Merging: Runtime shader variants compiled by the game across different areas/sessions are now merged into
steam_shader_cache.bin/.toc(both in Shaderless and via Proton'suser_settings.pyon launch) so fast-traveling back to previous areas never loses earlier shaders. - Stale Cache Detection & Clean Reset: Detects when your GPU driver updates, Proton version changes, or game patches (
Outdated/Stalebadge with reason), and automatically resets stale caches on full re-compile or runtime change so caches never stack past the 2 GiB limit. - VKD3D-Proton Cache Deduplication: Prevents
vkd3d-proton.cachefrom duplicating payload chunks across incremental runs. - Flatpak Launcher Support: Discovers and compiles games installed in Flatpak Steam (
com.valvesoftware.Steam), Flatpak Heroic (com.heroicgameslauncher.hgl), and Flatpak Lutris (net.lutris.Lutris), linking compiled caches into each Flatpak sandbox. - 64-bit DirectX 11 Support: Extracts and pre-compiles 64-bit DirectX 11 (SM4/SM5 DXBC) shaders through Proton's DXVK into your GPU driver's Vulkan cache.
- ⚙️ Settings Menu (both OFF by default):
- Record all games automatically: Optionally installs the recorder on eligible DX12 games without anti-cheat.
- Compile automatically after a game closes: Optionally watches for recorded games exiting and runs an incremental compile in the background when no game is running.
- Safety & Diagnostics: Refuses to compile while the game process is running (preventing locked cache corruption), verifies installed cache files after compilation, and adds
./run-cli.sh diagnoseand./run-cli.sh settings.
Known limits
- 32-bit (
x86) DirectX 11 games: Our warmer (shaderless_warm.exe) is 64-bit (x86_64), so on NVIDIA it writes into the 64-bitlibnvidia-glcore.sosubfolder insideGLCache, whereas 32-bit games use a separate 32-bit subfolder. - AMD graphics cards on Lutris and GOG / Amazon games in Heroic are not handled yet.
Install
tar -xzf Shaderless-v0.2.0-beta-linux-x64.tar.gz
cd Shaderless-v0.2.0-beta-linux-x64
./run-gui.shNeeds webkit2gtk-4.1. See the README.
AMD users: please fill in the AMD test report.
Shaderless v0.1.2-beta
Shaderless v0.1.2-beta
Fixes for Lutris and Heroic.
What's new
- Lutris: finds Epic Games Store games installed through Lutris, and games added by their exe.
- Lutris and Heroic: after a compile, the cache is now saved in the folder the game reads when it starts. Before, it was saved somewhere else and the game ignored it.
- Heroic: fixed a bug where Shaderless never found the game's Wine folder, so compiles ran in the wrong place.
- Clear cache now removes only that game's files.
Not supported yet
AMD graphics cards with Lutris games, GOG and Amazon games in Heroic, and little or no benefit for DirectX 11 games.
Install
tar -xzf Shaderless-v0.1.2-beta-linux-x64.tar.gz
cd Shaderless-v0.1.2-beta-linux-x64
./run-gui.shNeeds webkit2gtk-4.1. See the README.
AMD users: please fill in the AMD test report.
Shaderless v0.1.1-beta
Shaderless v0.1.1-beta
Update to v0.1.0-beta. If you're on v0.1.0-beta, please update.
What's new
- Wayland / AMD startup fixes: the launcher now sets
GDK_BACKEND=x11and turns off WebKit's DMA-BUF/compositing paths, and the nativesetenvcall useslibc.so.6(fixes the window not opening on some Arch/CachyOS setups). Not yet confirmed on AMD hardware, testers wanted! - AMD / Mesa: GPU detection through
vulkaninfo(noglxinfoneeded), support for Mesa'smesa_shader_cache_db, Steam shader cache size shown on AMD. - Anti-cheat aware compile: games with anti-cheat are detected, you get a notice, and nothing is copied into the game's folder. Record mode still refuses these games.
- Version shown in the app header, window title and
./run-cli.sh --version. Please include it in bug reports. - Fewer overlapping library scans at startup.
- README: new Troubleshooting section.
Install
tar -xzf Shaderless-v0.1.1-beta-linux-x64.tar.gz
cd Shaderless-v0.1.1-beta-linux-x64
./run-gui.shNeeds webkit2gtk-4.1. See the README.
AMD users: please fill in the AMD test report.
Shaderless v0.1.0-beta — First Linux Release
⚠️ Superseded by v0.1.1-beta. Please download that one instead (Wayland/AMD startup fixes, anti-cheat aware compile, version display).
Shaderless v0.1.0-beta
Unofficial Linux port of SCSKiller — compiles your games' DirectX 12 pipelines into your GPU driver's shader cache through Proton / vkd3d-proton before you play.
⚠️ Beta: Tested on NVIDIA (615.78.08, RTX 3070, CachyOS). The AMD / Mesa (RADV) backend is included, but still needs real-world confirmation — AMD testers wanted!
🛠️ Hotfix Update (Oct 15, 2026)
If you downloaded Shaderless-v0.1.0-beta-linux-x64.tar.gz earlier today and had the window fail to load on Wayland / AMD (RADV), please re-download the tarball below — it has been updated with:
- Wayland / WebKitGTK Startup Fix: Added
GDK_BACKEND=x11+WEBKIT_DISABLE_COMPOSITING_MODE=1to the release tarball'srun-gui.shand fixed nativelibc.so.6setenvbefore GTK initializes on Arch/CachyOS. - AMD / Mesa RADV Improvements: Added
vulkaninfo --summaryGPU detection fallback (works on pure Wayland withoutglxinfo/mesa-utils), support for Mesa's modern~/.cache/mesa_shader_cache_dbdirectory, and Steamshadercachesize tracking on AMD. - Startup Scan Deduplication: Prevented overlapping background library scans when loading large Steam libraries.
✨ Highlights
- Game Discovery: Automatically finds installed DX12 games across Steam, Heroic (Epic games) and Lutris (games in their own folder; partly supported, see the README)
- Engine Readers: Uses SCSKiller's engine readers (
Unreal Engine 4 & 5,Unity,FromSoftware,RE Engine,REDengine,Dagor,Northlight, and carved shader archives) - Proton Warmer (
scskiller_warm.exe): Compiles shaders across all CPU cores inside the game's own Proton prefix and exact Proton version - ⏺ Record Mode (
d3d12.dll): Records the exact full pipeline states (ExactLayouts+Rehydrate) your game creates while you play under Proton, then compiles them on Re-Compile (automatically refuses games with online/kernel anti-cheat for safety)
📦 Quick Start (Pre-built Release — No .NET SDK Required)
- Download
Shaderless-v0.1.0-beta-linux-x64.tar.gzbelow and extract it:tar -xzf Shaderless-v0.1.0-beta-linux-x64.tar.gz cd Shaderless-v0.1.0-beta-linux-x64 - Launch the GUI:
(Or add it to your app menu & desktop with
./run-gui.sh
./install-desktop.sh)
(Requires webkit2gtk-4.1 for the Photino GUI window, which is pre-installed on most gaming distros like CachyOS, Nobara, Bazzite, Ubuntu, and Fedora. You can also use ./run-cli.sh in the terminal without a GUI.)