Hi,
I'm playing with the orange-pi-pc-plus board and I'd like to share
my results so far.
The GPU performance on the mainline kernel inside Wayland/Weston (of course libMali is still closed blob)
seems encouraging:
root@orange-pi-pc-plus:~# glmark2-es2-wayland --fullscreen
=======================================================
glmark2 2017.07
=======================================================
OpenGL Information
GL_VENDOR: ARM
GL_RENDERER: Mali-400 MP
GL_VERSION: OpenGL ES 2.0
=======================================================
[build] use-vbo=false: FPS: 120 FrameTime: 8.333 ms
[build] use-vbo=true: FPS: 155 FrameTime: 6.452 ms
[texture] texture-filter=nearest: FPS: 130 FrameTime: 7.692 ms
[texture] texture-filter=linear: FPS: 130 FrameTime: 7.692 ms
[texture] texture-filter=mipmap: FPS: 128 FrameTime: 7.812 ms
[shading] shading=gouraud: FPS: 123 FrameTime: 8.130 ms
[shading] shading=blinn-phong-inf: FPS: 102 FrameTime: 9.804 ms
[shading] shading=phong: FPS: 74 FrameTime: 13.514 ms
[shading] shading=cel: FPS: 60 FrameTime: 16.667 ms
[bump] bump-render=high-poly: FPS: 76 FrameTime: 13.158 ms
[bump] bump-render=normals: FPS: 105 FrameTime: 9.524 ms
[bump] bump-render=height: FPS: 85 FrameTime: 11.765 ms
libpng warning: iCCP: known incorrect sRGB profile
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 25 FrameTime: 40.000 ms
libpng warning: iCCP: known incorrect sRGB profile
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 12 FrameTime: 83.333 ms
[pulsar] light=false:quads=5:texture=false: FPS: 150 FrameTime: 6.667 ms
libpng warning: iCCP: known incorrect sRGB profile
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 12 FrameTime: 83.333 ms
libpng warning: iCCP: known incorrect sRGB profile
[desktop] effect=shadow:windows=4: FPS: 53 FrameTime: 18.868 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 23 FrameTime: 43.478 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 45 FrameTime: 22.222 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 26 FrameTime: 38.462 ms
[ideas] speed=duration: FPS: 102 FrameTime: 9.804 ms
[jellyfish] <default>: FPS: 40 FrameTime: 25.000 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[shadow] <default>: FPS: 40 FrameTime: 25.000 ms
[refract] <default>: FPS: 13 FrameTime: 76.923 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 120 FrameTime: 8.333 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 54 FrameTime: 18.519 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 120 FrameTime: 8.333 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 60 FrameTime: 16.667 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 37 FrameTime: 27.027 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 60 FrameTime: 16.667 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 60 FrameTime: 16.667 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 60 FrameTime: 16.667 ms
=======================================================
glmark2 Score: 75
=======================================================
Since the EGL extension EGL_WL_bind_wayland_display
is available (as shown in the weston.log), trying out wpebackend-fdo
seemed like a good idea.
With fdo
it is failing at:
root@orange-pi-pc-plus:~# cog -P fdo google.pl
(cog:423): Cog-DEBUG: platform_setup: Platform name: fdo
(cog:423): Cog-DEBUG: platform_setup: Platform plugin: libcogplatform-fdo.so
Wayland: Got a wl_compositor interface
Wayland: Got a wl_seat interface
Wayland: Got an xdg_shell interface
Wayland: Got a wl_shell interface
Cog-INFO: EGL version 1.4 initialized.
xkbcommon: ERROR: couldn't find a Compose file for locale "C"
(cog:423): Cog-DEBUG: platform_setup: Platform = 0x3d930
Seat caps: Keyboard
Seat name 'default'
New XDG toplevel configuration: (0, 0)
New XDG toplevel configuration: (1920, 1080)
Cannot create EGL surfaceless context: missing EGL_KHR_surfaceless_{context,opengl} extension.
(cog:423): Cog-WARNING **: <http://google.pl/> Crash!: The renderer process crashed. Reloading the page may fix intermittent failures.
Cannot create EGL surfaceless context: missing EGL_KHR_surfaceless_{context,opengl} extension.
(cog:423): Cog-WARNING **: <http://google.pl/> Crash!: The renderer process crashed. Reloading the page may fix intermittent failures.
Cannot create EGL surfaceless context: missing EGL_KHR_surfaceless_{context,opengl} extension.
The strace.log seems to be revealing SEGV
, which I guess could be traced further with the gdb
(once I include it in the image):
[pid 808] ioctl(11, _IOC(_IOC_READ, 0x84, 0x2, 0x10), 0xaa6fea00) = 0
[pid 808] ioctl(11, _IOC(_IOC_READ|_IOC_WRITE, 0x83, 0, 0x28), 0xaa6fe880) = 0
[pid 808] mmap2(NULL, 262144, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0x10000000) = 0xb000c000
[pid 808] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
[pid 807] <... poll resumed> <unfinished ...>) = ?
[pid 806] <... futex resumed>) = ?
[pid 805] <... poll resumed> <unfinished ...>) = ?
[pid 804] <... poll resumed> <unfinished ...>) = ?
[pid 802] <... rt_sigtimedwait resumed> <unfinished ...>) = ?
[pid 801] <... ioctl resumed> <unfinished ...>) = ?
[pid 800] <... futex resumed>) = ?
[pid 799] <... poll resumed> <unfinished ...>) = ?
[pid 798] <... poll resumed> <unfinished ...>) = ?
[pid 797] <... poll resumed> <unfinished ...>) = ?
[pid 796] <... futex resumed>) = ?
[pid 794] <... futex resumed>) = ?
[pid 798] +++ killed by SIGSEGV +++
[pid 807] +++ killed by SIGSEGV +++
[pid 806] +++ killed by SIGSEGV +++
[pid 805] +++ killed by SIGSEGV +++
[pid 804] +++ killed by SIGSEGV +++
[pid 802] +++ killed by SIGSEGV +++
[pid 801] +++ killed by SIGSEGV +++
[pid 800] +++ killed by SIGSEGV +++
[pid 799] +++ killed by SIGSEGV +++
[pid 797] +++ killed by SIGSEGV +++
[pid 796] +++ killed by SIGSEGV +++
The rdk/wayland
backend seems to be going further:
root@orange-pi-pc-plus:~# cog https://google.com
(cog:979): Cog-DEBUG: platform_setup: Platform name: (null)
(cog:979): Cog-DEBUG: Instantiating default WPE backend as fall-back.
xkbcommon: ERROR: couldn't find a Compose file for locale "C"
Cannot create EGL surfaceless context: missing EGL_KHR_surfaceless_{context,opengl} extension.
Cannot create EGL WPE context: EGL_SUCCESS
Cog-Message: <https://google.com/> Load started.
Cog-Message: <https://www.google.com/> Redirected.
Cog-Message: <https://www.google.com/> Loading...
Cog-Message: <https://www.google.com/> Loaded successfully.
But still, nothing appears on the Weston screen.
Any suggestions with further ideas to try out are highly appreciated.