Moving the caca platform outside of the chromium tree?

33 views
Skip to first unread message

Frédéric Wang

unread,
Oct 22, 2016, 4:36:53 AM10/22/16
to Ozone-Dev, dnic...@chromium.org
Hi all,

I've moving this discussion out of the build bot threads and also cc'ing
the OWNER of the caca platform. Just like it has been the case of
Wayland until recently, caca is not built by the try bots and is likely
to have regular breakages. Checking "git log ui/ozone/platform/caca" it
seems that the changes made in that module were mostly maintenance work
to fix build errors or keep it up-to-date with the code base.

The last regression was https://codereview.chromium.org/2346433002/
where I realized that the execution had been silently broken during some
GL refactoring. Incidentally, caca only works with software rendering
but it seems that the focus of Ozone developers has been made on
ChromeOS and accelerated rendering. On ChromeOS, "chrome --mash" only
works when the Ozone platforms supports GL while standard "chrome" or
even "content_shell" only work with the attached patch by Antonio to
allow software rendering fallback. This means that caca does not
currently work out of the box.

Robert asked whether we want to keep this platform in the chromium tree.
If so, it seems we should do the same work as for Wayland (add caca
packages and build it by default). Note however that contrary to
Wayland, caca does not have any unit tests.

Otherwise, Robert proposed to have caca moved and maintained in a
separate repository. The idea is that it is nice to keep it somewhere
because it is funny and a nice demo of Ozone (see the attached
screenshot). However, it is not something really usable in practice and
does not justify maintenance cost in the chromium tree.

Personally, I think moving to a separate repository is the best option
if we do not have a maintainer for caca in the chromium tree. I do not
plan to put effort on any maintenance but I can try and remove the code
from the chromium tree and "archive" the current implementation on
GitHub (i.e. move the code there with some doc of how to make it work,
but without maintenance) .

Any thoughts?

--
Frédéric 王 - Federico Juan - 프레드릭 왕
igalia.com/igalia-247/igalian/item/fwang

allow-software-rendering-on-chromeos.patch
ozone-caca.png

Daniel Nicoara

unread,
Oct 24, 2016, 10:42:50 AM10/24/16
to Frédéric Wang, Ozone-Dev
Is it worth keeping in a separate repo if it won't get regular maintenance? Why not update the documentation to point to building M54 or M55 with caca and remove it from the tree after that milestone. Git history should be enough for archival purposes.

Michael Spang

unread,
Oct 24, 2016, 1:12:46 PM10/24/16
to Daniel Nicoara, Frédéric Wang, Ozone-Dev
I agree with Danny. caca's main justification for existing is as sample code. I personally don't think the roughly 1 patch per quarter needed to keep it compiling has been a big deal but if we don't want to maintain it, then I'd suggest just deleting it.

Out of tree platforms are just forks of chromium in practice. It'd be kind of strange to have a blessed fork that adds caca instead of maintaining it within the usual repository & infrastructure. If it's not maintained that's it's not really better than just deleting it because you could equivalently just check out an old version.

Michael

Robert Kroeger

unread,
Oct 24, 2016, 1:29:44 PM10/24/16
to Michael Spang, Daniel Nicoara, Frédéric Wang, Ozone-Dev
I vote for removing it and updating the ozone docs to refer to the last rev where it's known to build.

Rob.

Frédéric Wang

unread,
Oct 24, 2016, 1:38:18 PM10/24/16
to Robert Kroeger, Michael Spang, Daniel Nicoara, Ozone-Dev
Le 24/10/2016 à 19:29, Robert Kroeger a écrit :
> I vote for removing it and updating the ozone docs to refer to the last rev
> where it's known to build.
>
> Rob.
OK, removing it and updating the doc to explain clearly how to make it
work with an old rev is fine to me (and even less work). So I can take
care of that tomorrow.

Just an important note: it's not only having to *build* it, it is also
having the program actually *running* and working as expected. As I said
in my initial email, caca actually does not work out of the box for ToT,
unless you run a chromeos build in non-mash mode and allow software
rendering fallback.

Michael Spang

unread,
Oct 24, 2016, 2:37:29 PM10/24/16
to Frédéric Wang, Robert Kroeger, Daniel Nicoara, Ozone-Dev
caca builds with chromeos=0 toolkit_views=0, and content_shell runs in that configuration. You're right of course that desktop views is broken, and that CrOS doesn't support software mode.

So it's not completely broken. It has the same limitatoins as the "headless" platform.

Michael

Frédéric Wang

unread,
Oct 24, 2016, 2:42:04 PM10/24/16
to Michael Spang, Robert Kroeger, Daniel Nicoara, Ozone-Dev
Le 24/10/2016 à 20:37, Michael Spang a écrit :
toolkit_views=0
Ah, thanks that's the config I was missing. IIRC, the Ozone doc only mentions an "embedded" GYP option that did not work...

Michael Spang

unread,
Oct 24, 2016, 2:49:07 PM10/24/16
to Frédéric Wang, Robert Kroeger, Daniel Nicoara, Ozone-Dev
Yeah, this option used to set when you had "embedded=1" in GYP_DEFINES

The ozone doc sorely need update, as it's full of obsolete GYP stuff.

Frédéric Wang

unread,
Oct 25, 2016, 4:20:28 AM10/25/16
to Michael Spang, Robert Kroeger, Daniel Nicoara, Ozone-Dev
Hi all,

So it seems that I need to have a chromium.org account to be able to
edit
https://sites.google.com/a/chromium.org/dev/developers/design-documents/ozone
so I'll do that later.

This morning I tried again to build the caca platform on ToT, here is
what I get:

# Latest working revision
TBD (today I tried with b91b7a7e27d92d5435c800ae5c7e9eb543e5d599)

# Additional dependency needed
libcaca (shared library and development files)

# GN Configuration
use_ozone=true # Enable Ozone.
ozone_platform_caca=true # Enable the caca platform.
use_sysroot=false # Allow to find libcaca on the system.
ozone_auto_platforms=false # Disable other Ozone platforms that may
require to
# install more dependencies (e.g Wayland).
toolkit_views=false # Disable toolkit views.

# Commands to build and run
$ gn args out/OzoneCaca --args="use_ozone=true ozone_platform_caca=true
use_sysroot=false ozone_auto_platforms=false toolkit_views=false"
$ ninja -C out/OzoneCaca content_shell
$ ./out/OzoneCaca --no-sandbox
https://www.google.com/chrome/browser/desktop/index.html

# Screenshot
See attached ozone-caca.png
ozone-caca.png

Frédéric Wang

unread,
Oct 26, 2016, 8:04:35 AM10/26/16
to ozon...@chromium.org
Le 25/10/2016 à 10:20, Frédéric Wang a écrit :
> # Latest working revision
> TBD (today I tried with b91b7a7e27d92d5435c800ae5c7e9eb543e5d599)
I removed it in https://codereview.chromium.org/2445323002/
I tested again with 0e64be9cf335ee3bea7c989702c5a9a0934af037 and it's
working.
I'll update the ozone doc when I have a chromium.org account.

> # Commands to build and run
> $ gn args out/OzoneCaca --args="use_ozone=true ozone_platform_caca=true
> use_sysroot=false ozone_auto_platforms=false toolkit_views=false"
> $ ninja -C out/OzoneCaca content_shell
> $ ./out/OzoneCaca --no-sandbox
> https://www.google.com/chrome/browser/desktop/index.html
This should probably be added before too:

$ gclient sync --with_branch_heads

Kyle Charbonneau

unread,
Oct 26, 2016, 12:20:44 PM10/26/16
to Frédéric Wang, Ozone-Dev
An alternative to updating the sites page is converting it to markdown and adding it to the src/docs/ (or maybe adding src/ui/ozone/docs/). Markdown seems to be the preferred format for documentation going forward. The sites page can then redirect to the new markdown doc.

Kyle

--
You received this message because you are subscribed to the Google Groups "Ozone-Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ozone-dev+unsubscribe@chromium.org.


Frédéric Wang

unread,
Oct 26, 2016, 12:26:14 PM10/26/16
to ozon...@chromium.org
Le 26/10/2016 à 18:20, 'Kyle Charbonneau' via Ozone-Dev a écrit :
> An alternative to updating the sites page is converting it to markdown and
> adding it to the src/docs/
> <https://chromium.googlesource.com/chromium/src/+/master/docs/> (or maybe
> adding src/ui/ozone/docs/). Markdown seems to be the preferred format for
> documentation going forward. The sites page can then redirect to the new
> markdown doc.
Thanks for the info I think that's a good idea and that will make it
easier to review my changes. I'll try that tomorrow.

Frédéric Wang

unread,
Oct 27, 2016, 6:12:35 AM10/27/16
to ozon...@chromium.org
Le 26/10/2016 à 18:20, 'Kyle Charbonneau' via Ozone-Dev a écrit :
> An alternative to updating the sites page is converting it to markdown and
> adding it to the src/docs/
I started this in https://codereview.chromium.org/2457443003/
Reply all
Reply to author
Forward
0 new messages