[webkit-dev] Help regarding rendering in webkit2 port of haiku

Adrien Destugues pulkomandy at pulkomandy.tk
Mon Jun 10 00:33:30 PDT 2019


On Mon, Jun 10, 2019 at 09:37:06AM +0300, Noam Rosenthal wrote:
> ~ (reposting from webkit email)

Hi,

I should pprobably give a little more context here, as the maintainer of
the WebKitLegacy port for Haiku.

Our main concern, as Rajagopalan mentionned, is that Haiku does not have
any rendering acceleration, it's all done in software. We do have OpenGL
but it may not be the best choice for rendering, because of this.

As a result, we had to find a way to get things working, in what is
indeed a little unusual setup. Currently we have coordinated graphics
disabled:

Source/cmake/OptionsHaiku.cmake:add_definitions(-DUSE_COORDINATED_GRAPHICS=0)

We do however have a software rendering version of texture mapper, that
was removed from webkit long time ago but we kept because we didn't want
to use the OpenGL version. I have not reviewed its use recently, maybe
it is not needed anymore.

Another limitation we hit on some websites is that it is not possible
for us to create too many drawable offscreen bitmaps. There is a
system-wide limit of 4096, which can be hit rather easily on Google
Maps, for example. So we will probably need a way to limit the use of
drawable bitmaps when possible. Maybe coordinated graphics would help
here, if it allows to share a single drawing context and bitmap, rather
than creating a separate one for each rendering layer.

On the way drawing works for us: the drawing primitives are all
implemented in our display server, there is no rendering done client
side in webkit processes. This means the display server has a pointer to
the bitmap data already, and ideally it would be able to pass this from
one application to another without needing to copy all the data. We may
need to make some changes to our display server to allow this, but
that's fine (it's the nice thing about Haiku, if we need to change
something in the OS, we can do that easily).

Now we have to find out if coordinated graphics or some other way to do
things makes sense, and for this we have to understand how the rendering
work is split between web process and ui process, and what kind of data
they expect to exchange between them. Especially in our case where the
bitmap data is in fact already shared with the OS display server, so if
UI process does not do any drawing by itself, it doesn't actually need
to access the data.

-- 
Adrien.


More information about the webkit-dev mailing list