From ba682fdd4be09d4a6a6fa35cd23da5fbe39ff0fc Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Mon, 13 Mar 2023 15:19:36 -0400 Subject: [PATCH] Shader cleanup --- indra/llrender/llshadermgr.cpp | 24 +++++++++++++++++-- .../shaders/class1/alchemy/CASF.glsl | 20 ++++++++-------- .../shaders/class1/alchemy/DLSF.glsl | 20 ++++++++-------- .../shaders/class1/alchemy/postNoTCV.glsl | 2 +- .../shaders/class1/alchemy/toneMapF.glsl | 8 +++---- 5 files changed, 47 insertions(+), 27 deletions(-) diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index 5b8c2394b6b..dbd81396d32 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -619,11 +619,31 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev { if (major_version >= 4) { - //set version to 400 or 420 - if (minor_version >= 20) + //set versions 400 through 460 + if (minor_version <= 69) + { + shader_code_text[shader_code_count++] = strdup("#version 460\n"); + } + else if (minor_version <= 59) + { + shader_code_text[shader_code_count++] = strdup("#version 450\n"); + } + else if (minor_version <= 49) + { + shader_code_text[shader_code_count++] = strdup("#version 440\n"); + } + else if (minor_version <= 39) + { + shader_code_text[shader_code_count++] = strdup("#version 430\n"); + } + else if (minor_version <= 29) { shader_code_text[shader_code_count++] = strdup("#version 420\n"); } + else if (minor_version <= 19) + { + shader_code_text[shader_code_count++] = strdup("#version 410\n"); + } else { shader_code_text[shader_code_count++] = strdup("#version 400\n"); diff --git a/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl b/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl index 2a1c9942c4a..5b5590cbd96 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl @@ -33,7 +33,7 @@ out vec4 frag_color; #define frag_color gl_FragColor #endif -VARYING vec2 vary_fragcoord; +in vec2 vary_fragcoord; uniform sampler2D tex0; @@ -64,18 +64,18 @@ void main() // a b c // d(e)f // g h i - vec4 inputColor = texture2DLod(tex0, vary_fragcoord, 0.0f); + vec4 inputColor = textureLod(tex0, vary_fragcoord, 0.0f); float alpha = inputColor.a; - vec3 a = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2(-1,-1)).rgb; - vec3 b = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 0,-1)).rgb; - vec3 c = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 1,-1)).rgb; - vec3 d = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2(-1, 0)).rgb; + vec3 a = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2(-1,-1)).rgb; + vec3 b = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 0,-1)).rgb; + vec3 c = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 1,-1)).rgb; + vec3 d = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2(-1, 0)).rgb; vec3 e = inputColor.rgb; - vec3 f = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 1, 0)).rgb; - vec3 g = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2(-1, 1)).rgb; - vec3 h = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 0, 1)).rgb; - vec3 i = texture2DLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 1, 1)).rgb; + vec3 f = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 1, 0)).rgb; + vec3 g = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2(-1, 1)).rgb; + vec3 h = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 0, 1)).rgb; + vec3 i = textureLodOffset(tex0, vary_fragcoord, 0.0f, ivec2( 1, 1)).rgb; // Soft min and max. // a b c b diff --git a/indra/newview/app_settings/shaders/class1/alchemy/DLSF.glsl b/indra/newview/app_settings/shaders/class1/alchemy/DLSF.glsl index ff5073758c7..bbe1eb5fa3f 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/DLSF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/DLSF.glsl @@ -34,7 +34,7 @@ out vec4 frag_color; #define frag_color gl_FragColor #endif -VARYING vec2 vary_fragcoord; +in vec2 vary_fragcoord; uniform sampler2D tex0; @@ -86,17 +86,17 @@ void main() ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - vec4 x = texture2DLod(tex0, vary_fragcoord, 0.f); + vec4 x = textureLod(tex0, vary_fragcoord, 0.f); - vec4 a = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2(-1, 0)); - vec4 b = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 1, 0)); - vec4 c = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 0, 1)); - vec4 d = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 0, -1)); + vec4 a = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2(-1, 0)); + vec4 b = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 1, 0)); + vec4 c = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 0, 1)); + vec4 d = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 0, -1)); - vec4 e = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2(-1, -1)); - vec4 f = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 1, 1)); - vec4 g = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2(-1, 1)); - vec4 h = texture2DLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 1, -1)); + vec4 e = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2(-1, -1)); + vec4 f = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 1, 1)); + vec4 g = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2(-1, 1)); + vec4 h = textureLodOffset(tex0, vary_fragcoord, 0.0, ivec2( 1, -1)); float lx = GetLuma(x); diff --git a/indra/newview/app_settings/shaders/class1/alchemy/postNoTCV.glsl b/indra/newview/app_settings/shaders/class1/alchemy/postNoTCV.glsl index 5f1e9468ce0..c108e89c2f7 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/postNoTCV.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/postNoTCV.glsl @@ -23,7 +23,7 @@ */ ATTRIBUTE vec3 position; -VARYING vec2 vary_fragcoord; +out vec2 vary_fragcoord; void main() { diff --git a/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl b/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl index f04ef631f9b..d21cce5f22e 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl @@ -30,7 +30,7 @@ out vec4 frag_color; #define frag_color gl_FragColor #endif -VARYING vec2 vary_fragcoord; +in vec2 vary_fragcoord; uniform sampler2D diffuseRect; uniform sampler2D bloomMap; @@ -293,9 +293,9 @@ vec3 legacyGamma(vec3 color) void main() { - vec4 diff = texture2D(diffuseRect, vary_fragcoord); + vec4 diff = texture(diffuseRect, vary_fragcoord); - // vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res); + // vec4 bloom = texture(bloomMap, vary_fragcoord.xy/screen_res); // diff.rgb += bloom.rgb; #if TONEMAP_METHOD != 0 @@ -357,7 +357,7 @@ void main() //see https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter24.html vec3 scale = (vec3(colorgrade_lut_size.x) - 1.0) / vec3(colorgrade_lut_size.x); vec3 offset = 1.0 / (2.0 * vec3(colorgrade_lut_size.x)); - diff = vec4(linear_to_srgb(texture3DLod(colorgrade_lut, scale * diff.rgb + offset, 0).rgb), diff.a); + diff = vec4(linear_to_srgb(textureLod(colorgrade_lut, scale * diff.rgb + offset, 0).rgb), diff.a); #endif diff.rgb = legacyGamma(diff.rgb); -- GitLab