[webkit-dev] WebKit GPU rendering possibility

Myles C. Maxfield mmaxfield at apple.com
Wed Nov 2 16:30:10 PDT 2016


This is certainly interesting work! I have a few questions about the approach of this renderer.

1. What API is this on top of? OpenGL? Metal? Vulkan? Raw GPU commands[1]?
2. You mention in your video that you have already migrated Cairo on top of your new tech. Traditionally, a web engine is divorced from a 2D rendering engine such as Cairo. Why can’t the ports of WebKit which use Cairo get this new tech without any change?
3. What sort of API changes do you have in mind to make GraphicsContext adopt?
4. Out of curiosity, does the renderer implement 3D transforms? Did you have to implement 3-D triangle subdivision along intersections (perhaps for order-independent transparency)?
5. Which algorithm did you choose to draw text?

Historically, the WebKit team has hesitated to allow experiments in the OpenSource repository. Traditionally, this sort of exploratory work is done in a branch, and only after it has proved to be an improvement, the work is adopted on trunk.


[1] https://01.org/linuxgraphics/documentation/hardware-specification-prms <https://01.org/linuxgraphics/documentation/hardware-specification-prms>

> On Nov 2, 2016, at 9:35 AM, Rogovin, Kevin <kevin.rogovin at intel.com> wrote:
> Hi,
> I was directed here by some colleagues as this is the place to post the following to get started on the following proposal.
> I have been working on an experimental 2D renderer that requires a GPU, the project is open sourced on github at https://github.com/01org/fastuidraw <https://github.com/01org/fastuidraw>. I gave a talk at the X Developers Conference this year which can be seen from https://www.x.org/wiki/Events/XDC2016/Program/rogovin_fast_ui_draw/ <https://www.x.org/wiki/Events/XDC2016/Program/rogovin_fast_ui_draw/> .
> I made a benchmark which makes heavy use of rotations and clipping and ported to SKIA, Qt’s QPainter and Cairo. The benchmark and its ports are in the git repo linked above under the branch with_ports_of_painter-cells. It's performance advantage of FastUIDraw against the other renderers was quite severe (against Cairo and Qt's QPainter over 9 times and against SKIA about 5 times faster).
> I would like to explore the option of using FastUIDraw to implement a WebCore::GraphicsContext backend for the purpose of making drawing faster and more efficient on Intel devices that are equipped with a GPU. I also think that some minor modifications to WebKit’s use of GraphicsContext will also give some benefits. I have worked on WebKit a few years ago and knew/know my way around the rendering code very well (atleast at that time).
> Looking forward to collaboration,
> -Kevin Rogovin
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
> https://lists.webkit.org/mailman/listinfo/webkit-dev <https://lists.webkit.org/mailman/listinfo/webkit-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-dev/attachments/20161102/1d4d8043/attachment.html>

More information about the webkit-dev mailing list