Просмотр исходного кода

Fix size of cached compute shaders (#2548)

* Fix size of cached compute shaders

* Missed one
gdkchan 4 лет назад
Родитель
Сommit
eb181425b1
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs

+ 6 - 2
Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs

@@ -179,7 +179,9 @@ namespace Ryujinx.Graphics.Gpu.Shader
                                     program = new ShaderProgram(entry.Header.Stage, "");
                                     program = new ShaderProgram(entry.Header.Stage, "");
                                     shaderProgramInfo = hostShaderEntries[0].ToShaderProgramInfo();
                                     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));
                                     _cpProgramsDiskCache.Add(key, new ShaderBundle(hostProgram, shader));
 
 
@@ -214,7 +216,9 @@ namespace Ryujinx.Graphics.Gpu.Shader
                                             return true; // Exit early, the decoding step failed.
                                             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...");
                                         Logger.Info?.Print(LogClass.Gpu, $"Host shader {key} got invalidated, rebuilding from guest...");