From 82a5af56c6d24ff113119bcb55d396e6fb1a7f04 Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Wed, 15 Mar 2023 10:56:34 -0400 Subject: [PATCH] More ALRenderUtil cleanup --- indra/newview/alrenderutils.cpp | 16 +++++++-------- .../shaders/class1/alchemy/CASF.glsl | 20 +++++++++---------- .../shaders/class1/alchemy/DLSF.glsl | 20 +++++++++---------- .../shaders/class1/alchemy/toneMapF.glsl | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/indra/newview/alrenderutils.cpp b/indra/newview/alrenderutils.cpp index d3dd56d5cf8..e51b98a9d0e 100644 --- a/indra/newview/alrenderutils.cpp +++ b/indra/newview/alrenderutils.cpp @@ -464,13 +464,13 @@ bool ALRenderUtil::setupColorGrade() case 3: { primary_format = GL_RGB; - int_format = GL_SRGB8; + int_format = GL_RGB8; break; } case 4: { primary_format = GL_RGBA; - int_format = GL_SRGB8_ALPHA8; + int_format = GL_RGBA8; break; } default: @@ -493,12 +493,9 @@ bool ALRenderUtil::setupColorGrade() stop_glerror(); glTexImage3D(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE_3D), 0, int_format, image_height, image_height, image_height, 0, primary_format, GL_UNSIGNED_BYTE, raw_image->getData()); stop_glerror(); - glGenerateMipmap(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE_3D)); - stop_glerror(); } gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP); - gGL.getTexUnit(0)->setTextureColorSpace(LLTexUnit::TCS_LINEAR); gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE_3D); } else @@ -577,7 +574,6 @@ void ALRenderUtil::renderTonemap(LLRenderTarget* src, LLRenderTarget* dst, LLRen gGL.getTexUnit(channel)->bindManual(LLTexUnit::TT_TEXTURE_3D, mCGLut); gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); gGL.getTexUnit(channel)->setTextureAddressMode(LLTexUnit::TAM_CLAMP); - gGL.getTexUnit(channel)->setTextureColorSpace(LLTexUnit::TCS_LINEAR); } tone_shader->uniform4fv(LLShaderMgr::COLORGRADE_LUT_SIZE, 1, mCGLutSize.mV); @@ -668,9 +664,13 @@ void ALRenderUtil::renderSharpen(LLRenderTarget* src, LLRenderTarget* dst) sharpen_shader->bind(); - // Draw - src->bindTexture(0, 0, LLTexUnit::TFO_POINT); + S32 channel = sharpen_shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, src->getUsage()); + if (channel > -1) + { + src->bindTexture(0, channel, LLTexUnit::TFO_POINT); + } + // Draw mRenderBuffer->setBuffer(); mRenderBuffer->drawArrays(LLRender::TRIANGLES, 0, 3); diff --git a/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl b/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl index 5b5590cbd96..8b8ddb1d625 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/CASF.glsl @@ -35,7 +35,7 @@ out vec4 frag_color; in vec2 vary_fragcoord; -uniform sampler2D tex0; +uniform sampler2D diffuseRect; uniform vec3 sharpen_params = vec3(1.0, 0.5, 0.0); @@ -64,18 +64,18 @@ void main() // a b c // d(e)f // g h i - vec4 inputColor = textureLod(tex0, vary_fragcoord, 0.0f); + vec4 inputColor = textureLod(diffuseRect, vary_fragcoord, 0.0f); float alpha = inputColor.a; - 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 a = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2(-1,-1)).rgb; + vec3 b = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2( 0,-1)).rgb; + vec3 c = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2( 1,-1)).rgb; + vec3 d = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2(-1, 0)).rgb; vec3 e = inputColor.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; + vec3 f = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2( 1, 0)).rgb; + vec3 g = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2(-1, 1)).rgb; + vec3 h = textureLodOffset(diffuseRect, vary_fragcoord, 0.0f, ivec2( 0, 1)).rgb; + vec3 i = textureLodOffset(diffuseRect, 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 bbe1eb5fa3f..9c50f84735d 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/DLSF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/DLSF.glsl @@ -36,7 +36,7 @@ out vec4 frag_color; in vec2 vary_fragcoord; -uniform sampler2D tex0; +uniform sampler2D diffuseRect; uniform vec3 sharpen_params; @@ -86,17 +86,17 @@ void main() ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - vec4 x = textureLod(tex0, vary_fragcoord, 0.f); + vec4 x = textureLod(diffuseRect, vary_fragcoord, 0.f); - 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 a = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2(-1, 0)); + vec4 b = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2( 1, 0)); + vec4 c = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2( 0, 1)); + vec4 d = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2( 0, -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)); + vec4 e = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2(-1, -1)); + vec4 f = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2( 1, 1)); + vec4 g = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2(-1, 1)); + vec4 h = textureLodOffset(diffuseRect, vary_fragcoord, 0.0, ivec2( 1, -1)); float lx = GetLuma(x); diff --git a/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl b/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl index 31d3f3bcdc4..d7116b1b584 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl @@ -354,7 +354,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(textureLod(colorgrade_lut, scale * diff.rgb + offset, 0).rgb), diff.a); + diff = vec4(textureLod(colorgrade_lut, scale * diff.rgb + offset, 0).rgb, diff.a); #endif diff.rgb = legacyGamma(diff.rgb); -- GitLab