[ARM入门] 一文带你玩转全志T527的GPU(2)-盈鹏飞嵌入式

[复制链接]
 楼主| embfly 发表于 2025-7-21 15:13 | 显示全部楼层 |阅读模式
本帖最后由 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驱动通信,使用OpenGLVulkan等图形API的应用程序可以通过这些设备文件与GPU进行交互,以实现硬件加速渲染等。
3.2. libdrm
libdrm库,为DRM驱动ioctl提供了包装函数,避免了将内核接口直接暴露给应用程序, 通过libdrm对显示资源进行统一访问,libdrm将命令传递到内核最终由DRM驱动接管各应用的请求并处理。
libdrm是一个底层库,通常被其他图形驱动程序调用,例如MesaXlibva和类似项目。
3.3. OpenGL
OpenGL是一组专门涉及2D和3D图形的硬件加速渲染的规范, 至于内部具体每个函数是如何实现,将由编写OpenGL库的人自行决定,实际通常是GPU的生产商。 OpenGL API实现通常是C语言,也有其他语言的实现,如Java、Golang和Rust等。
OpenGL ESOpenGL 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 ESOpenCLOpenMAXVDPAUVA-APIVulkanEGL
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驱动的测试
  1. 由于部分 Android 平台 GKI 的要求,默认不开启CONFIG_DEBUG_FS, 导致 cpu_monitor 工具无法获取gpu 的频率信息,于是 mali‑valhall dirver 将 debugfs 相应的功能移动到 sysfs。具体的路径位于:
  2. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu。接下来介绍下 sysfs 调试节点的使用方法。
  3. scene_ctrl:可读写,GPU 是否运行在性能模式
  4. echo 1 >scene_ctrl; GPU将会关闭dvfs,运行在最高频。
  5. 0:关闭
  6. 1:开启

  7. sunxi_gpu_freq:可读写,用来查看、改变 GPU 的频率
  8. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_freq
  9. Frequency:696MHz; //GPU当前的频率
  10. Utilisation from last show:0%; //GPU当前的负载率,这两个信息是用户最常用的
  11. // 更改GPU的频率,单位是MHz,将GPU频率设为600MHz;同时会将dvfs关闭
  12. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # echo 600 >sunxi_gpu_freq
  13. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_freq
  14. Frequency:600MHz;
  15. Utilisation from last show:0%;
  16. 如果更改频率失败,会有以下提示:
  17. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # echo 1 >sunxi_gpu_freq
  18. [ 1212.444659] mali 1800000.gpu: sunxi:mali_kbase:set gpu core clock to 1000000 err ‑22!
  19. 注意:虽然更改频率失败,但仍会影响dvfs_ctrl的值,将dvfs_ctrl设为0,即dvfs不再起作用。读写频率的单位MHz。

  20. sunxi_gpu_volt:可读写,用来查看、改变 GPU 的电压 (GPU 独立供电时才能更改电压)
  21. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_volt
  22. 920mv
  23. //非独立供电时,尝试更改电压会报错
  24. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # echo 900 >sunxi_gpu_volt
  25. [ 1315.910428] mali 1800000.gpu: sunxi:mali_kbase:[ERR]: GPU not support change voltage!!!
  26. ash: write error: Operation not permitted
  27. 注意:读写电压的单位是mv

  28. sunxi_gpu_dvfs:可读写,用来查看、配置 dvfs 对 GPU 的控制
  29. echo 0 >sunxi_gpu_dvfs;//dvfs将不再影响GPU的频率,这个配置,只有内核开启PM_DEVFREQ
  30. 并且GPU驱动开启CONFIG_MALI_DEVFREQ选项时才有效。

  31. sunxi_gpu_info:只读,查看 GPU 详细的运行信息和几组重要寄存器的值
  32. /sys/devices/platform/soc@3000000/1800000.gpu/sunxi_gpu # cat sunxi_gpu_info
  33. voltage:920mV;
  34. idle:on;
  35. scenectrl:off;
  36. dvfs:off;
  37. independent_power:no;
  38. Frequency:600MHz;
  39. Utilisation from last show:0%;
  40. Register state:
  41. GPU_IRQ_RAWSTAT=0x00000000 GPU_STATUS=0x00000100
  42. JOB_IRQ_RAWSTAT=0x90910010 JOB_IRQ_JS_STATE=0x00000001
  43. JS0_STATUS=0x00000000 JS0_HEAD_LO=0x00000000
  44. JS1_STATUS=0x00000000 JS1_HEAD_LO=0x00000000
  45. JS2_STATUS=0x00000000 JS2_HEAD_LO=0x00000000
  46. MMU_IRQ_RAWSTAT=0x00000000 GPU_FAULTSTATUS=0x00000000
  47. GPU_IRQ_MASK=0x00000000 JOB_IRQ_MASK=0x00000000 MMU_IRQ_MASK=0x00000000
  48. PWR_OVERRIDE0=0x00000000 PWR_OVERRIDE1=0x00000000
  49. SHADER_CONFIG=0x20000000 L2_MMU_CONFIG=0x00000000
  50. TILER_CONFIG=0x00000000 JM_CONFIG=0x000f0000
4.3、开源GPU驱动Panfrost的测试
具体的路径位于:/sys/devices/platform/soc@3000000/1800000.gpu/devfreq/1800000.gpu

注意:路径和闭源驱动不同了。
  1. embfly-x527:/sys/devices/platform/soc@3000000/1800000.gpu/devfreq/1800000.gp
  2. available_frequencies  max_freq               subsystem
  3. available_governors    min_freq               target_freq
  4. cur_freq               name                   timer
  5. device                 polling_interval       trans_stat
  6. governor               power                  uevent
available_frequencies表示可用的GPU频率:
  1. #cat available_frequencies
  2. 150000000 200000000 300000000 400000000 600000000 696000000
可以看到最高频率是696Mhz,这个和G57标称的有区别,G57标称的最高频率是850MHZ ,而全志只能让它跑在700Mhz,分析估计是散热问题,跑太快,发热量高,最后导致不稳定。

available_governors表示GPU支持的工作方式,和CPU比较类似:
  1. #cat available_governors
  2. userspace performance simple_ondemand
GPU的工作支持performance(最高性能),也支持simple_ondemand按照需求调度。那么默认是什么工作方式呢?通过如下指令可以获得:
  1. #cat governor
  2. simple_ondemand
目前不得而知如何让其默认工作在性能模式。

4.3、开源GPU驱动Panfrost下glmark2的跑分

glmark2是一个用于评估OpenGL(图形编程接口)性能的基准测试工具。它可以测试图形处理器(GPU)在处理图形渲染任务时的性能表现。
  1. root@Embfly-x527:/$ glmark2-es2-drm
  2. [  135.729283] [drm] [LVDS]sunxi_lvds_connector_get_modes start
  3. =======================================================
  4.     glmark2 2021.02
  5. =======================================================
  6.     OpenGL Information
  7.     GL_VENDOR:     Panfrost
  8.     GL_RENDERER:   Mali-G57 (Panfrost)
  9.     GL_VERSION:    OpenGL ES 3.1 Mesa 22.2.2
  10. =======================================================
  11. [build] use-vbo=false: FPS: 59 FrameTime: 16.949 ms
  12. [build] use-vbo=true: FPS: 59 FrameTime: 16.949 ms
  13. [texture] texture-filter=nearest: FPS: 59 FrameTime: 16.949 ms
  14. [texture] texture-filter=linear: FPS: 59 FrameTime: 16.949 ms
  15. [texture] texture-filter=mipmap: FPS: 59 FrameTime: 16.949 ms
  16. [shading] shading=gouraud: FPS: 59 FrameTime: 16.949 ms
  17. [shading] shading=blinn-phong-inf: FPS: 59 FrameTime: 16.949 ms
  18. [shading] shading=phong: FPS: 59 FrameTime: 16.949 ms
  19. [shading] shading=cel: FPS: 59 FrameTime: 16.949 ms
  20. [bump] bump-render=high-poly: FPS: 59 FrameTime: 16.949 ms
  21. [bump] bump-render=normals: FPS: 59 FrameTime: 16.949 ms
  22. [bump] bump-render=height: FPS: 59 FrameTime: 16.949 ms
  23. [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 59 FrameTime: 16.949 ms
  24. [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 59 FrameTime: 16.949 ms
  25. [pulsar] light=false:quads=5:texture=false: FPS: 59 FrameTime: 16.949 ms
  26. [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 59 FrameTime: 16.949 ms
  27. [desktop] effect=shadow:windows=4: FPS: 59 FrameTime: 16.949 ms
  28. [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 16.949 ms
  29. [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 59 FrameTime: 16.949 ms
  30. [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 16.949 ms
  31. [ideas] speed=duration: FPS: 59 FrameTime: 16.949 ms
  32. [jellyfish] <default>: FPS: 59 FrameTime: 16.949 ms
  33. [terrain] <default>: FPS: 14 FrameTime: 71.429 ms
  34. [shadow] <default>: FPS: 59 FrameTime: 16.949 ms
  35. [refract] <default>: FPS: 43 FrameTime: 23.256 ms
  36. [conditionals] fragment-steps=0:vertex-steps=0: FPS: 59 FrameTime: 16.949 ms
  37. [conditionals] fragment-steps=5:vertex-steps=0: FPS: 59 FrameTime: 16.949 ms
  38. [conditionals] fragment-steps=0:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
  39. [function] fragment-complexity=low:fragment-steps=5: FPS: 59 FrameTime: 16.949 ms
  40. [function] fragment-complexity=medium:fragment-steps=5: FPS: 59 FrameTime: 16.949 ms
  41. [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
  42. [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
  43. [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 59 FrameTime: 16.949 ms
  44. =======================================================
  45.                                   glmark2 Score: 57
  46. =======================================================

  47. ///////////////////////////////////////////
  48. glmark2-es-wayland测试先要启动weston,否则不工作
  49. root@Embfly-x527:/$ /etc/init.d/S40weston start
  50. mkdir: can't create directory '/tmp/wayland': File exists
  51. root@Embfly-x527:/$ Date: 2000-01-01 UTC
  52. [00:08:15.443] weston 9.0.0
  53.                https://wayland.freedesktop.org
  54.                Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
  55.                Build: 9.0.0
  56. [00:08:15.444] Command line: weston --backend=drm-backend.so --tty=1 --xwayland
  57. [00:08:15.444] OS: Linux, 5.15.147, #5 SMP PREEMPT Sat Jul 19 14:38:28 CST 2025, aarch64
  58. [00:08:15.444] Using config file '/etc/xdg/weston/weston.ini'
  59. [00:08:15.444] Output repaint window is 7 ms maximum.
  60. [00:08:15.444] Loading module '/usr/lib/libweston-9/drm-backend.so'
  61. [00:08:15.446] initializing drm backend
  62. [00:08:15.449] using /dev/dri/card0
  63. [00:08:15.449] DRM: supports atomic modesetting
  64. [00:08:15.449] DRM: supports GBM modifiers
  65. [00:08:15.449] DRM: supports picture aspect ratio
  66. [00:08:15.449] Loading module '/usr/lib/libweston-9/gl-renderer.so'
  67. [00:08:15.477] EGL client extensions: EGL_EXT_device_base
  68.                EGL_EXT_device_enumeration EGL_EXT_device_query
  69.                EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
  70.                EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device
  71.                EGL_EXT_platform_wayland EGL_KHR_platform_wayland
  72.                EGL_MESA_platform_gbm EGL_KHR_platform_gbm
  73.                EGL_MESA_platform_surfaceless
  74. [00:08:15.481] EGL version: 1.4
  75. [00:08:15.481] EGL vendor: Mesa Project
  76. [00:08:15.481] EGL client APIs: OpenGL OpenGL_ES
  77. [00:08:15.481] EGL extensions: EGL_ANDROID_blob_cache EGL_EXT_buffer_age
  78.                EGL_EXT_image_dma_buf_import
  79.                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
  80.                EGL_KHR_config_attribs EGL_KHR_context_flush_control
  81.                EGL_KHR_create_context EGL_KHR_create_context_no_error
  82.                EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses
  83.                EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image
  84.                EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image
  85.                EGL_KHR_gl_texture_cubemap_image EGL_KHR_image
  86.                EGL_KHR_image_base EGL_KHR_image_pixmap
  87.                EGL_KHR_no_config_context EGL_KHR_partial_update
  88.                EGL_KHR_reusable_sync EGL_KHR_surfaceless_context
  89.                EGL_EXT_pixel_format_float EGL_KHR_wait_sync
  90.                EGL_MESA_configless_context EGL_MESA_drm_image
  91.                EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
  92.                EGL_WL_bind_wayland_display
  93. [00:08:15.482] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
  94. [00:08:15.482] EGL_KHR_surfaceless_context available
  95. [00:08:15.486] GL version: OpenGL ES 3.1 Mesa 22.2.2
  96. [00:08:15.486] GLSL version: OpenGL ES GLSL ES 3.10
  97. [00:08:15.486] GL vendor: Panfrost
  98. [00:08:15.486] GL renderer: Mali-G57 (Panfrost)
  99. [00:08:15.487] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
  100.                GL_EXT_texture_filter_anisotropic
  101.                GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1
  102.                GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888
  103.                GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
  104.                GL_OES_element_index_uint GL_OES_fbo_render_mipmap
  105.                GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
  106.                GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float
  107.                GL_OES_texture_float_linear GL_OES_texture_half_float
  108.                GL_OES_texture_half_float_linear GL_OES_texture_npot
  109.                GL_OES_vertex_half_float GL_EXT_draw_instanced
  110.                GL_EXT_texture_sRGB_decode GL_OES_EGL_image
  111.                GL_OES_depth_texture GL_OES_packed_depth_stencil
  112.                GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render
  113.                GL_OES_get_program_binary GL_APPLE_texture_max_level
  114.                GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
  115.                GL_NV_pack_subimage GL_EXT_frag_depth
  116.                GL_NV_fbo_color_attachments GL_OES_EGL_image_external
  117.                GL_OES_EGL_sync GL_OES_vertex_array_object
  118.                GL_ANGLE_pack_reverse_row_order
  119.                GL_ANGLE_texture_compression_dxt3
  120.                GL_ANGLE_texture_compression_dxt5
  121.                GL_EXT_occlusion_query_boolean GL_EXT_texture_rg
  122.                GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer
  123.                GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil
  124.                GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug
  125.                GL_KHR_texture_compression_astc_ldr GL_NV_pixel_buffer_object
  126.                GL_OES_depth_texture_cube_map GL_OES_required_internalformat
  127.                GL_OES_surfaceless_context GL_EXT_color_buffer_float
  128.                GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects
  129.                GL_EXT_shader_framebuffer_fetch
  130.                GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix
  131.                GL_EXT_compressed_ETC1_RGB8_sub_texture
  132.                GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex
  133.                GL_EXT_gpu_shader5 GL_EXT_primitive_bounding_box
  134.                GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp
  135.                GL_EXT_texture_buffer GL_EXT_texture_view
  136.                GL_KHR_blend_equation_advanced
  137.                GL_KHR_blend_equation_advanced_coherent
  138.                GL_KHR_context_flush_control GL_NV_image_formats
  139.                GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex
  140.                GL_OES_gpu_shader5 GL_OES_primitive_bounding_box
  141.                GL_OES_sample_shading GL_OES_sample_variables
  142.                GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation
  143.                GL_OES_texture_border_clamp GL_OES_texture_buffer
  144.                GL_OES_texture_stencil8
  145.                GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view
  146.                GL_EXT_blend_func_extended GL_EXT_float_blend
  147.                GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error
  148.                GL_KHR_texture_compression_astc_sliced_3d
  149.                GL_OES_EGL_image_external_essl3 GL_OES_shader_image_atomic
  150.                GL_EXT_multisampled_render_to_texture
  151.                GL_EXT_multisampled_render_to_texture2
  152.                GL_EXT_texture_compression_s3tc_srgb
  153.                GL_MESA_shader_integer_functions GL_EXT_color_buffer_half_float
  154.                GL_EXT_texture_compression_bptc
  155.                GL_EXT_texture_mirror_clamp_to_edge
  156.                GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage
  157.                GL_EXT_shader_framebuffer_fetch_non_coherent
  158.                GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y
  159.                GL_EXT_depth_clamp GL_MESA_bgra
  160. [00:08:15.817] GL ES 2 renderer features:
  161.                read-back format: BGRA
  162.                wl_shm sub-image to texture: yes
  163.                EGL Wayland extension: yes
  164. [00:08:15.825] event2  - sunxi-gpadc0/channel3/input0: not tagged as supported input device
  165. [00:08:15.854] event2  - not usi[  492.639666] [drm] [LVDS]sunxi_lvds_connector_get_modes start
  166. ng input device '/dev/input/even[  492.647254] [drm] sunxi-hdmi: drm hdmi detect: connect
  167. t2'
  168. [00:08:15.855] event3  - su[  492.655579] [drm] sunxi-hdmi: drm get edid support modes: 42
  169. nxi-gpadc0/channel4/input0: not tagged as supported input device
  170. [00:08:15.901] event3  - not using input device '/dev/input/event3'
  171. [00:08:15.903] event4  - sunxi-gpadc0/channel5/input0: not tagged as supported input device
  172. [00:08:15.953] event4  - not using input device '/dev/input/event4'
  173. [00:08:15.955] event5  - sunxi-gpadc0/channel6/input0: not tagged as supported input device
  174. [00:08:15.986] event5  - not using input device '/dev/input/event5'
  175. [00:08:15.987] event6  - sunxi-gpadc0/channel7/input0: not tagged as supported input device
  176. [00:08:16.029] event6  - not using input device '/dev/input/event6'
  177. [00:08:16.031] event0  - sunxi-keyboard: is tagged by udev as: Keyboard
  178. [00:08:16.031] event0  - sunxi-keyboard: device is a keyboard
  179. [00:08:16.033] event1  - sunxi_ir_recv: is tagged by udev as: Keyboard Pointingstick Joystick
  180. [00:08:16.033] event1  - sunxi_ir_recv: device is a pointer
  181. [00:08:16.033] event1  - sunxi_ir_recv: device is a keyboard
  182. [00:08:16.035] event7  - axp2202-pek: is tagged by udev as: Keyboard
  183. [00:08:16.035] event7  - axp2202-pek: device is a keyboard
  184. [00:08:16.037] event8  - audiocodec Headphones: is tagged by udev as: Keyboard Switch
  185. [00:08:16.037] event8  - audiocodec Headphones: device is a keyboard
  186. [00:08:16.060] libinput: configuring device "sunxi-keyboard".
  187. [00:08:16.060] libinput: configuring device "sunxi_ir_recv".
  188. [00:08:16.060] libinput: configuring device "axp2202-pek".
  189. [00:08:16.060] libinput: configuring device "audiocodec Headphones".
  190. [00:08:16.068] DRM: head 'LVDS-1' found, connector 133 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
  191. [00:08:16.086] DRM: head 'HDMI-A-1' found, connector 135 is connected, EDID make 'DEL', model 'DELL U2414H', serial '4CWX76429U6L'
  192. [00:08:16.086] Registered plugin API 'weston_drm_output_api_v1' of size 24
  193. [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)
  194. [00:08:16.087] Output LVDS-1 (crtc 115) video modes:
  195.                1280x800@60.2, preferred, current, 65.0 MHz
  196. [00:08:16.087] associating input device event0 with output LVDS-1 (none by udev)
  197. [00:08:16.087] associating input device event1 with output LVDS-1 (none by udev)
  198. [00:08:16.087] associating input device event7 with output LVDS-1 (none by udev)
  199. [00:08:16.087] associating input device event8 with output LVDS-1 (none by udev)
  200. [00:08:16.087] Output 'LVDS-1' enabled with head(s) LVDS-1
  201. [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)
  202. [00:08:16.087] Output HDMI-A-1 (crtc 94) video modes:
  203.                1920x1080@60.0, preferred, current, 148.5 MHz
  204.                1920x1080@60.0 16:9, 148.5 MHz
  205.                1920x1080@59.9 16:9, 148.4 MHz
  206.                1920x1080@60.0, 74.2 MHz
  207.                1920x1080@60.0 16:9, 74.2 MHz
  208.                1920x1080@59.9 16:9, 74.2 MHz
  209.                1920x1080@50.0 16:9, 148.5 MHz
  210.                1920x1080@50.0 16:9, 74.2 MHz
  211.                1600x1200@60.0, 162.0 MHz
  212.                1600x900@60.0, 108.0 MHz
  213.                1280x1024@60.0, 108.0 MHz
  214.                1280x720@60.0, 74.2 MHz
  215.                1280x720@60.0 16:9, 74.2 MHz
  216.                1280x720@59.9 16:9, 74.2 MHz
  217.                1280x720@50.0 16:9, 74.2 MHz
  218.                1024x768@60.0, 65.0 MHz
  219.                800x600@60.3, 40.0 MHz
  220.                720x576@50.0 16:9, 27.0 MHz
  221.                720x576@50.0 16:9, 13.5 MHz
  222.                720x480@60.0 4:3, 27.0 MHz
  223.                720x480@60.0 16:9, 27.0 MHz
  224.                720x480@59.9, 27.0 MHz
  225.                720x480@59.9 16:9, 27.0 MHz
  226.                720x480@59.9 4:3, 27.0 MHz
  227.                720x480@60.0 16:9, 13.5 MHz
  228.                720x480@59.9 16:9, 13.5 MHz
  229.                640x480@60.0 4:3, 25.2 MHz
  230.                640x480@59.9, 25.2 MHz
  231.                640x480@59.9 4:3, 25.2 MHz
  232. [00:08:16.087] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
  233. [00:08:16.087] Compositor capabilities:
  234.                arbitrary surface rotation: yes
  235.                screen capture uses y-flip: yes
  236.                presentation clock: CLOCK_MONOTONIC, id 1
  237.                presentation clock resolution: 0.000000001 s
  238. [00:08:16.418] Loading module '/usr/lib/weston/desktop-shell.so'
  239. [00:08:16.419] launching '/usr/libexec/weston-keyboard'
  240. [00:08:16.421] Loading module '/usr/lib/libweston-9/xwayland.so'
  241. [00:08:16.440] Registered plugin API 'weston_xwayland_v1' of size 32
  242. [00:08:16.440] Registered plugin API 'weston_xwayland_surface_v1' of si[  493.060950] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  243. ze 16
  244. [00:08:16.440] xserver listening on display :0
  245. [00:08:16.440] launching '/usr/libexec/weston-desktop-shell'
  246. could not load cursor 'dnd-move'
  247. could not load cursor 'dnd-move'
  248. could not load cursor 'dnd-copy'
  249. could not load cursor 'dnd-copy'
  250. could not load cursor 'dnd-none'
  251. could not load cursor 'dnd-none'
  252. 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
  253. 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
  254. xkbcommon: ERROR: couldn't find a Compose file for locale "C" (mapped to "C")
  255. could not create XKB compose table for locale 'C'.  Disabiling compose
  256. xkbcommon: ERROR: couldn't find a Compose file for locale "C" (mapped to "C")
  257. could not create XKB compose table for locale 'C'.  Disabiling compose
  258. [  494.282726] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  259. [  494.317721] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>

  260. root@Embfly-x527:/$ glmark2-es2-wayland
  261. =======================================================
  262.     glmark2 2021.02
  263. =======================================================
  264.     OpenGL Information
  265.     GL_VENDOR:     Panfrost
  266.     GL_RENDERER:   Mali-G57 (Panfrost)
  267.     GL_VERSION:    OpenGL ES 3.1 Mesa 22.2.2
  268. =======================================================
  269. [build] use-vbo=false: FPS: 442 FrameTime: 2.262 ms
  270. [build] use-vbo=true: FPS: 676 FrameTime: 1.479 ms
  271. [texture] texture-filter=nearest: FPS: 672 FrameTime: 1.488 ms
  272. [texture] texture-filter=linear: FPS: 651 FrameTime: 1.536 ms
  273. [texture] texture-filter=mipmap:[  553.106439] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  274. [  553.115778] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  275. FPS: 664 FrameTime: 1.506 ms
  276. [shading] shading=gouraud: FPS: 695 FrameTime: 1.439 ms
  277. [shading] shading=blinn-phong-inf: FPS: 665 FrameTime: 1.504 ms
  278. [shading] shading=phong: FPS: 667 FrameTime: 1.499 ms
  279. [shading] shading=cel: FPS: 659 FrameTime: 1.517 ms
  280. [bump] bump-render=high-poly: FPS: 459 FrameTime: 2.179 ms
  281. [bump] bump-render=normals:[  613.105150] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  282. [  613.114472] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  283. FPS: 669 FrameTime: 1.495 ms
  284. [bump] bump-render=height: FPS: 655 FrameTime: 1.527 ms
  285. [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 713 FrameTime: 1.403 ms
  286. [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 298 FrameTime: 3.356 ms
  287. [pulsar] light=false:quads=5:texture=false: FPS: 642 FrameTime: 1.558 ms
  288. [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 255 FrameTime: 3.922 ms
  289. [desktop] effect=shadow:windows=4:[  673.103149] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  290. [  673.112629] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  291. FPS: 363 FrameTime: 2.755 ms
  292. [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 95 FrameTime: 10.526 ms
  293. [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 96 FrameTime: 10.417 ms
  294. [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 16.949 ms
  295. [ideas] speed=duration: FPS: 230 FrameTime: 4.348 ms
  296. [jellyfish] <default>: FPS: 445 FrameTime: 2.247 ms
  297. [terrain] <default>:[  733.104976] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  298. [  733.124117] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  299. FPS: 26 FrameTime: 38.462 ms
  300. [shadow] <default>: FPS: 495 FrameTime: 2.020 ms
  301. [refract] <default>: FPS: 70 FrameTime: 14.286 ms
  302. [conditionals] fragment-steps=0:vertex-steps=0: FPS: 702 FrameTime: 1.425 ms
  303. [conditionals] fragment-steps=5:vertex-steps=0: FPS: 669 FrameTime: 1.495 ms
  304. [conditionals] fragment-steps=0:vertex-steps=5: FPS: 712 FrameTime: 1.404 ms
  305. [function] fragment-complexity=low:fragment-steps=5:[  793.104596] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  306. [  793.114071] [drm] sunxi-hdmi: drm hdmi check mode: unchange >>>>>>>>>>>>>>>>
  307. FPS: 686 FrameTime: 1.458 ms
  308. [function] fragment-complexity=medium:fragment-steps=5: FPS: 714 FrameTime: 1.401 ms
  309. [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 679 FrameTime: 1.473 ms
  310. [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 712 FrameTime: 1.404 ms
  311. [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 670 FrameTime: 1.493 ms
  312. =======================================================
  313.                                   glmark2 Score: 512
  314. =======================================================






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yangjiaxu 发表于 2025-7-30 11:45 | 显示全部楼层
现在T527是不是就比较适合做电视机顶盒和工控机这类的东西啊 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部