aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
diff options
context:
space:
mode:
authorMary <me@thog.eu>2020-11-17 22:20:17 +0100
committerGitHub <noreply@github.com>2020-11-17 22:20:17 +0100
commit383c0390370aa52243abfd1189d23b080cbfbb14 (patch)
tree03a8436f3ad7db804ec2a7ae54e559c3fab66efb /Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
parent787e20937fc29884e94497d2ab993ca6cdae7dc6 (diff)
shader cache: Fix invalid virtual address clean up (#1717)
* shader cache: Fix invalid virtual address clean up This fix an issue causing the virtual address of texture descriptors to not be cleaned up when caching and instead cleaning texture format and swizzle. This should fix duplicate high duplication in the cache for certain games and possible texture corruption issues. **THIS WILL INVALIDATE ALL SHADER CACHE LEVELS CONSIDERING THE NATURE OF THE ISSUE** * shader cache: Address gdk's comment
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs6
1 files changed, 3 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
index ac5aedbe..b469aab5 100644
--- a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
+++ b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
@@ -35,9 +35,9 @@ namespace Ryujinx.Graphics.Gpu.Shader
private Dictionary<Hash128, ShaderBundle> _cpProgramsDiskCache;
/// <summary>
- /// Version of the codegen (to be incremented when codegen changes).
+ /// Version of the codegen (to be changed when codegen or guest format change).
/// </summary>
- private const ulong ShaderCodeGenVersion = 1;
+ private const ulong ShaderCodeGenVersion = 1717;
/// <summary>
/// Creates a new instance of the shader cache.
@@ -888,7 +888,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
foreach (int textureHandle in textureHandlesInUse)
{
- GuestTextureDescriptor textureDescriptor = gpuAccessor.GetTextureDescriptor(textureHandle).ToCache();
+ GuestTextureDescriptor textureDescriptor = ((Image.TextureDescriptor)gpuAccessor.GetTextureDescriptor(textureHandle)).ToCache();
textureDescriptor.Handle = (uint)textureHandle;