MastaG wrote:Well I've built everything with: --prefix=/usr/local and PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig set.
Also I have a file /etc/ld.so.conf.d/hybris.conf with: /usr/local/lib
That way configure scripts will look in /usr/local first and the linker will always search in /usr/local/lib first.
Btw if you have any mesa-*-dev packages installed then remove those first.
Hybris provides the required headers with: --enable-mesa.
Wayland:
- libinput git- no patching
- libunwind git - no patching
- wayland - no patching
Hybris git (no patching):
Code: Select all
./configure --prefix=/usr/local --enable-debug --enable-trace \
--enable-wayland --enable-mesa --enable-arch=arm \
--with-default-hybris-ld-library-path=/system/lib:/vendor/lib \
--with-android-headers=/usr/local/include/android
------------------------------------------------------------------------
libhybris 0.1.0
------------------------------------------------------------------------
Configuration Options:
debug build.............: yes
trace...................: yes
prefix..................: /usr/local
arch ..................: arm
headers path ...........:
default egl platform ...: null
default ld_library_path.: /system/lib:/vendor/lib
------------------------------------------------------------------------
Weston:
pixman git - no patching
ciaro git - no patching
Weston is configured with:
Code: Select all
WESTON_NATIVE_BACKEND="wayland-backend.so" ./configure --prefix=/usr/local --enable-demo-clients-install \
--enable-weston-launch --enable-clients \
--enable-screen-sharing --enable-rdp-compositor \
--enable-fbdev-compositor --disable-rpi-compositor \
--enable-wayland-compositor --enable-headless-compositor \
--enable-xwayland --enable-xwayland-test \
--with-xserver-path=/usr/bin/Xwayland --enable-setuid-install
Native Backend wayland-backend.so
setuid Install yes
Cairo Renderer image
EGL yes
libxkbcommon yes
xcb_xkb yes
XWayland yes
dbus yes
Build wcap utility yes
Build Fullscreen Shell yes
weston-launch utility yes
systemd-login support yes
DRM Compositor yes
X11 Compositor yes
Wayland Compositor yes
Headless Compositor yes
RPI Compositor no
FBDEV Compositor yes
RDP Compositor yes
Screen Sharing yes
libinput Backend yes
Raspberry Pi BCM headers no
Build Clients yes
Build EGL Clients no
Build Simple Clients yes
Build Simple EGL Clients yes
Install Demo Clients yes
Colord Support yes
GLU Support no
LCMS2 Support yes
libwebp Support yes
libunwind Support yes
VA H.264 encoding Support yes
QtWayland:
qtbase-opensource-src-5.2.1 - no patching
qtdeclarative-opensource-src-5.2.1 - no patching
qtwayland git - Removed the Q_DECL_OVERRIDE from hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
Code: Select all
[odroid@localhost qtwayland]$ qmake
Info: creating cache file /home/odroid/src/qtwayland/.qmake.cache
Checking for wayland... yes
Checking for xkbcommon... yes
Checking for wayland_cursor... yes
Checking for wayland_scanner... yes
Checking for wayland_egl... yes
Checking for egl... yes
Checking for brcm_egl... no
Checking for glx... no
Checking for xcomposite... yes
Checking for drm_egl_server... yes
Checking for libhybris_egl_server... yes
qt5-qpa-hwcomposer-plugin - no patching
- For XBMC
libcec - the one for Odroid (i believe from vimea's github)
libid3tag-0.15.1b
libmad-0.15.1b
libmpeg2-0.5.1
lame-3.99.5
libnfs
libshairport
For XBMC I altered the configure.in script slightly, I can post it if you like.
So when I run it:
Code: Select all
[root@localhost /]# /vendor/bin/pvrsrvctl --start --no-module
[root@localhost /]# /system/bin/servicemanager &
[1] 795
[root@localhost /]# /system/bin/mediaserver &
[2] 796
[root@localhost /]# cd /usr/local/examples/qtwayland/qml-compositor/
[root@localhost qml-compositor]# EGL_PLATFORM=hwcomposer ./qml-compositor -platform hwcomposer -plugin EvdevKeyboard -plugin EvdevMouse &
[3] 810
[root@localhost qml-compositor]# EGLFS: Screen Info
- Physical size: QSizeF(0, 0)
- Screen size: QSize(1280, 720)
- Screen depth: 32
== hwcomposer module ==
* Address: 0xb36fa004
* Module API Version: 1
* HAL API Version: 100
* Identifier: hwcomposer
* Name: Samsung exynos5 hwcomposer module
* Author: Samsung LSI
== hwcomposer module ==
== hwcomposer device ==
* Version: 1010001 (interpreted as 1010001)
* Module: 0xb36fa004
== hwcomposer device ==
QEglScreen 0x2e690
"Qt Warning - invalid keysym: dead_actute"
EGL Wayland extension successfully initialized.
QEglWindow 0xb8990: 0xbec462e4 0x0
WARNING: virtual int HWComposerNativeWindow::setBufferCount(int): allocated only 0 buffers out of 2
[root@localhost include]# EGL_PLATFORM=wayland weston -Swayland-1 --fullscreen --width=1280 --height=720 --display=wayland-0
Date: 2014-08-23 CEST
[17:05:54.214] weston 1.5.90
http://wayland.freedesktop.org/
Bug reports to: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=1.5.90
Build: 1.4.93-105-g461e93c build: cliptest uses also vertex-clipping.h (2014-08-20 11:58:47 +0300)
[17:05:54.216] OS: Linux, 3.4.98-odroidxu, #6 SMP PREEMPT Thu Aug 21 18:13:52 CEST 2014, armv7l
[17:05:54.217] Starting with no config file.
[17:05:54.217] Loading module '/usr/local/lib/weston/wayland-backend.so'
[17:05:54.238] launching '/usr/local/libexec/weston-keyboard'
[17:05:54.266] Loading module '/usr/local/lib/weston/gl-renderer.so'
[17:05:54.293] warning: EGL_EXT_buffer_age not supported. Performance could be affected.
[17:05:54.294] Creating 1280x720 wayland output at (0, 0)
[17:05:54.324] EGL version: 1.4 Android META-EGL
[17:05:54.325] EGL vendor: Android
[17:05:54.326] EGL client APIs: OpenGL_ES
[17:05:54.326] EGL extensions: EGL_KHR_image EGL_KHR_image_base
EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image
EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync
EGL_ANDROID_image_native_buffer EGL_HYBRIS_native_buffer
EGL_WL_bind_wayland_display EGL_EXT_swap_buffers_with_damage
[17:05:54.329] GL version: OpenGL ES 2.0 build 1.10@2209507
[17:05:54.329] GLSL version: OpenGL ES GLSL ES 1.00 build 1.10@2209507
[17:05:54.329] GL vendor: Imagination Technologies
[17:05:54.330] GL renderer: PowerVR SGX 544MP
[17:05:54.330] GL extensions: GL_EXT_debug_marker GL_OES_rgb8_rgba8
GL_OES_depth24 GL_OES_vertex_half_float GL_OES_texture_float
GL_OES_texture_half_float GL_OES_element_index_uint
GL_OES_mapbuffer GL_OES_fragment_precision_high
GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image
GL_OES_EGL_image_external GL_OES_required_internalformat
GL_OES_depth_texture GL_OES_get_program_binary
GL_OES_packed_depth_stencil GL_OES_standard_derivatives
GL_OES_vertex_array_object GL_OES_egl_sync GL_OES_texture_npot
GL_EXT_discard_framebuffer GL_EXT_blend_minmax
GL_EXT_multi_draw_arrays GL_EXT_multisampled_render_to_texture
GL_EXT_shader_texture_lod GL_EXT_texture_format_BGRA8888
GL_EXT_texture_rg GL_IMG_shader_binary
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_compression_pvrtc2 GL_IMG_texture_npot
GL_IMG_texture_format_BGRA8888 GL_IMG_read_format
GL_IMG_program_binary GL_IMG_uniform_buffer_object
GL_IMG_multisampled_render_to_texture
[17:05:54.336] GL ES 2 renderer features:
read-back format: RGBA
wl_shm sub-image to texture: no
EGL Wayland extension: yes
[17:05:54.336] Chosen EGL config details:
RGBA bits: 8 8 8 8
swap interval range: 0 - 5
[17:05:54.337] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
[17:05:54.337] Loading module '/usr/local/lib/weston/desktop-shell.so'
[17:05:54.356] launching '/usr/local/libexec/weston-desktop-shell'
Then from Weston, I just run /usr/local/lib/xbmc/xbmc.bin and it works.
It's butterly smooth and doesn't flicker.
Only bug in XBMC is that it freezes when I try to close it, but that happens on the hwcomposer build as well
I guess if anyone can fix the XBMC closing issue, we can build the Hawaii or Enlightment desktop with Chromium browser.
Then we'll have an accelerated desktop with a browser and media player

Or you can upgrade to the latest Ubuntu beta and give the Mir display server a try, it features a hwcomposer backend so you don't need run Qtwayland for it

Unfortunately gnome-shell still requires a drm/kms driver for output so that won't work for now.
EDIT: I've attached the headers for libhybris.
I think you need to rebuild the qt5-qpa-hwcomposer, libhybris and weston using these.