本帖最后由 embfly 于 2025-7-21 15:14 编辑
本文中涉及到产品的实际操作,该操作都是再盈鹏飞嵌入式AHD-X527主板上进行执行,AHD-X527介绍如下:
AHD-X527产品特性:
- 采用Allwinner公司Cortex-A55八核A527/T527处理器,运行最高速度为2.0GHZ(T527最高1.8GHZ);
- 支持Mali-G57 MC1 GPU,支持OpenGL ES 3.2/2.0/1.0, Valkan 1.1,OpenCL 2.0
- 支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;
- 多格式4K/60fps视频解码 (H.265,H.264,VC-1, MPEG-1/2/4, VP8) ;
- 支持双屏异显;支持HDMI 2.0B, 分辨率最高4K@60fps;支持LVDS,分辨率最高1920x1080@60fps;支持MIPI DSI,分辨率最高2.5K@60fps(与LVDS复用);
- 支持1-4G Bytes LPDDR4X SDRAM;
- 支持EMMC 8G-64G大容量电子盘,可启动;
- 支持1路USB 3.0;支持3路USB2.0 HOST和一路OTG(TYPE-C接口);
- 支持2路I2C(其中一路支持掉电唤醒)、2路PWM(应用于背光);
- 支持双路千兆以太网;
- 支持3G/4G通信;
- 支持2路UART(TTL)、支持1路RS485、支持双路CAN BUS(2.0B,仅T527支持);
- 支持MIPI CSI - 2*4-lane/4*2-lane/ 4+2*2-lane;
- 操作系统的支持,可预装Android13/LINUX 5.15/Ubuntu 22.04;
- 尺寸为146X119MM
AHD-X527产品功能图:
三、Linux图形显示: Tina_Linux_图形系统_开发指南_linux图形系统-CSDN博客 Tina_Linux_图形系统_开发指南_tinalinux-CSDN博客 Wayland与Weston简介_westonwayland-CSDN博客 Wayland与Weston简介_westonwayland-CSDN博客 GPU的使用是需要结合图形显示系统的,对于不同的图形显示系统,GPU驱动库也有所不同,所以要使用GPU必须先了解Linux下的图形显示方式。
linux是一个基于命令行的操作系统,图形界面是一个应用程序(而windows的图形界面是操作系统的一部分)。 Linux中图形显示所涉及的知识,简单框图如下所示:
下面简单介绍一些图形相关的知识,包括内核驱动、图形API接口、显示管理器、窗口管理器、GUI应用工具,桌面环境等等。 3.1. DRM/KMS Direct Rendering Manager(DRM)子系统用于linux内核显示、图形和合成子系统的管理。 通常使用该框架来控制显示接口和外部显示器(控制分辨率,频率,多屏显示等)、输出画面到显示面板、硬件渲染画面等。 DRM是在内核空间,用户空间使用,通常通过相应的libdrm 库函数调用,也可以直接ioctl访问设备文件或者使用sysfs文件DRM驱动通信,使用OpenGL或Vulkan等图形API的应用程序可以通过这些设备文件与GPU进行交互,以实现硬件加速渲染等。 3.2. libdrm libdrm库,为DRM驱动ioctl提供了包装函数,避免了将内核接口直接暴露给应用程序, 通过libdrm对显示资源进行统一访问,libdrm将命令传递到内核最终由DRM驱动接管各应用的请求并处理。 libdrm是一个底层库,通常被其他图形驱动程序调用,例如Mesa、X、libva和类似项目。 3.3. OpenGL OpenGL是一组专门涉及2D和3D图形的硬件加速渲染的规范, 至于内部具体每个函数是如何实现,将由编写OpenGL库的人自行决定,实际通常是GPU的生产商。 OpenGL API实现通常是C语言,也有其他语言的实现,如Java、Golang和Rust等。 OpenGL ES(OpenGL for EmbeddedSystems)是适用于嵌入式设备的OpenGL规范,针对Android手机和iPhone等嵌入式设备。 EGL 是一个依赖于平台的API, 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁,且它与平台无关的。 3.4. Vulkan Vulkan 是一个低开销、跨平台的2D和3D图形与计算的应用程序接口(API),能够跨平台高效访问GPU。 Vulkan的设计目标是提供一个更轻量级、更高效的图形API,以取代OpenGL等传统的图形API。 作为业内开放标准的现代GPU API,开发人员能够编写可移植到多个不同平台的应用程序。 3.5. Mesa Mesa 也称为Mesa3D和Mesa 3D图形库,是OpenGL、Vulkan和其他图形API规范的开源实现。 Mesa将这些API规范转换为特定于供应商的图形硬件驱动程序。 Mesa项目最初是作为OpenGL规范的开源实现而开始。经过多年来发展,具有跨平台支持、高性能、开源和扩展性等特点,并且该项目已经扩展到实现更多的图形API,包括OpenGL ES、OpenCL、OpenMAX、VDPAU、VA-API、Vulkan和EGL。 3.6. X Window System 大多数基于Linux的发行版都使用 X Window System (X11,或者简称X) ,它是基于客户端-服务器体系结构,可以在远程环境中使用。 X Window系统基于客户端-服务器体系结构,客户端和服务器可以在同一台机器上也可以不在同一台机器上,就需要一个在客户端和服务器之间传递消息的协议。 X11协议就是负责消息传递,当客户端和服务器在同一台机器上时,消息通过UNIX套接字进行交换,不同机器上通过网络(TCP/IP) 3.7. Wayland Wayland 是一种显示服务协议,不依赖客户端-服务器体系结构,旨在提供一个现代、 安全的的Linux和其他类Unix操作系统窗口系统取代XWindow system,而Weston是Wayland开源显示协议的参考实现 3.8. EGLFS EGLFS是QT自带的一个平台插件,可以在EGL和OpenGL ES之上运行Qt应用程序,而不需要通过X11或Wayland这样的实际窗口系统。EGLFS还支持软件渲染窗口,如QWidget的内容使用CPU渲染成图像,然后上传到纹理中,并由插件进行合成。 四、T527 GPU使用 T527 GPU的使用,还要分两种GPU驱动来说,一种是闭源驱动mali,一种是开源panforst驱动。
4.1、闭源GPU驱动的测试 由于部分 Android 平台 GKI 的要求,默认不开启CONFIG_DEBUG_FS, 导致 cpu_monitor 工具无法获取gpu 的频率信息,于是 mali‑valhall dirver 将 debugfs 相应的功能移动到 sysfs。具体的路径位于:
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu。接下来介绍下 sysfs 调试节点的使用方法。
scene_ctrl:可读写,GPU 是否运行在性能模式
echo 1 >scene_ctrl; GPU将会关闭dvfs,运行在最高频。
0:关闭
1:开启
sunxi_gpu_freq:可读写,用来查看、改变 GPU 的频率
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_freq
Frequency:696MHz; //GPU当前的频率
Utilisation from last show:0%; //GPU当前的负载率,这两个信息是用户最常用的
// 更改GPU的频率,单位是MHz,将GPU频率设为600MHz;同时会将dvfs关闭
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # echo 600 >sunxi_gpu_freq
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_freq
Frequency:600MHz;
Utilisation from last show:0%;
如果更改频率失败,会有以下提示:
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # echo 1 >sunxi_gpu_freq
[ 1212.444659] mali 1800000.gpu: sunxi:mali_kbase:set gpu core clock to 1000000 err ‑22!
注意:虽然更改频率失败,但仍会影响dvfs_ctrl的值,将dvfs_ctrl设为0,即dvfs不再起作用。读写频率的单位MHz。
sunxi_gpu_volt:可读写,用来查看、改变 GPU 的电压 (GPU 独立供电时才能更改电压)
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_volt
920mv
//非独立供电时,尝试更改电压会报错
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # echo 900 >sunxi_gpu_volt
[ 1315.910428] mali 1800000.gpu: sunxi:mali_kbase:[ERR]: GPU not support change voltage!!!
ash: write error: Operation not permitted
注意:读写电压的单位是mv
sunxi_gpu_dvfs:可读写,用来查看、配置 dvfs 对 GPU 的控制
echo 0 >sunxi_gpu_dvfs;//dvfs将不再影响GPU的频率,这个配置,只有内核开启PM_DEVFREQ
并且GPU驱动开启CONFIG_MALI_DEVFREQ选项时才有效。
sunxi_gpu_info:只读,查看 GPU 详细的运行信息和几组重要寄存器的值
/sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_info
voltage:920mV;
idle:on;
scenectrl:off;
dvfs:off;
independent_power:no;
Frequency:600MHz;
Utilisation from last show:0%;
Register state:
GPU_IRQ_RAWSTAT=0x00000000 GPU_STATUS=0x00000100
JOB_IRQ_RAWSTAT=0x90910010 JOB_IRQ_JS_STATE=0x00000001
JS0_STATUS=0x00000000 JS0_HEAD_LO=0x00000000
JS1_STATUS=0x00000000 JS1_HEAD_LO=0x00000000
JS2_STATUS=0x00000000 JS2_HEAD_LO=0x00000000
MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
GPU_IRQ_MASK=0x00000000 JOB_IRQ_MASK=0x00000000 MMU_IRQ_MASK=0x00000000
PWR_OVERRIDE0=0x00000000 PWR_OVERRIDE1=0x00000000
SHADER_CONFIG=0x20000000 L2_MMU_CONFIG=0x00000000
TILER_CONFIG=0x00000000 JM_CONFIG=0x000f0000
4.3、开源GPU驱动Panfrost的测试 具体的路径位于:/sys/devices/platform/soc@3000000/1800000.gpu/devfreq/1800000.gpu
注意:路径和闭源驱动不同了。 embfly-x527:/sys/devices/platform/soc@3000000/1800000.gpu/devfreq/1800000.gp
available_frequencies max_freq subsystem
available_governors min_freq target_freq
cur_freq name timer
device polling_interval trans_stat
governor power uevent
available_frequencies表示可用的GPU频率: #cat available_frequencies
150000000 200000000 300000000 400000000 600000000 696000000
可以看到最高频率是696Mhz,这个和G57标称的有区别,G57标称的最高频率是850MHZ ,而全志只能让它跑在700Mhz,分析估计是散热问题,跑太快,发热量高,最后导致不稳定。
available_governors表示GPU支持的工作方式,和CPU比较类似: #cat available_governors
userspace performance simple_ondemand
GPU的工作支持performance(最高性能),也支持simple_ondemand按照需求调度。那么默认是什么工作方式呢?通过如下指令可以获得: #cat governor
simple_ondemand
目前不得而知如何让其默认工作在性能模式。
4.3、开源GPU驱动Panfrost下glmark2的跑分
glmark2是一个用于评估OpenGL(图形编程接口)性能的基准测试工具。它可以测试图形处理器(GPU)在处理图形渲染任务时的性能表现。 root@Embfly-x527:/$ glmark2-es2-drm
[ 135.729283] [drm] [LVDS]sunxi_lvds_connector_get_modes start
=======================================================
glmark2 2021.02
=======================================================
OpenGL Information
GL_VENDOR: Panfrost
GL_RENDERER: Mali-G57 (Panfrost)
GL_VERSION: OpenGL ES 3.1 Mesa 22.2.2
=======================================================
[build] use-vbo=false: FPS: 59 FrameTime: 16.949 ms
[build] use-vbo=true: FPS: 59 FrameTime: 16.949 ms
[texture] texture-filter=nearest: FPS: 59 FrameTime: 16.949 ms
[texture] texture-filter=linear: FPS: 59 FrameTime: 16.949 ms
[texture] texture-filter=mipmap: FPS: 59 FrameTime: 16.949 ms
[shading] shading=gouraud: FPS: 59 FrameTime: 16.949 ms
[shading] shading=blinn-phong-inf: FPS: 59 FrameTime: 16.949 ms
[shading] shading=phong: FPS: 59 FrameTime: 16.949 ms
[shading] shading=cel: FPS: 59 FrameTime: 16.949 ms
[bump] bump-render=high-poly: FPS: 59 FrameTime: 16.949 ms
[bump] bump-render=normals: FPS: 59 FrameTime: 16.949 ms
[bump] bump-render=height: FPS: 59 FrameTime: 16.949 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 59 FrameTime: 16.949 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 59 FrameTime: 16.949 ms
[pulsar] light=false:quads=5:texture=false: FPS: 59 FrameTime: 16.949 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 59 FrameTime: 16.949 ms
[desktop] effect=shadow:windows=4: FPS: 59 FrameTime: 16.949 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 16.949 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 59 FrameTime: 16.949 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 16.949 ms
[ideas] speed=duration: FPS: 59 FrameTime: 16.949 ms
[jellyfish] <default>: FPS: 59 FrameTime: 16.949 ms
[terrain] <default>: FPS: 14 FrameTime: 71.429 ms
[shadow] <default>: FPS: 59 FrameTime: 16.949 ms
[refract] <default>: FPS: 43 FrameTime: 23.256 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 59 FrameTime: 16.949 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 59 FrameTime: 16.949 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 59 FrameTime: 16.949 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 59 FrameTime: 16.949 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
=======================================================
glmark2 Score: 57
=======================================================
///////////////////////////////////////////
glmark2-es-wayland测试先要启动weston,否则不工作
root@Embfly-x527:/$ /etc/init.d/S40weston start
mkdir: can't create directory '/tmp/wayland': File exists
root@Embfly-x527:/$ Date: 2000-01-01 UTC
[00:08:15.443] weston 9.0.0
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 9.0.0
[00:08:15.444] Command line: weston --backend=drm-backend.so --tty=1 --xwayland
[00:08:15.444] OS: Linux, 5.15.147, #5 SMP PREEMPT Sat Jul 19 14:38:28 CST 2025, aarch64
[00:08:15.444] Using config file '/etc/xdg/weston/weston.ini'
[00:08:15.444] Output repaint window is 7 ms maximum.
[00:08:15.444] Loading module '/usr/lib/libweston-9/drm-backend.so'
[00:08:15.446] initializing drm backend
[00:08:15.449] using /dev/dri/card0
[00:08:15.449] DRM: supports atomic modesetting
[00:08:15.449] DRM: supports GBM modifiers
[00:08:15.449] DRM: supports picture aspect ratio
[00:08:15.449] Loading module '/usr/lib/libweston-9/gl-renderer.so'
[00:08:15.477] 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_device
EGL_EXT_platform_wayland EGL_KHR_platform_wayland
EGL_MESA_platform_gbm EGL_KHR_platform_gbm
EGL_MESA_platform_surfaceless
[00:08:15.481] EGL version: 1.4
[00:08:15.481] EGL vendor: Mesa Project
[00:08:15.481] EGL client APIs: OpenGL OpenGL_ES
[00:08:15.481] EGL extensions: EGL_ANDROID_blob_cache 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_context_flush_control
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_partial_update
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_MESA_query_driver
EGL_WL_bind_wayland_display
[00:08:15.482] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
[00:08:15.482] EGL_KHR_surfaceless_context available
[00:08:15.486] GL version: OpenGL ES 3.1 Mesa 22.2.2
[00:08:15.486] GLSL version: OpenGL ES GLSL ES 3.10
[00:08:15.486] GL vendor: Panfrost
[00:08:15.486] GL renderer: Mali-G57 (Panfrost)
[00:08:15.487] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1
GL_EXT_texture_compression_rgtc 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_standard_derivatives
GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float
GL_OES_texture_float_linear GL_OES_texture_half_float
GL_OES_texture_half_float_linear GL_OES_texture_npot
GL_OES_vertex_half_float GL_EXT_draw_instanced
GL_EXT_texture_sRGB_decode GL_OES_EGL_image
GL_OES_depth_texture GL_OES_packed_depth_stencil
GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render
GL_OES_get_program_binary GL_APPLE_texture_max_level
GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
GL_NV_pack_subimage GL_EXT_frag_depth
GL_NV_fbo_color_attachments GL_OES_EGL_image_external
GL_OES_EGL_sync GL_OES_vertex_array_object
GL_ANGLE_pack_reverse_row_order
GL_ANGLE_texture_compression_dxt3
GL_ANGLE_texture_compression_dxt5
GL_EXT_occlusion_query_boolean GL_EXT_texture_rg
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_NV_pixel_buffer_object
GL_OES_depth_texture_cube_map GL_OES_required_internalformat
GL_OES_surfaceless_context GL_EXT_color_buffer_float
GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects
GL_EXT_shader_framebuffer_fetch
GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix
GL_EXT_compressed_ETC1_RGB8_sub_texture
GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex
GL_EXT_gpu_shader5 GL_EXT_primitive_bounding_box
GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp
GL_EXT_texture_buffer GL_EXT_texture_view
GL_KHR_blend_equation_advanced
GL_KHR_blend_equation_advanced_coherent
GL_KHR_context_flush_control GL_NV_image_formats
GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex
GL_OES_gpu_shader5 GL_OES_primitive_bounding_box
GL_OES_sample_shading GL_OES_sample_variables
GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation
GL_OES_texture_border_clamp GL_OES_texture_buffer
GL_OES_texture_stencil8
GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view
GL_EXT_blend_func_extended GL_EXT_float_blend
GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error
GL_KHR_texture_compression_astc_sliced_3d
GL_OES_EGL_image_external_essl3 GL_OES_shader_image_atomic
GL_EXT_multisampled_render_to_texture
GL_EXT_multisampled_render_to_texture2
GL_EXT_texture_compression_s3tc_srgb
GL_MESA_shader_integer_functions GL_EXT_color_buffer_half_float
GL_EXT_texture_compression_bptc
GL_EXT_texture_mirror_clamp_to_edge
GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage
GL_EXT_shader_framebuffer_fetch_non_coherent
GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y
GL_EXT_depth_clamp GL_MESA_bgra
[00:08:15.817] GL ES 2 renderer features:
read-back format: BGRA
wl_shm sub-image to texture: yes
EGL Wayland extension: yes
[00:08:15.825] event2 - sunxi-gpadc0/channel3/input0: not tagged as supported input device
[00:08:15.854] event2 - not usi[ 492.639666] [drm] [LVDS]sunxi_lvds_connector_get_modes start
ng input device '/dev/input/even[ 492.647254] [drm] sunxi-hdmi: drm hdmi detect: connect
t2'
[00:08:15.855] event3 - su[ 492.655579] [drm] sunxi-hdmi: drm get edid support modes: 42
nxi-gpadc0/channel4/input0: not tagged as supported input device
[00:08:15.901] event3 - not using input device '/dev/input/event3'
[00:08:15.903] event4 - sunxi-gpadc0/channel5/input0: not tagged as supported input device
[00:08:15.953] event4 - not using input device '/dev/input/event4'
[00:08:15.955] event5 - sunxi-gpadc0/channel6/input0: not tagged as supported input device
[00:08:15.986] event5 - not using input device '/dev/input/event5'
[00:08:15.987] event6 - sunxi-gpadc0/channel7/input0: not tagged as supported input device
[00:08:16.029] event6 - not using input device '/dev/input/event6'
[00:08:16.031] event0 - sunxi-keyboard: is tagged by udev as: Keyboard
[00:08:16.031] event0 - sunxi-keyboard: device is a keyboard
[00:08:16.033] event1 - sunxi_ir_recv: is tagged by udev as: Keyboard Pointingstick Joystick
[00:08:16.033] event1 - sunxi_ir_recv: device is a pointer
[00:08:16.033] event1 - sunxi_ir_recv: device is a keyboard
[00:08:16.035] event7 - axp2202-pek: is tagged by udev as: Keyboard
[00:08:16.035] event7 - axp2202-pek: device is a keyboard
[00:08:16.037] event8 - audiocodec Headphones: is tagged by udev as: Keyboard Switch
[00:08:16.037] event8 - audiocodec Headphones: device is a keyboard
[00:08:16.060] libinput: configuring device "sunxi-keyboard".
[00:08:16.060] libinput: configuring device "sunxi_ir_recv".
[00:08:16.060] libinput: configuring device "axp2202-pek".
[00:08:16.060] libinput: configuring device "audiocodec Headphones".
[00:08:16.068] DRM: head 'LVDS-1' found, connector 133 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[00:08:16.086] DRM: head 'HDMI-A-1' found, connector 135 is connected, EDID make 'DEL', model 'DELL U2414H', serial '4CWX76429U6L'
[00:08:16.086] Registered plugin API 'weston_drm_output_api_v1' of size 24
[00:08:16.086] Chosen EGL config details: id: 25 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-1 type: win vis_id: XRGB8888 (0x34325258)
[00:08:16.087] Output LVDS-1 (crtc 115) video modes:
1280x800@60.2, preferred, current, 65.0 MHz
[00:08:16.087] associating input device event0 with output LVDS-1 (none by udev)
[00:08:16.087] associating input device event1 with output LVDS-1 (none by udev)
[00:08:16.087] associating input device event7 with output LVDS-1 (none by udev)
[00:08:16.087] associating input device event8 with output LVDS-1 (none by udev)
[00:08:16.087] Output 'LVDS-1' enabled with head(s) LVDS-1
[00:08:16.087] Chosen EGL config details: id: 25 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-1 type: win vis_id: XRGB8888 (0x34325258)
[00:08:16.087] Output HDMI-A-1 (crtc 94) video modes:
1920x1080@60.0, preferred, current, 148.5 MHz
1920x1080@60.0 16:9, 148.5 MHz
1920x1080@59.9 16:9, 148.4 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 MHz
1920x1080@50.0 16:9, 74.2 MHz
1600x1200@60.0, 162.0 MHz
1600x900@60.0, 108.0 MHz
1280x1024@60.0, 108.0 MHz
1280x720@60.0, 74.2 MHz
1280x720@60.0 16:9, 74.2 MHz
1280x720@59.9 16:9, 74.2 MHz
1280x720@50.0 16:9, 74.2 MHz
1024x768@60.0, 65.0 MHz
800x600@60.3, 40.0 MHz
720x576@50.0 16:9, 27.0 MHz
720x576@50.0 16:9, 13.5 MHz
720x480@60.0 4:3, 27.0 MHz
720x480@60.0 16:9, 27.0 MHz
720x480@59.9, 27.0 MHz
720x480@59.9 16:9, 27.0 MHz
720x480@59.9 4:3, 27.0 MHz
720x480@60.0 16:9, 13.5 MHz
720x480@59.9 16:9, 13.5 MHz
640x480@60.0 4:3, 25.2 MHz
640x480@59.9, 25.2 MHz
640x480@59.9 4:3, 25.2 MHz
[00:08:16.087] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
[00:08:16.087] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[00:08:16.418] Loading module '/usr/lib/weston/desktop-shell.so'
[00:08:16.419] launching '/usr/libexec/weston-keyboard'
[00:08:16.421] Loading module '/usr/lib/libweston-9/xwayland.so'
[00:08:16.440] Registered plugin API 'weston_xwayland_v1' of size 32
[00:08:16.440] Registered plugin API 'weston_xwayland_surface_v1' of si[ 493.060950] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
ze 16
[00:08:16.440] xserver listening on display :0
[00:08:16.440] launching '/usr/libexec/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-none'
Fontconfig warning: "/usr/share/fontconfig/conf.avail/44-wqy-zenhei.conf", line 11: Having multiple values in <test> isn't supported and may not work as expected
Fontconfig warning: "/usr/share/fontconfig/conf.avail/44-wqy-zenhei.conf", line 11: Having multiple values in <test> isn't supported and may not work as expected
xkbcommon: ERROR: couldn't find a Compose file for locale "C" (mapped to "C")
could not create XKB compose table for locale 'C'. Disabiling compose
xkbcommon: ERROR: couldn't find a Compose file for locale "C" (mapped to "C")
could not create XKB compose table for locale 'C'. Disabiling compose
[ 494.282726] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
[ 494.317721] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
root@Embfly-x527:/$ glmark2-es2-wayland
=======================================================
glmark2 2021.02
=======================================================
OpenGL Information
GL_VENDOR: Panfrost
GL_RENDERER: Mali-G57 (Panfrost)
GL_VERSION: OpenGL ES 3.1 Mesa 22.2.2
=======================================================
[build] use-vbo=false: FPS: 442 FrameTime: 2.262 ms
[build] use-vbo=true: FPS: 676 FrameTime: 1.479 ms
[texture] texture-filter=nearest: FPS: 672 FrameTime: 1.488 ms
[texture] texture-filter=linear: FPS: 651 FrameTime: 1.536 ms
[texture] texture-filter=mipmap:[ 553.106439] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
[ 553.115778] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
FPS: 664 FrameTime: 1.506 ms
[shading] shading=gouraud: FPS: 695 FrameTime: 1.439 ms
[shading] shading=blinn-phong-inf: FPS: 665 FrameTime: 1.504 ms
[shading] shading=phong: FPS: 667 FrameTime: 1.499 ms
[shading] shading=cel: FPS: 659 FrameTime: 1.517 ms
[bump] bump-render=high-poly: FPS: 459 FrameTime: 2.179 ms
[bump] bump-render=normals:[ 613.105150] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
[ 613.114472] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
FPS: 669 FrameTime: 1.495 ms
[bump] bump-render=height: FPS: 655 FrameTime: 1.527 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 713 FrameTime: 1.403 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 298 FrameTime: 3.356 ms
[pulsar] light=false:quads=5:texture=false: FPS: 642 FrameTime: 1.558 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 255 FrameTime: 3.922 ms
[desktop] effect=shadow:windows=4:[ 673.103149] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
[ 673.112629] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
FPS: 363 FrameTime: 2.755 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 95 FrameTime: 10.526 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 96 FrameTime: 10.417 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 16.949 ms
[ideas] speed=duration: FPS: 230 FrameTime: 4.348 ms
[jellyfish] <default>: FPS: 445 FrameTime: 2.247 ms
[terrain] <default>:[ 733.104976] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
[ 733.124117] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
FPS: 26 FrameTime: 38.462 ms
[shadow] <default>: FPS: 495 FrameTime: 2.020 ms
[refract] <default>: FPS: 70 FrameTime: 14.286 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 702 FrameTime: 1.425 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 669 FrameTime: 1.495 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 712 FrameTime: 1.404 ms
[function] fragment-complexity=low:fragment-steps=5:[ 793.104596] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
[ 793.114071] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
FPS: 686 FrameTime: 1.458 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 714 FrameTime: 1.401 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 679 FrameTime: 1.473 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 712 FrameTime: 1.404 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 670 FrameTime: 1.493 ms
=======================================================
glmark2 Score: 512
=======================================================
|