From ec9557e4b3e7932c8f9a4c3729de45a8f4cb04f7 Mon Sep 17 00:00:00 2001
From: Cosmic Linden <cosmic@lindenlab.com>
Date: Fri, 9 Dec 2022 18:35:37 -0800
Subject: SL-18740: Fix texture animations not working for GLTF materials

---
 .../newview/app_settings/shaders/class1/deferred/pbralphaV.glsl  | 9 +++++----
 .../newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl | 9 +++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl
index 19bca098e8..a2ad1b70fb 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl
@@ -36,6 +36,7 @@ mat4 getObjectSkinnedTransform();
 uniform mat3 normal_matrix;
 uniform mat4 modelview_projection_matrix;
 #endif
+uniform mat4 texture_matrix0;
 
 #if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND)
   #if !defined(HAS_SKIN)
@@ -92,10 +93,10 @@ void main()
     vary_fragcoord.xyz = vert.xyz + vec3(0,0,near_clip);
 #endif
 
-	basecolor_texcoord = (texture_basecolor_matrix * vec3(texcoord0,1)).xy;
-	normal_texcoord = (texture_normal_matrix * vec3(texcoord0,1)).xy;
-	metallic_roughness_texcoord = (texture_metallic_roughness_matrix * vec3(texcoord0,1)).xy;
-	emissive_texcoord = (texture_emissive_matrix * vec3(texcoord0,1)).xy;
+	basecolor_texcoord = (texture_matrix0 * vec4(texture_basecolor_matrix * vec3(texcoord0,1), 1)).xy;
+	normal_texcoord = (texture_matrix0 * vec4(texture_normal_matrix * vec3(texcoord0,1), 1)).xy;
+	metallic_roughness_texcoord = (texture_matrix0 * vec4(texture_metallic_roughness_matrix * vec3(texcoord0,1), 1)).xy;
+	emissive_texcoord = (texture_matrix0 * vec4(texture_emissive_matrix * vec3(texcoord0,1), 1)).xy;
 
 #ifdef HAS_SKIN
 	vec3 n = (mat*vec4(normal.xyz+position.xyz,1.0)).xyz-pos.xyz;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl
index 25bf19b4ec..5a69da641a 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl
@@ -36,6 +36,7 @@ mat4 getObjectSkinnedTransform();
 uniform mat3 normal_matrix;
 uniform mat4 modelview_projection_matrix;
 #endif
+uniform mat4 texture_matrix0;
 
 uniform mat3 texture_basecolor_matrix;
 uniform mat3 texture_normal_matrix;
@@ -75,10 +76,10 @@ void main()
 	gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0); 
 #endif
 	
-	basecolor_texcoord = (texture_basecolor_matrix * vec3(texcoord0,1)).xy;
-	normal_texcoord = (texture_normal_matrix * vec3(texcoord0,1)).xy;
-	metallic_roughness_texcoord = (texture_metallic_roughness_matrix * vec3(texcoord0,1)).xy;
-	emissive_texcoord = (texture_emissive_matrix * vec3(texcoord0,1)).xy;
+	basecolor_texcoord = (texture_matrix0 * vec4(texture_basecolor_matrix * vec3(texcoord0,1), 1)).xy;
+	normal_texcoord = (texture_matrix0 * vec4(texture_normal_matrix * vec3(texcoord0,1), 1)).xy;
+	metallic_roughness_texcoord = (texture_matrix0 * vec4(texture_metallic_roughness_matrix * vec3(texcoord0,1), 1)).xy;
+	emissive_texcoord = (texture_matrix0 * vec4(texture_emissive_matrix * vec3(texcoord0,1), 1)).xy;
 
 #ifdef HAS_SKIN
 	vec3 n = (mat*vec4(normal.xyz+position.xyz,1.0)).xyz-pos.xyz;
-- 
cgit v1.2.3