aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-08-12 15:59:24 -0300
committerGitHub <noreply@github.com>2021-08-12 15:59:24 -0300
commiteb181425b16567eea5c67d696f9236f868b40e92 (patch)
tree8fa55ad2e58465e6b99b73657a31a127b20b9816
parent8196086f7a61f39f6177e7988a371136c7301870 (diff)
Fix size of cached compute shaders (#2548)
* Fix size of cached compute shaders * Missed one
-rw-r--r--Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
index 5b08593e..91edbf2a 100644
--- a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
+++ b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
@@ -179,7 +179,9 @@ namespace Ryujinx.Graphics.Gpu.Shader
program = new ShaderProgram(entry.Header.Stage, "");
shaderProgramInfo = hostShaderEntries[0].ToShaderProgramInfo();
- ShaderCodeHolder shader = new ShaderCodeHolder(program, shaderProgramInfo, entry.Code);
+ byte[] code = entry.Code.AsSpan().Slice(0, entry.Header.Size - entry.Header.Cb1DataSize).ToArray();
+
+ ShaderCodeHolder shader = new ShaderCodeHolder(program, shaderProgramInfo, code);
_cpProgramsDiskCache.Add(key, new ShaderBundle(hostProgram, shader));
@@ -214,7 +216,9 @@ namespace Ryujinx.Graphics.Gpu.Shader
return true; // Exit early, the decoding step failed.
}
- ShaderCodeHolder shader = new ShaderCodeHolder(program, shaderProgramInfo, entry.Code);
+ byte[] code = entry.Code.AsSpan().Slice(0, entry.Header.Size - entry.Header.Cb1DataSize).ToArray();
+
+ ShaderCodeHolder shader = new ShaderCodeHolder(program, shaderProgramInfo, code);
Logger.Info?.Print(LogClass.Gpu, $"Host shader {key} got invalidated, rebuilding from guest...");