<div dir="ltr">HI All,<div><br></div><div>I am new to github and not sure about github pull request procedure. Appreciate any help</div><div><br></div><div><div>Currently I have pulled buildroot-wpe from igalia</div><div>Have created a local development branch ( forked from master)</div><div>I have submitted one commit to my local development branch.</div></div><div><br></div><div>I am attaching a git formatted patch along with this mail which i want to submit.</div><div><br></div><div>Able to build liwpe and wpewebkit with these changes. Soon i will add cog launcher too.</div><div><br></div><div>Thanks & Regards</div><div>Munez</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 18, 2018 at 5:26 PM Munez Bn <<a href="mailto:munezbn.dev@gmail.com">munezbn.dev@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 17, 2018 at 7:03 PM Adrian Perez de Castro <<a href="mailto:aperez@igalia.com" target="_blank">aperez@igalia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello again,<br>
<br>
On Mon, 17 Sep 2018 14:23:33 +0530, Munez Bn <<a href="mailto:munezbn.dev@gmail.com" target="_blank">munezbn.dev@gmail.com</a>> wrote:<br>
<br>
> Thanks for your reply. Please find my reply below.<br>
> <br>
> On Wed, Sep 12, 2018 at 2:29 AM Adrian Perez de Castro <<a href="mailto:aperez@igalia.com" target="_blank">aperez@igalia.com</a>><br>
> wrote:<br>
> <br>
> > Hello!<br>
> ><br>
> > On Mon, 03 Sep 2018 18:07:38 +0530, Munez Bn <<a href="mailto:munezbn.dev@gmail.com" target="_blank">munezbn.dev@gmail.com</a>><br>
> > wrote:<br>
> ><br>
> > > Few months back I had started using WPE on raspberry PI and I was able to<br>
> > > use the wpebackend-rdk and WPElauncher.<br>
> > ><br>
> > > But now I see that many things have changed.<br>
> > ><br>
> > > WPE webkit has official releases and website now.<br>
> > > Wpelauncher is going to be deprecated.<br>
> ><br>
> > WPELauncher is still using the plain C API, which has *NOT* been available<br>
> > since the 2.19.93 release back in May, five months ago. To use WPELauncher<br>
> > you would need a snapshot of the WPE WebKit source tree from November 2017,<br>
> > and there is no way in which we can responsibly recommend using that: you<br>
> > *want* a recent Web engine if you are going to be loading arbitrary content<br>
> > from the Internet to avoid being hacked due to old security issues.<br>
><br>
> OK so we cant use WPELauncher with latest WpeWebkit.<br>
<br>
Exactly.<br>
<br>
> > > wpebackend is renamed as libwpe<br>
> ><br>
> > The functionality implemented in libwpe is basically the same. The rename<br>
> > was done to avoid confusion. The old name kind of implied that<br>
> > libWPEBackend<br>
> > implemented a backend for WPE, which was far from reality: it provides<br>
> > interfacing between WPE WebKit and the actual backends (like<br>
> > WPEBackend-rdk).<br>
> ><br>
> > WPE WebKit 2.22.0 is going to be released in the following days, and it<br>
> > needs<br>
> > new API in libWPEBackend^W libwpe. It seemed like a good opportunity to do<br>
> > the rename *and* the API change at the same time.<br>
><br>
> Got it<br>
> <br>
> > > wpebackend-fdo is added (doesn't have much idea on this)<br>
> ><br>
> > The idea for the FDO backend is that the backend does not “talk” directly<br>
> > to the display. Instead, it tries to be generic and provides a mechanism to<br>
> > notify the launcher when a frame has been rendered. Then the launcher can<br>
> > use the method it prefers to display the frames. In theory it should be<br>
> > possible to replace many backends with the FDO one, but not much has been<br>
> > done on that front.<br>
><br>
> Sorry , I couldnt get it.  Is FDO a replacement for rdk backend or<br>
> supplement. And also what if i don't want to use wayland. For example RPI<br>
> uses Dispmanx. Can I use FDO + Dispmanx ?  This was possible with<br>
> wpebackend-rdk where I could use RPI port without wayland. I also saw there<br>
> are some BCM ports which uses nexus instead of wayland.<br>
<br>
The FDO backend is just a different backend: it is not a supplement, and it<br>
is not a replacement either. There are multiple backends for WPE because<br>
depending on your needs and the target hardware platform you may want to<br>
choose one or another.<br>
<br>
Regarding Wayland: remember that “Wayland” itself is just a protocol, and it<br>
does not implement any rendering (that is done by the compositor). The Wayland<br>
protocol allows different processes to share resources typically used by user<br>
interfaces (graphics buffers, input events, and so on) and coordinate with<br>
each other.<br>
<br>
The FDO backend uses the Wayland protocol to implement sharing of graphics<br>
buffers between the WPEWebProcess —which does rendering— and the “UI Process”<br>
—which uses the WPE WebKit API, typically the launcher— but nothing else. In<br>
this scenario, the FDO backend makes the WPEWebProcess behave as a Wayland<br>
client which connected to the “UI Process”, and the “UI Process” behaves as a<br>
mini compositor which takes the rendered output from the WPEWebProcess and<br>
provides some API to use the buffers with the frames of rendered content.<br>
<br>
This means that the FDO backend does NOT require a “proper” Wayland compositor<br>
like Weston or GNOME Shell running: the backend only provides rendered frames<br>
to the launcher (or application). In the Cog launcher, the platform plug-in<br>
is what actually takes those frames, and displays them. For the moment we<br>
have only a platform plug-in which sends the frames to a Wayland compositor.<br>
<br>
Let me try with some ASCII art:<br>
<br>
<br>
 .---------------.  Wayland  .-----+--------.  Wayland  .--------.<br>
 | WPEWebProcess |<--------->| Cog | plugin |<--------->| Weston |==> SCREEN<br>
 '---------------'           '-----+--------'           '--------'<br>
        ^^                     ^^      ^^                   ^^<br>
      Wayland              Wayland   Wayland              Wayland<br>
      client               server    client               server<br>
<br>
<br>
Going back to your “Can I use FDO + dispmanx?” question, the answer is: it<br>
should be possible, but nobody has had the time to do it yet. It would be<br>
done by making a Cog platform plug-in which uses Dispmanx directly instead,<br>
so the above diagram would look like this:<br>
<br>
                             .-----+------------.<br>
 .---------------.  Wayland  |     |    plugin  |<br>
 | WPEWebProcess |<--------->| Cog | .----------+<br>
 '---------------'           |     | | Dispmanx |==> SCREEN<br>
        ^^                   '-----+-+----------'<br>
      Wayland                  ^^ <br>
      client               Wayland<br>
                           server <br>
<br>
Note how the FDO backend would still use Wayland as protocol to talk between<br>
the WPEWebProcess and Cog processes, but Cog would directly use the Dispmanx<br>
library. This means that you would still need the Wayland libraries installed<br>
in the system, but no Wayland compositor would be involved: the launcher will<br>
handle the video output directly.<br>
<br></blockquote><div><br></div><div>Thanks. This is very helpful.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> > > I also see a new WPE launcher COG (Not tried yet)<br>
> ><br>
> > Cog is actively maintained, and currently it has good support to use<br>
> > Wayland compositors to display the frames it gets from the FDO backend.<br>
> ><br>
> > Note that there is fallback code in Cog to support old-style backends, and<br>
> > it should be able to use Cog with WPEBackend-rdk on the Raspberry Pi with<br>
> > the following API-compatible versions of the dependencies:<br>
> ><br>
> >   - Cog from the “cog-0.1” branch.<br>
> >   - WPE WebKit 2.20.2<br>
> >   - WPEBackend 0.2.0 (*not* libwpe).<br>
> ><br>
> > You will need to have a “libWPEBackend-default.so” symlink pointing to<br>
> > “libWPEBackend-rdk.so” (the same was needed for WPELauncher as well). I<br>
> > have<br>
> > not tried this setup recently, but it certainly worked fine a couple of<br>
> > months<br>
> > ago.<br>
><br>
> Thanks I will start looking into COG.<br>
<br>
If you run into issues, or have more doubts, please let us know. We'll be<br>
glad to try and help out.<br>
<br></blockquote><div><br></div><div>Sure</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> > > WebPlatformForEmbedded/buildroot is not active much<br>
> > > igalia/buildroot-wpe  overlay is added which doesn't have any launcher<br>
> > > yet or doesn't work yet.<br>
> ><br>
> > We haven't had the time to update the Buildroot repository nor the overlay.<br>
> > Looking forward, the overlay will be preferred, because it's cleaner than<br>
> > forking Buildroot. I hope that the overlay can be updated after making the<br>
> > upcoming WPE WebKit 2.22.0 stable release.<br>
> ><br>
> > In the long term, I have plans to try to have the build recipes merged into<br>
> > upstream Buildroot, but I don't have an estimation of how much time it will<br>
> > take. Sorry.<br>
><br>
> Actually I have started using this overlay. It was not installing WPE , I<br>
> did some modification ( After referring to old Buildroot WPE) and I was<br>
> able to build wpe-webkit. Then I added support for COG in buildroot, but<br>
> compilation is failing because of FDO dependencies. I would like to work on<br>
> this too and if possible I will contribute in this area.<br>
> I want to use wpewebkit with RPI dispmanx from rdk ( I dont want to use<br>
> wayland or westores yet.. )<br>
<br>
If you want to send pull requests our way in GitHub, or share your patches<br>
by e-mail (for example with “git format-patch”) I can take a look. It would<br>
be great to have more people helping out and contributing :-)<br>
<br></blockquote><div><br></div><div>Sure. Once I have working changes, I will send pull request or may be send a patch through mail.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> > Looking all this I have some questions now.<br>
> > ><br>
> > > 1. Is Wpebackend-rdk going to be deprecated or obsoleted ?<br>
> ><br>
> > I don't know, but it doesn't need to be. The RDK backend could be updated<br>
> > to use the new API in WPE WebKit 2.22.0—and I hope the maintainers of the<br>
> > backend will do that at some point, but I cannot speak for them.<br>
> ><br>
> > > 2. What is the launcher I should start looking into as WPElauncher is<br>
> > > getting deprecated.<br>
> ><br>
> > Personally, I would recommend Cog. It is well maintained and it is being<br>
> > used in a few projects already. If the “cog” launcher does not suit your<br>
> > needs, you can reuse the “libcogcore” library to write a new one without<br>
> > having to implement many things. In particular, if you want to use the<br>
> > FDO backend, Cog already includes all the Wayland support code as a<br>
> > plugin.<br>
<br>
I hope this part is clearer now after I tried to expand a bit above on how<br>
things work when using FDO and what Cog platform plugins are for ;-)<br>
<br></blockquote><div>Yes thanks :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> > > 3. wpebackend-fdo is meant for embedded system? Is it running on RPI? Is<br>
> > > it just a backend or includes launcher also?<br>
> ><br>
> > The FDO backend can be used in embedded systems, yes. Personally, I have<br>
> > used it on a RaspberryPi3 with the Weston compositor using the Open<br>
> > Source vc4 driver from Mesa.<br>
> ><br>
> > I *think* that technically should be possible to write a Dispmanx platform<br>
> > plug-in for Cog, and use the FDO backend directly without needing a Wayland<br>
> > compositor. Personally I do not have the time right now, but contributions<br>
> > to make this happen would be super welcome!<br>
> ><br>
> > > 4. Is COG going to be added to WPE buildroot overlay any soon?<br>
> ><br>
> > When I have time to update the overlay after 2.22.0 is released, Cog will<br>
> > be added to the overlay. It's in my to-do list ;-)<br>
><br>
> Like I mentioned above I have added COG and may be I can contribute if<br>
> someone can review. But right now the build is failing because of FDO. I<br>
> want to use COG with wpebackend-rdk.<br>
<br>
Ah, I forgot to mention one more thing this in my previous e-mail: you can<br>
avoid the dependency on the FDO backend passing “-DCOG_PLATFORM_FDO=OFF”<br>
to CMake when configuring Cog. It should be possible to use the RDK backend<br>
(Of course you will still need to patch WPEBackend-rdk to compile with<br>
libwpe-1.0.0, as mentioned by Wouter in his e-mail.)<br>
<br></blockquote><div><br></div><div>Yes i tried with FDO=OFF and compilation was success. I didn't try launching yet, I will try today. I need to patch RDK backend also.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Best regards,<br>
<br>
-Adrián<br>
 _______________________________________________<br>
Do not post admin requests to the list. They will be ignored.<br>
webkit-wpe mailing list      (<a href="mailto:webkit-wpe@lists.webkit.org" target="_blank">webkit-wpe@lists.webkit.org</a>)<br>
Help/Unsubscribe/Update your Subscription:<br>
<a href="https://lists.webkit.org/mailman//listinfo/webkit-wpe" rel="noreferrer" target="_blank">https://lists.webkit.org/mailman//listinfo/webkit-wpe</a><br>
</blockquote></div></div>
</blockquote></div>