Editing Shader caches
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | Modern consoles and their games make heavy use of precompiled shaders specific to their GPUs, and these shaders can't be run natively on PC hardware, so they need to be translated or recompiled. The simplest way to do this is to recompile them at runtime, but that's slow and can cause stuttering every time a new shader is loaded in the game. A mitigation to this stuttering is to compile the shaders asynchronously to the emulator, but this has its own drawback in that in the time it takes to compile the shader, the effect in-game that relies on it won't be shown. Another approach is to cache the system's raw shader pipeline and then compile the shaders before the game even starts. The only drawback here is that someone has to play through the game once to 'build' a cache that can be used by others. | |
− | |||
− | |||
− | |||
− | Modern consoles and their games make heavy use of precompiled shaders specific to their GPUs, and these shaders can't be run natively on PC hardware, so they need to be translated or recompiled. The simplest way to do this is to recompile them at runtime, but that's slow and can cause stuttering every time a new shader is loaded in the game. A mitigation to this stuttering is to compile the shaders asynchronously to the emulator, but this has its own drawback in that in the time it takes to compile the shader, the effect in-game that relies on it won't be shown. | ||
− | |||
− | Another approach is to cache the system's raw shader pipeline and then compile the shaders before the game even starts. The only drawback here is that someone has to play through the game | ||
When an emulator updates the way it handles shaders, it may break compatibility with previous shader caches; for this reason, the shader version is listed below. | When an emulator updates the way it handles shaders, it may break compatibility with previous shader caches; for this reason, the shader version is listed below. | ||
− | + | Note: Please compress your shader caches with 7-Zip or WinRAR before uploading them. | |
==[[Cemu]]== | ==[[Cemu]]== | ||
Line 176: | Line 170: | ||
Put the raw and pipeline folders in <code><RPCS3Folder>\cache\<gameSerial>\ppu-<hash>-EBOOT.BIN\shaders_cache\</code> | Put the raw and pipeline folders in <code><RPCS3Folder>\cache\<gameSerial>\ppu-<hash>-EBOOT.BIN\shaders_cache\</code> | ||
− | Current shader version is v1.94 (2022/12/11)<ref>[https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/VKGSRender.cpp# | + | Current shader version is v1.94 (2022/12/11)<ref>[https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/VKGSRender.cpp#L704 RPCS3's shader version source on Github]</ref> |
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
Line 187: | Line 181: | ||
! scope="col"|'''Renderer''' | ! scope="col"|'''Renderer''' | ||
! scope="col"|'''Notes''' | ! scope="col"|'''Notes''' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|Ratchet and Clank: A Crack in Time | |Ratchet and Clank: A Crack in Time | ||
Line 220: | Line 193: | ||
|v1.93 | |v1.93 | ||
|1150 | |1150 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|Vulkan | |Vulkan | ||
| | | | ||
Line 234: | Line 200: | ||
|v1.94 | |v1.94 | ||
|2831 | |2831 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|Vulkan | |Vulkan | ||
|} | |} | ||
Line 356: | Line 315: | ||
==[[Ryujinx]]== | ==[[Ryujinx]]== | ||
− | Right click the game in Ryujinx's game list, Cache Management > Open Shader Cache Directory | + | Right click the game in Ryujinx's game list, Cache Management > Open Shader Cache Directory and extract the zip there. |
To share: Right click the game in Ryujinx's game list, Cache Management > Open Shader Cache Directory and zip all the files named "guest" and "shared". Use the title ID as filename (check the file path for a folder with a name that resembles 010015100b514000). | To share: Right click the game in Ryujinx's game list, Cache Management > Open Shader Cache Directory and zip all the files named "guest" and "shared". Use the title ID as filename (check the file path for a folder with a name that resembles 010015100b514000). | ||
* '''Don't upload shaders if you used mods.''' | * '''Don't upload shaders if you used mods.''' | ||
− | * '''Vendors seem to matter, so if your card is AMD and there's only | + | * '''Vendors seem to matter, so if your card is AMD and there's only a Nvidia shader cache available, add another entry, and vice-versa. Don't just replace caches from different vendors.''' |
Current shader version is 1.1 (2023/10/23)<ref>[https://github.com/Ryujinx/Ryujinx/blob/b1f8f868f6fdec87bd3342ac379594bd695cbbfd/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheGuestStorage.cs#L12 Ryujinx's shader version source on Github]</ref> | Current shader version is 1.1 (2023/10/23)<ref>[https://github.com/Ryujinx/Ryujinx/blob/b1f8f868f6fdec87bd3342ac379594bd695cbbfd/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheGuestStorage.cs#L12 Ryujinx's shader version source on Github]</ref> | ||
Line 392: | Line 351: | ||
|784 | |784 | ||
|- | |- | ||
− | | | + | |Mario Kart 8 |
− | |[https://www.mediafire.com/file/ | + | |[https://www.mediafire.com/file/uzrrsa9dlgkhrr4/0100152000022000.zip/file Download] |
|1.1 | |1.1 | ||
− | | | + | |Nvidia |
− | | | + | |4213 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|Metroid Dread | |Metroid Dread | ||
|[https://www.mediafire.com/file/pjrf5zlt8o3u1yv/010093801237C000.zip/file Download] | |[https://www.mediafire.com/file/pjrf5zlt8o3u1yv/010093801237C000.zip/file Download] | ||
|1.1 | |1.1 | ||
− | | | + | |Nvidia |
|401 | |401 | ||
|- | |- | ||
Line 431: | Line 372: | ||
|[https://www.mediafire.com/file/wisclvjbc2rglk1/010015100b514000.7z/file Download] | |[https://www.mediafire.com/file/wisclvjbc2rglk1/010015100b514000.7z/file Download] | ||
|1.1 | |1.1 | ||
− | | | + | |Nvidia |
|4169 | |4169 | ||
|- | |- | ||
|Super Mario Bros. Wonder | |Super Mario Bros. Wonder | ||
− | |[https://www.mediafire.com/file/ | + | |[https://www.mediafire.com/file/x6ddcd3m12gla4r/010015100b514000.zip/file/file Download] |
|1.1 | |1.1 | ||
|AMD | |AMD | ||
− | | | + | |3795 |
|- | |- | ||
|Super Mario Bros. Wonder | |Super Mario Bros. Wonder | ||
Line 449: | Line 390: | ||
|[https://www.mediafire.com/file/2k8s0hrn5yexd02/0100000000010000.zip/file Download] | |[https://www.mediafire.com/file/2k8s0hrn5yexd02/0100000000010000.zip/file Download] | ||
|1.1 | |1.1 | ||
− | | | + | |Nvidia |
|14040 | |14040 | ||
|- | |- | ||
Line 457: | Line 398: | ||
|Apple | |Apple | ||
|822 | |822 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|Master Detective Archives: Rain Code | |Master Detective Archives: Rain Code | ||
Line 473: | Line 408: | ||
|[https://www.mediafire.com/file/hetrwsxsa37se7s/0100e95004038000.rar/file Download] | |[https://www.mediafire.com/file/hetrwsxsa37se7s/0100e95004038000.rar/file Download] | ||
|1.1 | |1.1 | ||
− | | | + | |Nvidia |
|4517 | |4517 | ||
|} | |} | ||
− | ''' | + | <s>'''[https://github.com/Ecks1337/RyuSAK/releases Ryusak] is a tool to automatically download and share shader caches for Ryujinx.'''</s> |
− | |||
− | |||
− | |||
− | |||
− | + | Note: Ryusak is no longer being maintained, and is no longer functional. | |
− | ==[[ | + | ==[[yuzu]]== |
− | NOTE: Yuzu is | + | NOTE: Yuzu is not being maintained and shutdowned services because of legal troubles. |
+ | Right click the game in yuzu's game list and click <code>Open Transferable Pipeline Cache</code> and copy/paste the .bin file. | ||
− | + | Current shader version is '''11''' (2024/1/27). Use version 1659 and below to get shader version '''10'''<ref>yuzu [https://github.com/yuzu-emu/yuzu/blob/master/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp#L57 Vulkan] and [https://github.com/yuzu-emu/yuzu/blob/master/src/video_core/renderer_opengl/gl_shader_cache.cpp#L54 OpenGL] shader version source on Github</ref> | |
− | |||
− | Current shader version is '''11''' (2024/1/27). Use version 1659 and below to get shader version '''10'''<ref>yuzu [https://github.com/yuzu-emu/yuzu/blob/master/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp#L57 Vulkan] and [https://github.com/yuzu-emu/yuzu/blob/master/src/video_core/renderer_opengl/gl_shader_cache.cpp#L54 OpenGL] shader version source on | ||
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
Line 570: | Line 500: | ||
|- | |- | ||
|Pokemon Legends: Arceus | |Pokemon Legends: Arceus | ||
− | | | + | |[https://www.mediafire.com/file/ruvjjjwmcehz08i/Pok%25C3%25A9mon_Legends_-_Arceus.7z/file Vulkan] |
|10 | |10 | ||
|5752 | |5752 | ||
Line 609: | Line 539: | ||
|- | |- | ||
|The Legend of Zelda: Skyward Sword HD | |The Legend of Zelda: Skyward Sword HD | ||
− | | | + | |[https://www.mediafire.com/file/mfy3t55k8wtqg3g/The_Legend_of_Zelda_-_Skyward_Sword.7z/file Vulkan] |
|10 | |10 | ||
|337 | |337 | ||
|- | |- | ||
|The Legend of Zelda: Tears of the Kingdom | |The Legend of Zelda: Tears of the Kingdom | ||
− | |[https://www.mediafire.com/file/ | + | |[https://www.mediafire.com/file/n1vjrw4h1h1586p/0100f2c0115b6000.7z/file Vulkan] |
− | | | + | |10 |
− | | | + | |53665 |
|- | |- | ||
|Xenoblade Chronicles 2: Torna | |Xenoblade Chronicles 2: Torna |