Mobile/SkiaGL: Difference between revisions
< Mobile
Jump to navigation
Jump to search
| Line 14: | Line 14: | ||
** did another rebase, not worth it | ** did another rebase, not worth it | ||
** talked to bjacob about gl context ownership | ** talked to bjacob about gl context ownership | ||
** fixed GrContext ownership and refcounting, will land now that it doesn't break tests | |||
* bjacob | * bjacob | ||
** see https://wiki.mozilla.org/Mobile/SkiaGL#ownership_model | ** see https://wiki.mozilla.org/Mobile/SkiaGL#ownership_model | ||
Revision as of 00:28, 12 June 2013
Bugs
43 Total; 1 Open (2.33%); 42 Resolved (97.67%); 0 Verified (0%);
Meetings
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
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
Current:
_ _ _ _ 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.
Ideal world from CanvasRenderingContext2D perspective:
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.