summaryrefslogtreecommitdiff
path: root/indra/llrender/llshadermgr.cpp
diff options
context:
space:
mode:
authorCosmic Linden <cosmic@lindenlab.com>2023-02-24 13:53:55 -0800
committerCosmic Linden <cosmic@lindenlab.com>2023-02-24 13:53:55 -0800
commit33085b9d830ac1db280d678760b3972798aa1129 (patch)
tree201019101a92305f22980537b8c5ab4390c9611c /indra/llrender/llshadermgr.cpp
parenta7ecfc9b1907d6ecd5fe50aeb1c41e38540b2665 (diff)
SL-19265: Fix precision issue with texture transforms by moving transform matrix calculation into the shader
Diffstat (limited to 'indra/llrender/llshadermgr.cpp')
-rw-r--r--indra/llrender/llshadermgr.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index 13074032e0..c355115e8c 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -1073,11 +1073,21 @@ void LLShaderMgr::initAttribsAndUniforms()
mReservedUniforms.push_back("texture_matrix3");
mReservedUniforms.push_back("object_plane_s");
mReservedUniforms.push_back("object_plane_t");
- mReservedUniforms.push_back("texture_basecolor_matrix"); // GLTF
- mReservedUniforms.push_back("texture_normal_matrix"); // GLTF
- mReservedUniforms.push_back("texture_metallic_roughness_matrix"); // GLTF
- mReservedUniforms.push_back("texture_emissive_matrix"); // GLTF
- llassert(mReservedUniforms.size() == LLShaderMgr::TEXTURE_EMISSIVE_MATRIX+1);
+
+ mReservedUniforms.push_back("texture_base_color_scale"); // (GLTF)
+ mReservedUniforms.push_back("texture_base_color_rotation"); // (GLTF)
+ mReservedUniforms.push_back("texture_base_color_offset"); // (GLTF)
+ mReservedUniforms.push_back("texture_normal_scale"); // (GLTF)
+ mReservedUniforms.push_back("texture_normal_rotation"); // (GLTF)
+ mReservedUniforms.push_back("texture_normal_offset"); // (GLTF)
+ mReservedUniforms.push_back("texture_metallic_roughness_scale"); // (GLTF)
+ mReservedUniforms.push_back("texture_metallic_roughness_rotation"); // (GLTF)
+ mReservedUniforms.push_back("texture_metallic_roughness_offset"); // (GLTF)
+ mReservedUniforms.push_back("texture_emissive_scale"); // (GLTF)
+ mReservedUniforms.push_back("texture_emissive_rotation"); // (GLTF)
+ mReservedUniforms.push_back("texture_emissive_offset"); // (GLTF)
+
+ llassert(mReservedUniforms.size() == LLShaderMgr::TEXTURE_EMISSIVE_OFFSET+1);
mReservedUniforms.push_back("viewport");