Chrome --mash --ozone-platform=wayland|x11, chromeos=0

796 views
Skip to first unread message

Antonio Gomes

unread,
Oct 11, 2016, 11:28:37 AM10/11/16
to Robert Kroeger, Frédéric Wang, ozon...@chromium.org
Hi Robert.

I would like to share some progresses we have been making on the
proposed collaboration topics.

On Sun, Sep 25, 2016 at 4:08 PM, Robert Kroeger <rjkr...@chromium.org> wrote:
(..)
>> As I understand the situation, on the one hand there is a clear will
>> from Chromium developers to migrate to:
>>
>> (..)
>>
>> ii) Mus for window management.
>
> (..)
>>
>> Or even better, how we can contribute on the effort?
>
> How about the following (these can happen in parallel)
>
> 1. Make Chromium ozone=1, cros=0 on ozone-x11 actually build and work?
> (Maybe this is what Antonio meant in the previous email where I was
> confused?) Anyway: the goal would be to have this kind of Chromium work
> correctly in external-window mode on x11.

Fred and I have been experimenting with this, and got a first working
CL up for review: https://codereview.chromium.org/2408803002/ .

It makes it possible to launch Chromium/mash for
--ozone-platform={wayland | x11} , but not yet in external-window
mode.

In any case, I believe it is be a first step towards the bigger goal
we are discussing here, where Chromium itself would take care of the
window management, etc (i.e. in external-window mode).

> 2. Convert the wayland platform to mojo IPC. (Note that upstreaming this
> code will require security review.)

We started to analyze the current situation for Ozone/Wayland and a
first proposal is available here:

https://people.igalia.com/fwang/ozone-wayland/analysis.html

Basically, the big picture is to copy the work done for the DRM/GBM
platform: separate GPU accelerated drawing, exporting buffers to the
UI as Pixmaps using the Mojo connector and finally on the UI side
passing these buffers to the Wayland display server. Could you please
take a look and indicate whether that makes sense to you?

At the moment, the DRM/GBM code seems a bit complex. It creates
several threads, has code to support Mojo IPC + the old IPC and has
comments indicating changes after the UI/GPU are in separate
processes. Hence it's hard to extract the important pieces that we
could use for Wayland... are you able to clarify which parts we should
focus on?

> At the end of this, we would have a single Chromium build that would run on
> Linux with either an X11 or wayland backend and we might seriously discuss
> making this be the supported Chrome Linux configuration.
>
> As far as helping with the mus process split and ancillary work: it's maybe
> not very easy to contribute to that as it seems to require a lot of
> communication and shared knowledge. There will be a bunch of bugs to pick up
> over the next few weeks though as we (finally) get the bugs organized.

Sounds good. Looking forward to have our hands dirty with it.

>> On the other hand, people are willing to upstream Intel's Ozone backend
>> for Wayland but the current implementation does not use Mojo
>> communication and only works for the non-mus path. Hence the question is
>> whether old IPC and/or the non-mus path should be considered in the
>> short term?
>
>
> I'd say no. Without "external-window" mode, wayland Chromium would seem to
> be a demo but not something that we could imagine shipping for Chrome.
>

--
--Antonio & Fred

Antonio Gomes

unread,
Oct 17, 2016, 10:57:08 AM10/17/16
to Robert Kroeger, Frédéric Wang, ozon...@chromium.org
(moving this part of the discussiong off of the "Buildbots for Ozone?" thread)

On Sun, Oct 16, 2016 at 4:52 PM, Robert Kroeger <rjkr...@chromium.org> wrote:
> (..)
>
> If we don't want to add a brand new builder/CQ stack, then I see two choices
> (but maybe I'm missing some?)

I remember you asked me to share the plan in ozone-dev (see IRC
conversation quoted at the bottom of the email), so here it goes..

The choices below are paired up with what Fred and I have in mind too,
whereas the later is our favorite:

> * add ozone=true, ozone_x11=true, mus configuration to Linux Chrome and it
> runs in this mode when enabled by a command line flag.
>
> * add a new no-ash external-window mode to CrOS Chrome enabled by a sibling
> flag to --mash.
>
> It's not clear to me which of these is better. I think Antonio's current
> patch is better aligned with the second option. Ash would still get compiled
> in this case but (thanks to mustash) wouldn't necessarily need to execute.
> And when mustash is complete, CrOS Chrome and Linux Chrome ought to be
> almost entirely the same.

A rough roadmap here would be:

1) merge CL https://codereview.chromium.org/2408803002/ - see more
about it below .

2) start working on an external-window mode support for mash-like
Chrome, to be ran on LinuxOS. Today, this does not exist yet and,
ideally, it would be built using new configuration provided in (1) -
hence the dependency on it.

3) Start the conversation (with you/sadrul/folks) about the high level
feasibility of (2) - what exists today, how to possibly skip the ash
bootstrap, etc.

It seems to me one thing we should agree on now - and it would help to
decide if (1) should get merged or not - is whether the
external-window Chrome implementation would be on top of either a
chromeos=1 or chromeos=0 build.
As mentioned in (2), ideally, in our original thought would work on a
chromeos=0 build, but your comment above seemed to indicate you were
thinking about a chromeos=1 setup.

WDYT?



_____________________________________
IRC quick conversation:

12:17 PM <fredw> rjkroege_: Hi. I've replied to the interrogation
about why ash is included with use_ash=false
https://codereview.chromium.org/2408803002/#msg25
(..)
1:05 PM <rjkroege_> fredw: I saw that. I'll comment on your patch
today. I suspect we will need another flag.
1:07 PM <fredw> rjkroege_: another flag? ^ tonikitoo

1:08 PM <rjkroege_> as you build towards "external window mode", we'll
need some kind of flag for chrome that means "run with mus, but don't
use ash"
1:08 PM <rjkroege_> currently --mash implies (logically from its name)
that ash should still get executed.

1:09 PM <tonikitoo> rjkroege_: do you think this "another flag" is a
blocker for that CL?

1:10 PM <rjkroege_>probably not

1:11 PM <tonikitoo> ideally, we are willing to go incrementally with
it, so we make sure we understand all the small things involved,
towards that bigger thing: chrome+mus on window-mode

1:13 PM <rjkroege_> yeah. incremental is desirable. otherwise you will
have an unreviewably large patch. :-)
1:16 PM <rjkroege_> I think it might be worth iterating on a plan in
ozone-dev a bit so everybody has a better idea of what's going to
happen next.

1:35 PM T<tonikitoo> rjkroege_: good idea (re: I think it might be
worth iterating on a plan in ozone-dev ... )
Reply all
Reply to author
Forward
0 new messages