diff options
author | gdkchan <gab.dark.100@gmail.com> | 2021-07-06 16:20:06 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-06 21:20:06 +0200 |
commit | d125fce3e8c780c042040ac8064155cd6751d353 (patch) | |
tree | df64688dd517a858517da7b4da83871b59e6268b /Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs | |
parent | b0ac1ade7fcde04f15384a329a0eca5ae9ed5065 (diff) |
Allow shader language and target API to be specified on the shader translator (#2402)
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs index efb0503c..46a6ba98 100644 --- a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs +++ b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs @@ -192,7 +192,8 @@ namespace Ryujinx.Graphics.Gpu.Shader { IGpuAccessor gpuAccessor = new CachedGpuAccessor(_context, entry.Code, entry.Header.GpuAccessorHeader, entry.TextureDescriptors); - program = Translator.CreateContext(0, gpuAccessor, DefaultFlags | TranslationFlags.Compute).Translate(out shaderProgramInfo); + var options = new TranslationOptions(TargetLanguage.Glsl, TargetApi.OpenGL, DefaultFlags | TranslationFlags.Compute); + program = Translator.CreateContext(0, gpuAccessor, options).Translate(out shaderProgramInfo); }); task.OnTask(compileTask, (bool _, ShaderCompileTask task) => @@ -298,8 +299,11 @@ namespace Ryujinx.Graphics.Gpu.Shader { IGpuAccessor gpuAccessor = new CachedGpuAccessor(_context, entry.Code, entry.Header.GpuAccessorHeader, entry.TextureDescriptors); - TranslatorContext translatorContext = Translator.CreateContext(0, gpuAccessor, flags, counts); - TranslatorContext translatorContext2 = Translator.CreateContext((ulong)entry.Header.Size, gpuAccessor, flags | TranslationFlags.VertexA, counts); + var options = new TranslationOptions(TargetLanguage.Glsl, TargetApi.OpenGL, flags); + var options2 = new TranslationOptions(TargetLanguage.Glsl, TargetApi.OpenGL, flags | TranslationFlags.VertexA); + + TranslatorContext translatorContext = Translator.CreateContext(0, gpuAccessor, options, counts); + TranslatorContext translatorContext2 = Translator.CreateContext((ulong)entry.Header.Size, gpuAccessor, options2, counts); program = translatorContext.Translate(out shaderProgramInfo, translatorContext2); } @@ -323,7 +327,8 @@ namespace Ryujinx.Graphics.Gpu.Shader { IGpuAccessor gpuAccessor = new CachedGpuAccessor(_context, entry.Code, entry.Header.GpuAccessorHeader, entry.TextureDescriptors); - program = Translator.CreateContext(0, gpuAccessor, flags, counts).Translate(out shaderProgramInfo); + var options = new TranslationOptions(TargetLanguage.Glsl, TargetApi.OpenGL, flags); + program = Translator.CreateContext(0, gpuAccessor, options, counts).Translate(out shaderProgramInfo); } shaders[i] = new ShaderCodeHolder(program, shaderProgramInfo, entry.Code); @@ -851,7 +856,8 @@ namespace Ryujinx.Graphics.Gpu.Shader GpuAccessor gpuAccessor = new GpuAccessor(_context, state, localSizeX, localSizeY, localSizeZ, localMemorySize, sharedMemorySize); - return Translator.CreateContext(gpuVa, gpuAccessor, DefaultFlags | TranslationFlags.Compute); + var options = new TranslationOptions(TargetLanguage.Glsl, TargetApi.OpenGL, DefaultFlags | TranslationFlags.Compute); + return Translator.CreateContext(gpuVa, gpuAccessor, options); } /// <summary> @@ -880,7 +886,8 @@ namespace Ryujinx.Graphics.Gpu.Shader GpuAccessor gpuAccessor = new GpuAccessor(_context, state, (int)stage - 1); - return Translator.CreateContext(gpuVa, gpuAccessor, flags, counts); + var options = new TranslationOptions(TargetLanguage.Glsl, TargetApi.OpenGL, flags); + return Translator.CreateContext(gpuVa, gpuAccessor, options, counts); } /// <summary> |