From cdf248d9860246fd0bee84f700642709fdebbe6e Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 11 Nov 2022 22:45:42 +0200
Subject: [PATCH] SL-18391 Basic gltf material accounting

Plan is to expand it as needed with overrides, request rate and memory
---
 indra/newview/llgltfmateriallist.cpp                 | 6 ++++++
 indra/newview/llviewerstats.cpp                      | 1 +
 indra/newview/llviewerstats.h                        | 1 +
 indra/newview/skins/default/xui/en/floater_stats.xml | 6 ++++++
 4 files changed, 14 insertions(+)

diff --git a/indra/newview/llgltfmateriallist.cpp b/indra/newview/llgltfmateriallist.cpp
index 206be330515..1a059ca9fdf 100644
--- a/indra/newview/llgltfmateriallist.cpp
+++ b/indra/newview/llgltfmateriallist.cpp
@@ -37,6 +37,7 @@
 #include "llviewercontrol.h"
 #include "llviewergenericmessage.h"
 #include "llviewerobjectlist.h"
+#include "llviewerstats.h"
 #include "llcorehttputil.h"
 #include "llagent.h"
 
@@ -626,6 +627,11 @@ void LLGLTFMaterialList::flushMaterials()
     {
         mLastUpdateKey.setNull();
     }
+
+    {
+        using namespace LLStatViewer;
+        sample(NUM_MATERIALS, mList.size());
+    }
 }
 
 // static
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 5d936dfc90d..0be9abadbb2 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -139,6 +139,7 @@ SimMeasurement<LLUnit<F64, LLUnits::Percent> >
 LLTrace::SampleStatHandle<>	FPS_SAMPLE("fpssample"),
 							NUM_IMAGES("numimagesstat"),
 							NUM_RAW_IMAGES("numrawimagesstat"),
+							NUM_MATERIALS("nummaterials"),
 							NUM_OBJECTS("numobjectsstat"),
 							NUM_ACTIVE_OBJECTS("numactiveobjectsstat"),
 							ENABLE_VBO("enablevbo", "Vertex Buffers Enabled"),
diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h
index c21c06256ea..4f0f4f88133 100644
--- a/indra/newview/llviewerstats.h
+++ b/indra/newview/llviewerstats.h
@@ -180,6 +180,7 @@ extern LLTrace::SampleStatHandle<>		FPS_SAMPLE,
 										NUM_IMAGES,
 										NUM_RAW_IMAGES,
 										NUM_OBJECTS,
+										NUM_MATERIALS,
 										NUM_ACTIVE_OBJECTS,
 										ENABLE_VBO,
 										LIGHTING_DETAIL,
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index b9ca0108b6b..9ee161e6113 100644
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -133,6 +133,12 @@
                     label="Bound Mem"
                     stat="glboundmemstat"/>
         </stat_view>
+       <stat_view name="material"
+                  label="Material">
+         <stat_bar name="nummaterials"
+                   label="Count"
+                   stat="nummaterials"/>
+       </stat_view>
 			 <stat_view name="memory"
 									label="Memory Usage">
 				 <stat_bar name="LLTrace"
-- 
GitLab