Bug 1650389 Comment 2 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

I tested what happen during loading the page with several configration like the followings on my Pixel 3a. Only [8] could succeeded to load the page. All another configration failed to load the pages. Application was killed by lowmemorykiller during loading ImageBitmaps. From it we know that "Use AHardwareBuffer for layer buffer" could reduce memory usage. And there were objects that were waiting to be cycle collected. And use AHardwareBuffer for layer buffer with CompositorOGL uses less memory than WebRender.

-[1] Use Webrendwe + No AHardwareBuffer use
-[2] Use Webrendwe + No AHardwareBuffer use + Add calling nsJSContext::CycleCollectNow() in FromImageBitmap()
-[3] Use Webrendwe + Use AHardwareBuffer for WebGL SharedSurface
-[4] Use Webrendwe + Use AHardwareBuffer for WebGL SharedSurface in FromImageBitmap()
-[5] Use CompositorOGL + No AHardwareBuffer use
-[6] Use CompositorOGL + No AHardwareBuffer + Add calling nsJSContext::CycleCollectNow() in FromImageBitmap()
-[7] Use CompositorOGL + Use AHardwareBuffer for layer buffer
-[8] Use CompositorOGL + Use AHardwareBuffer for layer buffer + Add calling nsJSContext::CycleCollectNow() in FromImageBitmap()
-[9] Use CompositorOGL + Use AHardwareBuffer for WebGL SharedSurface
-[10] Use CompositorOGL + Use AHardwareBuffer for WebGL SharedSurface + Add calling nsJSContext::CycleCollectNow() in FromImageBitmap()
-[11] Use CompositorOGL + Use AHardwareBuffer for layer buffer + Use AHardwareBuffer for WebGL SharedSurface

Back to Bug 1650389 Comment 2