summaryrefslogtreecommitdiff
path: root/indra/llrender
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-02-07 16:00:21 -0800
committerGraham Linden <graham@lindenlab.com>2019-02-07 16:00:21 -0800
commit90f9078d1f931774b5a6e866e26f4e0294f1e2d1 (patch)
treecda33deb2d8c4c9c5458aae4c39a60a6de09ca9b /indra/llrender
parent43327798dec61590dc256697771e0423eb1ece9c (diff)
SL-10486, SL-10501, SL-10487
Make moon texture from default daycycle the default moon texture id and use it for the default and blank assets in the picker. Fix handling of MM_TEXTURE to correctly detect when texture units outside the range 0-3 are used with texture matrix ops to prevent mem overwrite bug and/or asserts.
Diffstat (limited to 'indra/llrender')
-rw-r--r--indra/llrender/llrender.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 173444f708..de04ea601a 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -1477,6 +1477,13 @@ void LLRender::matrixMode(U32 mode)
{
if (mode == MM_TEXTURE)
{
+ U32 tex_index = gGL.getCurrentTexUnitIndex();
+ // the shaders don't actually reference anything beyond texture_matrix0/1
+ if (tex_index > 3)
+ {
+ LL_WARNS_ONCE("render") << "Cannot use texture matrix with texture unit " << tex_index << " forcing texture matrix 3!" << LL_ENDL;
+ tex_index = 3;
+ }
mode = MM_TEXTURE0 + gGL.getCurrentTexUnitIndex();
}