Closed Bug 939709 Opened 6 years ago Closed 4 years ago

Replace Cairo and CoreGraphics with Skia

Categories

(Core :: Graphics, defect)

x86
All
defect
Not set

Tracking

()

RESOLVED DUPLICATE of bug 1207332

People

(Reporter: gal, Unassigned)

References

(Blocks 1 open bug)

Details

This is the first iteration of the plan. Updates/refines to follow (the CG part is still missing) and we will break out the actual work into dependent bugs.

Project - Linux Preparation
Start Date: Can be started now.
End Date: TBD
Build libxul for Gtk2
Build plug-in container for Gkt2 plug-ins
Build Themes with Gtk3
Set things up so that Gecko build uses Gtk3 while the plug-ins are still using Gtk2
Fix any tests and performance regressions
Land the patches.
Design and code reviews will be done by Jeff Muizelaar and Karl Tomlinson.

Project - Linux Cairo X11 to Cairo SW
Start Date: Can be started now, in parallel with Linux Preparation.
End Date: TBD - finishing this does depend on Linux Preparation completion
set gfx.xrender.enabled preference to false (all.js)
Eliminate readbacks due to themes
Fix any automated tests and performance regressions.  Some performance regressions may be approved.
Perform manual test sweep (as defined by QA) and fix any functional or performance regressions.
Remove gfxXlibSurface and related code
Remove X11 dependencies in the graphics layers code.
Remove handling of cairo_xlib_surface from Moz2D
Land the patches.
Design and code reviews will be done by Jeff Muizelaar

Project - Linux Cairo SW to Skia SW
Start Date: After December 9th (font containers) and after "Linux to Cairo SW" project (see above) is completed. 
End Date: TBD
Set the gfx.content.azure.backends preference on Linux (all.js) to skia.
Fix any automated tests and performance regressions compared to Linux Cairo X11 and Linux Cairo SW.
Perform manual test sweep (as defined by QA) and fix any functional or performance regressions.
Land all the patches. 
Design and code reviews will be done by Jeff Muizelaar and Karl Tomlinson.

Project - B2G Cairo SW to Skia SW
Start Date: After December 9th (font containers)
End Date: TBD
Set the gfx.content.azure.backends preference on B2G (b2g.js) to skia.
Triage the test problems
Fix any automated tests and performance regressions.
Perform manual test sweep (as defined by QA) and fix any functional or performance regressions.
Land the patches.
Design and code reviews primary TBD.

Project - Android Cairo SW to Skia SW
Start Date: After December 9th (font containers)
End Date: TBD
Set the gfx.content.azure.backends preference on Android (all.js) to skia.
Fix any automated tests and performance regressions.
Perform manual test sweep (as defined by QA) and fix any functional or performance regressions.
Land the patches.
Design and code reviews primary TBD.
Note: I am ok with modest performance regressions on Linux. I don't want to over-rotate on Linux performance at this point. Also, Jeff, can you please explain why the Gtk2->Gtk3 transition is a priority?
Flags: needinfo?(jmuizelaar)
This bug contains a bunch of individual work that is probably also a good starting point:

https://bugzilla.mozilla.org/show_bug.cgi?id=687187
Flags: needinfo?(jmuizelaar)
(In reply to Andreas Gal :gal from comment #1)
> Note: I am ok with modest performance regressions on Linux. I don't want to
> over-rotate on Linux performance at this point. Also, Jeff, can you please
> explain why the Gtk2->Gtk3 transition is a priority?

Gtk2 themes draw directly to X drawables. Gtk3 lets us draw to image surfaces.
Blocks: 1101483
A meta bug to link against Skia work.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: skia-osx
You need to log in before you can comment on or make changes to this bug.