[go: nahoru, domu]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chromium-ozone-wayland: Update to stable 71.0.3578.98 #209

Merged
merged 1 commit into from
Jan 15, 2019
Merged

chromium-ozone-wayland: Update to stable 71.0.3578.98 #209

merged 1 commit into from
Jan 15, 2019

Conversation

msisov
Copy link
Collaborator
@msisov msisov commented Jan 9, 2019

This update is based on the stable M71 version with
backported Ozone/Wayland patches from the ToT.

The Chromium with Ozone/Wayland recipe shares the
chromium-upstream-tarball now, and will be updated
as soon as new version is shipped.

The Chromium with Ozone/Wayland has the following
features possible to be used now -

  1. Ime, when --enable-ime-service and --enable-wayland-ime
    are passed as command line arguments.

  2. GPU native memory buffers + zero-copy - the browser
    must be run in a multi process mode (without --in-process-gpu
    flag, for example), and use available drm render nodes to
    create gbm buffers to draw to. Flags needed -
    --enable-native-gpu-memory-buffers.

  3. Partial swap - check the about://gpu page, and
    if disable_post_sub_buffers_for_onscreen_surfaces
    applied, pass the --disable_post_sub_buffers_for_onscreen_surfaces=0
    as command line argument to enable partial swap.

  4. Touch screen - for a better support pass
    --touch-events=enabled

  5. The browser supports all (or almost all, testings
    are needed) user driven interactions including resize/drag
    and etc.

  6. Clipboard support is still under development and going to
    be shipped soon.

  7. Drag and drap has partial support only dragging is supported.

  8. Tab drag is under development and will be shipped soon.

  9. Proper multi-screen support is under development as well.

  10. HW accelerated video decoding - we have included
    v4l2 patches, which enable v4l2 device to be used for hw
    accelerated video decoding on Linux machine. This code path
    can be enabled with the following setting -
    PACKAGECONFIG_pn-chromium-ozone-wayland = " use-linux-v4l2"

Stay tuned for other changes, and wait for new updates, which
will be more frequent from now on.

Test-built with:

  • Yocto sumo, GCC 7 and MACHINE="raspberrypi3"

Signed-off-by: Maksim Sisov msisov@igalia.com

@rakuco
Copy link
Collaborator
rakuco commented Jan 9, 2019

Lots of great news there :) I'll try to test-build this patch with more configurations and review the PR until the end of the week.

@kraj
Copy link
Collaborator
kraj commented Jan 9, 2019

have you tested it on aarch64 ?

Copy link
Collaborator
@rakuco rakuco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the new direction mentioned in the pull request message, and I hope this means we'll hear from you guys more frequently.

In addition to the inline comments, I've got a few other questions and comments:

  • Are all the patches there necessary? I see some patches just renaming files or flags rather than implementing new functionality or fixing bugs.
  • The build on qemuarm64 + thud fails to link:
| FAILED: v8_context_snapshot_generator
| python "../../build/toolchain/gcc_link_wrapper.py" --output="./v8_context_snapshot_generator" -- aarch64-poky-linux-g++  -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -Wl,-O2 -Wl,--gc-sections -rdynamic -Wl,-rpath-link=. -Wl,--disable-new-dtags -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now -o "./v8_context_snapshot_generator" -Wl,--start-group @"./v8_context_snapshot_generator.rsp"  -Wl,--end-group   -latomic -ldl -lpthread -lrt -lsmime3 -lnss3 -lsoftokn3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ljpeg -lxml2 -lxslt -lm -lresolv -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lwebpdemux -lwebpmux -lwebp -lexpat -luuid -lxkbcommon -lasound -lz -lwayland-egl -lwayland-client -lgbm -lpci -ldbus-1
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetMinorNameForFD':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2841: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2842: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmOpenMinor':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:463: undefined reference to `makedev'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetNodeTypeFromFd':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2775: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2776: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetDevice2':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3827: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3828: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3855: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3856: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetDevices2':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:4005: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:4006: undefined reference to `minor'
| collect2: error: ld returned 1 exit status

@msisov
Copy link
Collaborator Author
msisov commented Jan 11, 2019

Are all the patches there necessary? I see some patches just renaming files or flags rather than implementing new functionality or fixing bugs.

I would like to keep all of them for consistency.

The build on qemuarm64 + thud fails to link:

Looks like we need to switch to system libdrm as well. I'll do so.

@msisov
Copy link
Collaborator Author
msisov commented Jan 11, 2019

have you tested it on aarch64 ?

we constantly check with aarch64, but our env requires additional patches not relevant to this pr.

This update is based on the stable M71 version with
backported Ozone/Wayland patches from the ToT.

The Chromium with Ozone/Wayland recipe shares the
chromium-upstream-tarball now, and will be updated
as soon as new version is shipped.

The Chromium with Ozone/Wayland has the following
features possible to be used now -

1) Ime, when --enable-ime-service and --enable-wayland-ime
are passed as command line arguments.

2) GPU native memory buffers + zero-copy - the browser
must be run in a multi process mode (without --in-process-gpu
flag, for example), and use available drm render nodes to
create gbm buffers to draw to. Flags needed -
--enable-native-gpu-memory-buffers.

3) Partial swap - check the about://gpu page, and
if disable_post_sub_buffers_for_onscreen_surfaces
applied, pass the --disable_post_sub_buffers_for_onscreen_surfaces=0
as command line argument to enable partial swap.

4) Touch screen - for a better support pass
--touch-events=enabled

5) The browser supports all (or almost all, testings
are needed) user driven interactions including resize/drag
and etc.

6) Clipboard support is still under development and going to
be shipped soon.

7) Drag and drap has partial support only dragging is supported.

8) Tab drag is under development and will be shipped soon.

9) Proper multi-screen support is under development as well.

10) HW accelerated video decoding - we have included
v4l2 patches, which enable v4l2 device to be used for hw
accelerated video decoding on Linux machine. This code path
can be enabled with the following setting -
PACKAGECONFIG_pn-chromium-ozone-wayland = " use-linux-v4l2"

Stay tuned for other changes, and wait for new updates, which
will be more frequent from now on.

Test-built with:
 * Yocto sumo, GCC 7 and MACHINE="raspberrypi3"

Signed-off-by: Maksim Sisov <msisov@igalia.com>
@msisov
Copy link
Collaborator Author
msisov commented Jan 15, 2019

Regarding

| FAILED: v8_context_snapshot_generator
| python "../../build/toolchain/gcc_link_wrapper.py" --output="./v8_context_snapshot_generator" -- aarch64-poky-linux-g++  -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -Wl,-O2 -Wl,--gc-sections -rdynamic -Wl,-rpath-link=. -Wl,--disable-new-dtags -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now -o "./v8_context_snapshot_generator" -Wl,--start-group @"./v8_context_snapshot_generator.rsp"  -Wl,--end-group   -latomic -ldl -lpthread -lrt -lsmime3 -lnss3 -lsoftokn3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ljpeg -lxml2 -lxslt -lm -lresolv -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lwebpdemux -lwebpmux -lwebp -lexpat -luuid -lxkbcommon -lasound -lz -lwayland-egl -lwayland-client -lgbm -lpci -ldbus-1
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetMinorNameForFD':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2841: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2842: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmOpenMinor':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:463: undefined reference to `makedev'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetNodeTypeFromFd':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2775: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:2776: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetDevice2':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3827: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3828: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3855: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:3856: undefined reference to `minor'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: obj/third_party/libdrm/libdrm/xf86drm.o: in function `drmGetDevices2':
| /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:4005: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:4006: undefined reference to `minor'
| collect2: error: ld returned 1 exit statusdebug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:4005: undefined reference to `major'
| /data/src/yocto/poky/build-thud-qemuarm64-wl/tmp/work/aarch64-poky-linux/chromium-ozone-wayland/71.0.3578.98-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld: /usr/src/debug/chromium-ozone-wayland/71.0.3578.98-r0/chromium-71.0.3578.98/out/Release/../../third_party/libdrm/src/xf86drm.c:4006: undefined reference to `minor'
| collect2: error: ld returned 1 exit status

I forced chromium-ozone-wayland recipe to use a system libdrm. Can you try again?

Copy link
Collaborator
@rakuco rakuco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the build has now succeeded on thud with MACHINE="qemuarm64", so lgtm. let's see how much work it is going to be to keep some of those patches up-to-date. I'll leave it up to @otavio to do the honors and merge the PR in case there's something else to add.

@otavio
Copy link
Member
otavio commented Jan 15, 2019

Thank you @rakuco! My pleasure! 👍

@msisov thanks for all your commitment on keeping this up to date, it is really appreciated.

@otavio otavio merged commit 2b106e8 into OSSystems:master Jan 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants