Mobile/SkiaGL: Difference between revisions
< Mobile
Jump to navigation
Jump to search
Msreckovic (talk | contribs) |
|||
Line 11: | Line 11: | ||
==Meetings== | ==Meetings== | ||
===7/23/13=== | ===7/23/13=== | ||
* Travel to Skia/Google offices in North Carolina - Aug 5-7 | |||
* peter | * peter | ||
** Memory usage of skiaGL on Bug 864222 | ** Memory usage of skiaGL on Bug 864222 | ||
Line 17: | Line 18: | ||
*** Was caused by async canvas update on b2g | *** Was caused by async canvas update on b2g | ||
** Check any other skiaGL issues on B2G | ** Check any other skiaGL issues on B2G | ||
Revision as of 16:00, 23 July 2013
Bugs
43 Total; 1 Open (2.33%); 42 Resolved (97.67%); 0 Verified (0%);
Meetings
7/23/13
- Travel to Skia/Google offices in North Carolina - Aug 5-7
- peter
- Memory usage of skiaGL on Bug 864222
- Looks like fixed at m-c new rebase skia, will check the detail
- Found the root cause of GL-rendering fps slow on bug 894847 (also happened to 2D canvas)
- Was caused by async canvas update on b2g
- Check any other skiaGL issues on B2G
- Memory usage of skiaGL on Bug 864222
7/9/13
- done
- snorp
- landed
- working on test failures to turn it on
- we're OOM'ing on tegras
- setting cache to 8 textures of 8MB makes things pass
- we should set a small cache size for reftests
- there are still a couple of failures, should be fuzzable
- peter
- looking at fishIE thrashing
- backed out patch from bug 875555
- next
- put the skip-if in for the last failure in R2
- fuzz the failure in R4 and 3 of the tests in R2
- investigate the failure in R3 and the first failure in R2
- fix skia-npapi
6/25/13
- Snorp filed bugs on all mochitest failures
- matt has patch for shadow failures, thought not a complete
- snorp has patch for clip winding failures
- composite failures are due to Skia not implementing advanced blend modes
- George
- working on a new rebase
- image rendering tests are also failing
- will evaluate new rebase to fix advanced renders
- if more than a days worth of work, will land current rebase
- otherwise we'll land the current rebase
- either way the plan is to land this week
- Peter
- FishIE got better on Graphics branch
- trying out Skia debug canvas
- Benoit
- found shutdown leak with valgrind
- backed out the patch from matt woodrow
- plan
- land current skia rebase tomorrow
- image encoding failure we'll mark as fails
6/18/13
- Peter
- looked at wrong color space bug
- fishIE tank
- can see fish
- b2g got 12 fps and the main thread was blocking by DrawTargetSkia::Flush
- snorp
- gal found a bunch of stuff
- found a memory issue with locking and unlocking before returning the pointer, snorp pushed a patch for that
- fishbowl slowed by texture cache (thrashing) making the cache size larger makes it better
- looked at test failures
- failed to talk to vlad
- might need to move mochitests to reftests
- Will schedule time with vlad and bjacob to figure out what we want to do with tests
- gal found a bunch of stuff
- george
- getting us into a landable state
- investigating a failure on a gradient test with software skia on windows
- bjacob
- refactoring ownership model
- see notes for model
- fixed memory leaks and crashes
- bug 884034 Matt Woodrow thinks we're wallpapering over one of the bugs, require a different patch
- webkit and skia initialize ref counts to 1, which is an impedance mismatch with gecko
- next steps
- snorp, vlad and bjacob to talk about test failures
- snorp will arrange
- george will get the graphics branch green
- peter will look at the wrapping issue in fishIE
- peter will use nexus 4 to compare chrome and gecko performance
- snorp, vlad and bjacob to talk about test failures
6/11/13
- George
- did another rebase, not worth it
- talked to bjacob about gl context ownership
- fixed GrContext ownership and refcounting, will land now that it doesn't break tests
- bjacob
- snorp
- tracked down a regression on OSX
- looked at test failures, we're mostly good except for gradients
- current status: https://tbpl.mozilla.org/?tree=Graphics&rev=b59cc8f382e5
- peter
- fix gl stream crash when skiaGL enabled
- fix wrong colorspace (RB Swapped) when skiaGL and HWComposer enabled
- Check gl errors from FishIE
- next steps
- George land everything on trunk, pref's off
- ETA 1-2 weeks
- George will make getting everything fixed on WinXP his priority
- will hold off landing until merge day (June 24)
- Snorp will look at gradient failures
- Bjacob will work on implementing new ownership model
- Peter will focus on FishIE perf
- George land everything on trunk, pref's off
6/4/13
- active work:
- bjacob: draw target leak, valgrind
- gw280: another leak, updated rebased branch to work with m-c, next is fixing intermittent ref test crash in FontHost
- snorp: source surface patch, waiting for review, passes try; nexus 4 still has an issue; next, what is causing mochitest failures, there is some failing composite bugs, but only causes issues with SkiaGL. cache thebes surface? we don't anymore.
- peter: integrate surface texture, opengl, skiagl, b2g is very slow, can't run on unagi
- chiajung: opengl es3 spec for this week, learn how to implement webgl extensions for it
- revisit the rebasing decision
- sec-critical bug (use after free) fixed with the new version
- can't do valgrind fixed with the new version
- delta for mochitests is minimal between current and the August one
- will use the graphics branch, try run tonight on all the make patches
- when will we be done?
- just have to fix the failing tests
- Noah's Arc project should help us test on the supported Fennec phones
- should we continue this meeting?
- very useful when people show up
- we will continue it every week
- will remind people the day before
- if too many people can't make it, we can cancel the meeting
4/30/13
- George to land his rebase on a branch
- please make bugs block the meta bug
- Taipei to look at OOM on mochitests (snorp to send email)
4/25/13
- We want to pick a version of Skia to develop against until we release
- That will either be the current version on m-c or the version that George has rebased
- Results of try run to make decision
- George hopes to have font host up for review tonight
- Peter looking at memory usage
Random Notes
ownership model
Before refactoring: _ _ _ _ CanvasRenderingContext2D / | | | V | regular Gecko stuff | (libxul) GLContext | | ^ | . | ---------------------|----------------------------------- . | . | . V . DrawTargetSkia Moz2D . | . | ---------------------|----------------------------------- . | . V . . . . GrContext Skia Problems: 1. GrContext has a raw pointer to the GLContext, but they live so far away it is hard to ensure that their lifespans match. 2. The GLContext is an implementation detail so it is unfortunate to have the CanvasRenderingContext2D explicitly manage it. Should be abstracted behind the DrawTarget. The plan we were discussing 1-2 weeks ago: 1. Move the ownership of the GLContext to the DrawTarget, so that both it and the Skia stuff that references it, are managed by the DrawTarget, which makes it easier to ensure that their lifespans match. 2. Other benefit: the GLContext is no longer directly exposed to the CanvasRenderingContext2D, it's now abstracted by the DrawTarget. CanvasRenderingContext2D | | | regular Gecko stuff | (libxul) | | | V DrawTargetSkia ----> GLContext | .> | . ---------------------|----------------------------------- | . V . GrContext Skia How we can get to this ideal world without breaking Moz2D's stand-alone characteristics: * add GenericRefPtr / GenericRefCounted classes to MFBT with virtual AddRef / Release (no templates, just a single virtual class). * Hack a way that DrawTarget's generic 'UserData' can be GenericRefCounted. * The result then looks exactly like above diagram, without adding any extra dependency to Moz2D. What we ended up doing: Instead of directly referencing the GLContext, the GrContext only references the DrawTargetSkia referencing it. In this way, the only raw pointer we have is just walking back a strong reference. As planned, DrawTargetSkia references the GLContext by means of a virtual base class, so no dependency is added to Moz2D. CanvasRenderingContext2D | GLContext | ^ | regular Gecko stuff | | (libxul) \ | ----------\----------|----------------------------------- \ | \ | \ | Moz2D \ | \ V DrawTargetSkia ^ | . | ------------------.--|----------------------------------- . | . V GrContext Skia