Closed Bug 864222 Opened 11 years ago Closed 11 years ago

[B2G/SkiaGL] With skiaGL enabled, everything.me can't work due to not enough memory

Categories

(Core :: Graphics: Canvas2D, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: pchang, Assigned: pchang)

References

Details

With SkiaGL, launching everything.me caused homescreen app restarted because not enough memory.

About everything.me use case, there are 11 icons (72*87) which require total 36864 B * 11 aligned page size.

Debug any leakage or memory usage limitation of skiaGL.
Summary: [B2G/SkiaGL] With skiaGL enabled, everything.me can't work due to enough memory → [B2G/SkiaGL] With skiaGL enabled, everything.me can't work due to not enough memory
With Leo device, everything.me could run but it took about 80 MB.

Attached with gdb at the following line, it took about 1MB for every breakpoint hit.
http://dxr.mozilla.org/mozilla-central/gfx/2d/DrawTargetSkia.cpp#l279
Assignee: nobody → ayang
Alfredo,
Please do memory profile first. We need to know how many memory occupied by texture fist.

You may not get direct answer of texture size by using memory profile. By looking into pss diff of lib_andreno, you may get a rough size.
About memory consumption after enable skiaGL:

1.
before everything.me
  PID      Vss      Rss      Pss      Uss  cmdline
  10375   46500K   43484K   27371K   18408K  /system/b2g/plugin-container

after everything.me
  PID      Vss      Rss      Pss      Uss  cmdline
  10375  181736K  105924K   89541K   80308K  /system/b2g/plugin-container


2. It will create a lot of memory maps with /dev/kgsl-3d0 under /proc/$FD/maps like followings:

...
...
458e6000-458ee000 rw-s 10370000 00:0a 861        /dev/kgsl-3d0
458ee000-458f6000 rw-s 10378000 00:0a 861        /dev/kgsl-3d0
458f6000-458fe000 rw-s 10380000 00:0a 861        /dev/kgsl-3d0
458fe000-458ff000 rw-s 100a4000 00:0a 861        /dev/kgsl-3d0
458ff000-45900000 rw-s 100a8000 00:0a 861        /dev/kgsl-3d0
...
...

3. Try another simple sample https://github.com/mozilla/openwebapps/tree/develop/examples/mozillaball, it can't display either. But once you move the window, it will diplay a flickering ball.
I created bug 869331 for mozillaball flicker issue and found some hints about the problem.
Disabling Fillglyph() didn't help to save memory

https://mxr.mozilla.org/mozilla-central/source/gfx/2d/DrawTargetSkia.cpp#450
Disable SkiaGL fallback path fix the problem. And disable it can help performance on B2G.
http://mxr.mozilla.org/mozilla-central/source/gfx/skia/src/gpu/SkGpuDevice.cpp#844

(Though I don't know why, but skip this fix some render defect on leo device, too)
reed, 

I found disable fallback path seems reduce memory usage. But there are not config or define for it, I can not find a better way to fix it without touching skia code. Is there any other way for such issue?
Flags: needinfo?(reed)
Assignee: ayang → pchang
Checked with re-based skia on m-c, I could launch everything.me on unagi and leo.
Both devices still had lots of free memory
Status: NEW → RESOLVED
Closed: 11 years ago
Flags: needinfo?(reed)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.