I am trying to run chromium as weston-client using ArchArm on a RPI 3+ b, but I am unable to make it use GL.
Setup:
- Basic »AArch64« installation as described here
- Package Installation:
- wayland
- weston
- xorg-server-xwayland
- chromium
- Tweaking the
/boot/config.txtto:
.
#was already in
enable_uart=1
#those lines are those I have added
dtoverlay=vc4-kms-v3d
avoid_warnings=2
hdmi_drive=2
When launching:
weston --log=weston.log --no-config --xwayland --use-pixman
followed by opening a terminal on the desktop and running chromium there, te browser starts, but performance is very poor, since it does not use the GL hardware acceleration.
Running
weston --log=weston.log --no-config --xwayland
Starts a Desktop as well, but trying to chromium then, results in a frozen Desktop and only ctrl+alt+backspace can end that.
I guess that there is something wrong in the overall vc4/GL setup, but I would like to know how to find the error
lsmod
Module Size Used by
rc_cec 16384 0
btsdio 20480 0
vc4 192512 4
brcmfmac 303104 0
cec 65536 1 vc4
brcmutil 16384 1 brcmfmac
rc_core 57344 3 rc_cec,cec
drm_kms_helper 200704 3 vc4
hci_uart 131072 0
drm 503808 3 drm_kms_helper,vc4
joydev 28672 0
btqca 20480 1 hci_uart
cfg80211 729088 1 brcmfmac
btbcm 16384 1 hci_uart
microchip 16384 1
btintel 32768 1 hci_uart
drm_panel_orientation_quirks 16384 1 drm
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
bluetooth 593920 6 btqca,btsdio,btintel,hci_uart,btbcm
sysimgblt 16384 1 drm_kms_helper
lan78xx 61440 0
fb_sys_fops 16384 1 drm_kms_helper
ecdh_generic 24576 1 bluetooth
raspberrypi_hwmon 16384 0
rfkill 32768 3 bluetooth,cfg80211
i2c_bcm2835 20480 0
pwm_bcm2835 16384 0
bcm2835_thermal 16384 0
bcm2835_wdt 16384 0
hid_multitouch 28672 0
.
ls -la /dev/dri/
total 0
drwxr-xr-x 3 root root 100 Dec 20 01:38 .
drwxr-xr-x 18 root root 3200 Jan 2 12:38 ..
drwxr-xr-x 2 root root 80 Dec 20 01:38 by-path
crw-rw----+ 1 root video 226, 0 Jan 2 12:38 card0
crw-rw-rw- 1 root render 226, 128 Dec 20 01:38 renderD128
.
#log without --use-pixman
cat weston.log
Date: 2019-01-02 UTC
[13:00:58.164] weston 5.0.0
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: unknown (not built from git or tarball)
[13:00:58.165] Command line: weston --log=weston.log --xwayland --no-config
[13:00:58.165] OS: Linux, 4.20.0-2-ARCH, #1 SMP Fri Dec 28 19:33:32 MST 2018, aarch64
[13:00:58.165] Starting with no config file.
[13:00:58.165] Output repaint window is 7 ms maximum.
[13:00:58.165] Loading module '/usr/lib/libweston-5/drm-backend.so'
[13:00:58.178] initializing drm backend
[13:00:58.190] logind: session control granted
[13:00:58.203] using /dev/dri/card0
[13:00:58.204] DRM: supports universal planes
[13:00:58.204] DRM: supports atomic modesetting
[13:00:58.204] DRM: supports picture aspect ratio
[13:00:58.207] Loading module '/usr/lib/libweston-5/gl-renderer.so'
[13:00:58.551] EGL client extensions: EGL_EXT_device_base
EGL_EXT_device_enumeration EGL_EXT_device_query
EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
EGL_EXT_client_extensions EGL_KHR_debug
EGL_EXT_platform_wayland EGL_EXT_platform_x11
EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
[13:00:58.555] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
[13:00:58.555] EGL_KHR_surfaceless_context available
[13:00:58.569] EGL version: 1.4
[13:00:58.569] EGL vendor: Mesa Project
[13:00:58.569] EGL client APIs: OpenGL OpenGL_ES
[13:00:58.569] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
EGL_EXT_image_dma_buf_import
EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
EGL_KHR_config_attribs EGL_KHR_create_context
EGL_KHR_create_context_no_error EGL_KHR_fence_sync
EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
EGL_KHR_no_config_context EGL_KHR_reusable_sync
EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
EGL_KHR_wait_sync EGL_MESA_configless_context
EGL_MESA_drm_image EGL_MESA_image_dma_buf_export
EGL_WL_bind_wayland_display
[13:00:58.569] GL version: OpenGL ES 2.0 Mesa 18.3.1
[13:00:58.569] GLSL version: OpenGL ES GLSL ES 1.0.16
[13:00:58.569] GL vendor: Broadcom
[13:00:58.569] GL renderer: VC4 V3D 2.1
[13:00:58.570] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
GL_EXT_occlusion_query_boolean GL_EXT_texture_format_BGRA8888
GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
GL_OES_element_index_uint GL_OES_fbo_render_mipmap
GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_stencil8
GL_OES_texture_3D GL_OES_texture_npot GL_OES_vertex_half_float
GL_OES_EGL_image GL_OES_depth_texture
GL_AMD_performance_monitor GL_OES_packed_depth_stencil
GL_OES_get_program_binary GL_APPLE_texture_max_level
GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
GL_EXT_frag_depth GL_NV_fbo_color_attachments
GL_OES_EGL_image_external GL_OES_EGL_sync
GL_OES_vertex_array_object GL_EXT_unpack_subimage
GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
GL_EXT_map_buffer_range GL_KHR_debug
GL_KHR_texture_compression_astc_ldr
GL_OES_required_internalformat GL_OES_surfaceless_context
GL_EXT_separate_shader_objects
GL_EXT_compressed_ETC1_RGB8_sub_texture
GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp
GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex
GL_OES_texture_border_clamp GL_KHR_no_error
GL_KHR_texture_compression_astc_sliced_3d
GL_MESA_tile_raster_order
[13:00:58.570] GL ES 2 renderer features:
read-back format: BGRA
wl_shm sub-image to texture: yes
EGL Wayland extension: yes
[13:00:58.603] event3 - vc4: is tagged by udev as: Keyboard Mouse
[13:00:58.604] event3 - vc4: device is a pointer
[13:00:58.604] event3 - vc4: device is a keyboard
[13:00:58.619] event1 - CHICONY HP Basic USB Keyboard: is tagged by udev as: Keyboard
[13:00:58.619] event1 - CHICONY HP Basic USB Keyboard: device is a keyboard
[13:00:58.697] event2 - HP HP: is tagged by udev as: Mouse
[13:00:58.697] event2 - HP HP: device is a pointer
[13:00:58.776] event0 - eGalax Inc. eGalaxTouch EXC3188-0085-04.00.00: is tagged by udev as: Touchscreen
[13:00:58.776] event0 - eGalax Inc. eGalaxTouch EXC3188-0085-04.00.00: device is a touch device
[13:00:58.818] Touchscreen - eGalax Inc. eGalaxTouch EXC3188-0085-04.00.00 - /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/ 0003:0EEF:C000.0001/input/input3/event0
[13:00:58.818] input device event0 has no enabled output associated (none named), skipping calibration for now.
[13:00:58.844] DRM: head 'HDMI-A-1' fou nd, connector 29 is connected, EDID make 'CND', model 'HDMI', serial '000000000000'
[13:00:58.844] DRM: head 'Composite-1' found, connector 44 is disconnected.
[13:00:58.845] Registered plugin API 'w eston_drm_output_api_v1' of size 24
[13:00:58.845] Chosen EGL config detail s:
RGBA bits: 8 8 8 0
swap interval rang e: 1 - 1
[13:00:58.847] No backlight contr ol for output 'HDMI-A-1'
[13:00:58.847] Output HDMI-A-1 (c rtc 95) video modes:
1920x1080@60.0, pr eferred, current, 14 8.5 MHz
1920x1080@60.0 16: 9, 148.5 MHz
1920x1080@59.9 16: 9, 148.4 MHz
1920x1080@60.0, 13 8.5 MHz
1920x1080@60.0, 74 .2 MHz
1920x1080@60.0 16: 9, 74. 2 MHz
1920x1080@59.9 16: 9, 74. 2 MHz
1920x1080@50.0 16: 9, 148 .5 MH z
1920x1080@50.0 16: 9, 74. 2 MHz
1680x1050@59.9, 11 9.0 MH z
1280x1024@60.0, 10 8.0 MH z
1440x900@59.9, 88. 8 MHz
1280x960@60.0, 108 .0 MH z
1366x768@59.8, 85. 5 MHz
1280x800@59.9, 71. 0 MHz
1280x720@60.0, 74. 2 MHz
1280x720@60.0 16:9 , 74. 2 MHz
1280x720@59.9 16:9 , 74. 2 MHz
1024x768@60.0, 65. 0 MHz
1440x480@60.0 16:9 , 54. 1 MHz
1440x480@59.9 16:9 , 54. 0 MHz
800x600@60.3, 40.0 MHz
800x600@56.2, 36.0 MHz
720x576@50.0 4:3, 27.0 MHz
720x480@60.0 4:3, 27.0 MHz
720x480@60.0 16:9, 27. 0 MH z
720x480@59.9, 27.0 MHz
720x480@59.9 16:9, 27. 0 MHz
720x480@59.9 4:3, 27.0 MHz
640x480@60.0 4:3, 25.2 MHz
640x480@59.9, 25.2 MHz
640x480@59.9 4:3, 25.2 MHz
720x400@70.1, 28.3 MHz
[13:00:58.848] associating input devi ce event3 with output HDMI-A-1 (none by udev)
[13:00:58.848] associating input devi ce event1 with output HDMI-A-1 (none by udev)
[13:00:58.848] associating input devi ce event2 with output HDMI-A-1 (none by udev)
[13:00:58.848] associating input devi ce event0 with output HDMI-A-1 (none by udev)
[13:00:58.849] Output 'HDMI-A-1' enab led with head(s) HDMI-A-1
[13:00:58.849] Compositor capabil itie s:
arbitrary surface rota ti on: yes
screen capture use s y- fl ip: yes
presentation clock : CL OC K_MONOT ONIC, id 1
presentation clock res ol ution: 0.000000001 s
[13:00:58.850] Loading module '/u sr/l ib /weston /desktop-shel l.so'
[13:00:58.852] launching '/usr/li b/we st on/west on-keyboard'
[13:00:58.856] Loading module '/u sr/l ib /libwes ton-5/xwayla nd.so'
[13:00:58.900] Registered plugin API 'w eston_x wayland_v1' of size 32
[13:00:58.900] Registered plugin API 'w eston_x wayland_surf ace_v1' of size 16
[13:00:58.901] xserver listening on d is play :0
[13:00:58.901] launching '/usr/li b/we st on/west on-desktop-shell'
[13:01:10.221] Spawned Xwayland s erve r, pid 10 24
[13:01:11.447] xfixes version: 5. 0
[13:01:11.512] created wm, root 9 2 4
[13:01:16.993] xserver exited, co d e 134
[13:02:26.297] output for input d e vice event3 removed
[13:02:26.298] output for input d e vice event1 removed
[13:02:26.298] output for input d e vice event2 removed
[13:02:26.298] output for input d e vice event0 removed
[13:02:26.315] event3 - vc4: dev i ce re moved
[13:02:26.315] event1 - CHICONY H P Bas ic US B Keyboard: device removed
[13:02:26.316] event2 - HP HP: d e vice remov ed
[13:02:26.317] event0 - eGalax I n c. eG alaxT ou ch EXC3188-0085-04.00.00: device removed
Running glxinfo | grep render within a weston session yields:
direct rendering: Yes
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer,
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: VC4 V3D 2.1
GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer,
But the OpenGL renderer string should be »Gallium 0.4 on VC4« if I am not mistaken?