From 5b5239ab5b452f991d9fc4f8ad1f9a2880b8bad1 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Wed, 1 Apr 2020 22:24:55 -0300 Subject: Remove output interpolation qualifier (#1070) --- Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs | 41 ------------------------------ 1 file changed, 41 deletions(-) (limited to 'Ryujinx.Graphics.Gpu/Shader') diff --git a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs index fc4bf778..7ad00f32 100644 --- a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs +++ b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs @@ -145,8 +145,6 @@ namespace Ryujinx.Graphics.Gpu.Shader gpShaders.Shaders[3] = TranslateGraphicsShader(state, ShaderStage.Geometry, addresses.Geometry); gpShaders.Shaders[4] = TranslateGraphicsShader(state, ShaderStage.Fragment, addresses.Fragment); - BackpropQualifiers(gpShaders); - List hostShaders = new List(); for (int stage = 0; stage < gpShaders.Shaders.Length; stage++) @@ -375,45 +373,6 @@ namespace Ryujinx.Graphics.Gpu.Shader return new CachedShader(program, codeCached); } - /// - /// Performs backwards propagation of interpolation qualifiers or later shader stages input, - /// to ealier shader stages output. - /// This is required by older versions of OpenGL (pre-4.3). - /// - /// Graphics shader cached code - private void BackpropQualifiers(GraphicsShader program) - { - ShaderProgram fragmentShader = program.Shaders[4]?.Program; - - bool isFirst = true; - - for (int stage = 3; stage >= 0; stage--) - { - if (program.Shaders[stage] == null) - { - continue; - } - - // We need to iterate backwards, since we do name replacement, - // and it would otherwise replace a subset of the longer names. - for (int attr = 31; attr >= 0; attr--) - { - string iq = fragmentShader?.Info.InterpolationQualifiers[attr].ToGlslQualifier() ?? string.Empty; - - if (isFirst && !string.IsNullOrEmpty(iq)) - { - program.Shaders[stage].Program.Replace($"{DefineNames.OutQualifierPrefixName}{attr}", iq); - } - else - { - program.Shaders[stage].Program.Replace($"{DefineNames.OutQualifierPrefixName}{attr} ", string.Empty); - } - } - - isFirst = false; - } - } - /// /// Gets the primitive topology for the current draw. /// This is required by geometry shaders. -- cgit v1.2.3