layout: Measure stacking context tree in layout thread memory report (#38762)

Measures the memory usage of the stacking context tree in the memory
report of the layout thread by adding `MallocSizeOf` to
`StackingContextTree` and all the types required for that. Also requires
adding `MallocSizeOf` to some webrender types.

Testing: Manually looked at about:memory
<img width="636" height="241" alt="image"
src="https://github.com/user-attachments/assets/6bf9d65a-0bf0-4a99-99b5-ddedba3269c1"
/>

Fixes: https://github.com/servo/servo/issues/38725

---------

Signed-off-by: Rahul Menon <menonrahul02@gmail.com>
This commit is contained in:
Rahul Menon 2025-08-21 02:21:59 -05:00 committed by GitHub
parent 634c1897cf
commit 9cd019403f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 53 additions and 23 deletions

15
Cargo.lock generated
View file

@ -6219,7 +6219,7 @@ dependencies = [
[[package]]
name = "peek-poke"
version = "0.3.0"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"euclid",
"peek-poke-derive",
@ -6228,7 +6228,7 @@ dependencies = [
[[package]]
name = "peek-poke-derive"
version = "0.3.0"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"proc-macro2",
"quote",
@ -7751,6 +7751,7 @@ dependencies = [
"url",
"urlpattern",
"uuid",
"webrender",
"webrender_api",
"wr_malloc_size_of",
]
@ -9687,7 +9688,7 @@ dependencies = [
[[package]]
name = "webrender"
version = "0.66.0"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"allocator-api2",
"bincode",
@ -9722,7 +9723,7 @@ dependencies = [
[[package]]
name = "webrender_api"
version = "0.66.0"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"app_units",
"bitflags 2.9.2",
@ -9743,7 +9744,7 @@ dependencies = [
[[package]]
name = "webrender_build"
version = "0.0.2"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"bitflags 2.9.2",
"lazy_static",
@ -10455,7 +10456,7 @@ dependencies = [
[[package]]
name = "wr_glyph_rasterizer"
version = "0.1.0"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"core-foundation 0.9.4",
"core-graphics",
@ -10480,7 +10481,7 @@ dependencies = [
[[package]]
name = "wr_malloc_size_of"
version = "0.2.0"
source = "git+https://github.com/servo/webrender?branch=0.67#15318d6627e91ec19fc0a44a7434b08673413140"
source = "git+https://github.com/servo/webrender?branch=0.67#428d64dc5c92f157be2b0fd85dc7a6506be77132"
dependencies = [
"app_units",
"euclid",