summaryrefslogtreecommitdiffstats
path: root/dom/canvas/WebGLMemoryTracker.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /dom/canvas/WebGLMemoryTracker.cpp
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/canvas/WebGLMemoryTracker.cpp')
-rw-r--r--dom/canvas/WebGLMemoryTracker.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/dom/canvas/WebGLMemoryTracker.cpp b/dom/canvas/WebGLMemoryTracker.cpp
index 361d1be695..19d3847acc 100644
--- a/dom/canvas/WebGLMemoryTracker.cpp
+++ b/dom/canvas/WebGLMemoryTracker.cpp
@@ -12,8 +12,9 @@
#include "WebGLTexture.h"
namespace mozilla {
-
-MOZ_DEFINE_MALLOC_SIZE_OF(WebGLShaderMallocSizeOf)
+namespace webgl {
+MOZ_DEFINE_MALLOC_SIZE_OF(MallocSizeOf)
+} // namespace webgl
void WebGLMemoryTracker::EnsureRegistered() {
static bool sIsRegistered = []() {
@@ -42,6 +43,7 @@ WebGLMemoryTracker::CollectReports(nsIHandleReportCallback* aHandleReport,
int64_t shaderCpuSize = 0;
size_t texCount = 0;
+ size_t texHeapOverhead = 0;
int64_t texGpuSize = 0;
for (const auto& context : contexts) {
@@ -70,7 +72,7 @@ WebGLMemoryTracker::CollectReports(nsIHandleReportCallback* aHandleReport,
shaderCount += context->mShaderMap.size();
for (const auto& pair : context->mShaderMap) {
const auto& shader = pair.second;
- shaderCpuSize += shader->SizeOfIncludingThis(WebGLShaderMallocSizeOf);
+ shaderCpuSize += shader->SizeOfIncludingThis(webgl::MallocSizeOf);
}
// -
@@ -79,6 +81,7 @@ WebGLMemoryTracker::CollectReports(nsIHandleReportCallback* aHandleReport,
for (const auto& pair : context->mTextureMap) {
const auto& texture = pair.second;
texGpuSize += texture->MemoryUsage();
+ texHeapOverhead += texture->SizeOfIncludingThis(webgl::MallocSizeOf);
}
}
@@ -126,10 +129,14 @@ WebGLMemoryTracker::CollectReports(nsIHandleReportCallback* aHandleReport,
"Number of WebGL renderbuffers.");
MOZ_COLLECT_REPORT(
- "explicit/webgl/shader", KIND_HEAP, UNITS_BYTES, shaderCpuSize,
+ "explicit/webgl/shaders", KIND_HEAP, UNITS_BYTES, shaderCpuSize,
"Combined size of WebGL shader ASCII sources and translation logs "
"cached on the heap.");
+ MOZ_COLLECT_REPORT("explicit/webgl/textures", KIND_HEAP, UNITS_BYTES,
+ texHeapOverhead,
+ "WebGLTexture implementation detail overhead.");
+
MOZ_COLLECT_REPORT("webgl-shader-count", KIND_OTHER, UNITS_COUNT,
static_cast<int64_t>(shaderCount),
"Number of WebGL shaders.");