I have been working on a new hardware acceleration backend for WebKitGtk+ with Clutter. This is an experimental feature, but after I added Clutter, Cogl, Clutter-gtk to WebKit jhbuild module file, you can try to test it more easily wth WebKit upstream.
Building WebKitGtk+ with Clutter
First thing you have to do is to set WEBKIT_EXTRA_MODULES environment variable as follows:
export WEBKIT_EXTRA_MODULES=webkitgtk-clutter-dependencies,libsecret
If you are using Ubuntu12.04, you should also add libsecret.
Before running build-webkkt script, you need to update all dependent libraries of WebKitGtk+ by running update-webkitgtk-libs script.
$ Tools/Scripts/update-webkitgtk-libs
Then, run build-webkit script as follows:
./Tools/Scripts/build-webkit --gtk --with-acceleration-backend=clutter --no-webgl
You can run the WebKitGtk+ launcher with enabling accelerated compositing as follows:
$ ./Tools/Scripts/run-launcher --gtk --enable-accelerated-compositing
Currently, basic features of CSS 3D transforms, and animations are working, but there are many missing features. Actually, the Clutter backend is already working well in WebKit-Clutter port. I worked on this port before, so the WebKit-Clutter development team(Kov, Changseok) and I are porting accelerated composting code of WebKit-Clutter to WebKitGtk+.
Anyway, the Clutter backend is very important because GTK+4.0 is planing to use Clutter or Cogl as a GDK backend. I expect that the Clutter backend may be able to work better with GTK+4.0
Why do this (as well as the X11 surface stuff in WebProcess) instead of using the texmap composited layer implementation?
Also, it seems like it’s been hard for other folks to map all of the layer animation semantics cleanly to another animation system — even the Apple code to use CoreAnimation has been very hacky…