From f6d88558b1780df25088042771a75ab174f0a06c Mon Sep 17 00:00:00 2001 From: Mary <me@thog.eu> Date: Tue, 1 Dec 2020 22:48:31 +0100 Subject: salieri: Fix missing guest GPU accessor missing on hashes (#1759) This adds the guest GPU accessor to hashes computation. As this change all the hashes from the cache, I added some migration logic. This is required for #1755. --- Ryujinx.Graphics.Gpu/Shader/Cache/CacheManager.cs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'Ryujinx.Graphics.Gpu/Shader/Cache/CacheManager.cs') diff --git a/Ryujinx.Graphics.Gpu/Shader/Cache/CacheManager.cs b/Ryujinx.Graphics.Gpu/Shader/Cache/CacheManager.cs index f977e96b..ca0070fd 100644 --- a/Ryujinx.Graphics.Gpu/Shader/Cache/CacheManager.cs +++ b/Ryujinx.Graphics.Gpu/Shader/Cache/CacheManager.cs @@ -29,7 +29,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache /// <summary> /// Version of the guest cache shader (to increment when guest cache structure change). /// </summary> - private const ulong GuestCacheVersion = 1717; + private const ulong GuestCacheVersion = 1759; /// <summary> /// Create a new cache manager instance @@ -45,7 +45,9 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache _hashType = hashType; _shaderProvider = shaderProvider; - string baseCacheDirectory = Path.Combine(AppDataManager.GamesDirPath, titleId, "cache", "shader"); + string baseCacheDirectory = CacheHelper.GetBaseCacheDirectory(titleId); + + CacheMigration.Run(baseCacheDirectory, graphicsApi, hashType, shaderProvider); _guestProgramCache = new CacheCollection(baseCacheDirectory, _hashType, CacheGraphicsApi.Guest, "", "program", GuestCacheVersion); _hostProgramCache = new CacheCollection(baseCacheDirectory, _hashType, _graphicsApi, _shaderProvider, "host", shaderCodeGenVersion); @@ -80,16 +82,6 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache _hostProgramCache.Synchronize(); } - /// <summary> - /// Computes the hash of some data using the current cache hashing algorithm. - /// </summary> - /// <param name="data">Some data to generate a hash for.</param> - /// <returns>The hash of some data using the current hashing algorithm of the cache</returns> - public Hash128 ComputeHash(ReadOnlySpan<byte> data) - { - return XXHash128.ComputeHash(data); - } - /// <summary> /// Save a shader program not present in the program cache. /// </summary> -- cgit v1.2.3-70-g09d2