飞腾派
直播中

dven

7年用户 43经验值
擅长:嵌入式技术 接口/总线/驱动 控制/MCU
私信 关注

【飞腾派4G版免费试用】仙女姐姐的嵌入式实验室番外篇~诊断并解决OpenKylin系统卡顿问题

上回我们已经把OpenKylin系统镜像成功烧录到飞腾派的SD卡中了,但是这个版本的固件其实还有很多bug...

少女:姐姐救命,这是个啥破系统啊?卡死了,能帮忙弄下吗
曦儿:好的,姐姐这就去看看

诊断问题

刚刚刷入的麒麟系统果然出现了明显的卡顿,用glxgears试了下,齿轮帧率只有大约10FPS

2023-12-10_17-36.png

为了查找卡顿的根本原因,我们使用top命令查看CPU占用率openkylin@openkylin:~$ top,结果如下

2023-12-09_05-06.png

UKUI和xorg本身占用了85.8%的CPU,不卡才怪呢。但是,不应该啊,D2000没那么不堪吧

在使用lscpu查看CPU信息的时候,发现了问题所在

openkylin@openkylin:~$ lscpu
Architecture:           aarch64
  CPU op-mode(s):       32-bit, 64-bit
  Byte Order:           Little Endian
CPU(s):                 4
  On-line CPU(s) list:  0-3
Vendor ID:              Phytium
  Model name:           Phytium,FT-E2000/Little
    Model:              4
    Thread(s) per core: 1
    Core(s) per socket: 2
    Socket(s):          1
    Stepping:           0x0
    CPU(s) scaling MHz: 12%
    CPU max MHz:        1500.0000
    CPU min MHz:        187.5000
    BogoMIPS:           100.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid sha3 sha512
  Model name:           Phytium,FT-E2000/Big
    Model:              3
    Thread(s) per core: 1
    Core(s) per socket: 1
    Socket(s):          2
    Stepping:           0x1
    CPU(s) scaling MHz: 12%
    CPU max MHz:        1800.0000
    CPU min MHz:        225.0000
    BogoMIPS:           100.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid sha3 sha512

CPU(s) scaling MHz: 12%,处理器只跑在百分之十二的超低主频下,lshw再次证明了问题,187MHz...相当于586运行Win10,能不卡嘛

2023-12-09_05-46.png

解决问题

已经成功定位到了问题,那就容易解决了,终端输入命令echo performance | sudo tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor

按下回车,系统立马像打了鸡血一样活过来了

再次查看CPU信息,可以看出CPU已经跑在正常的主频下

openkylin@openkylin:~$ lscpu | grep "scaling"
CPU(s) scaling MHz: 100%
CPU(s) scaling MHz: 100%

再次运行glxgears,可以欣喜地发现,小齿轮的平均帧率竟有150+FPS

2023-12-13_17-33.png


今天的教程如果对你也有帮助的话,可以点个赞哟!
iPhone_c181b_IMG_4078.jpg

回帖(2)

Jonny

2023-12-14 16:59:03
大神,快速定位问题并解决,666。
举报

dven

2023-12-15 00:31:25
可能有些好奇的朋友们会问了,人家瑞芯微的RK3399/3566/3588,全志的H6/H616,晶晨的S905X3/S922X/A311D/A311D2...同是ARM,甚至有的性能还远不如D2000,这些芯片为啥低频下不卡啦?
2023-12-14_00-29_1.png

RK3399即便在408MHz的主频下,CPU空载占用率也很低
查看硬件参数会发现一个问题,常见的ARM SoC基本都有内置GPU,不管是ARM公版的Mali,还是高通Adreno或是江河日下的Imagination和Vivante,甚至树莓派自带那个名不见经传的Broadcom VideoCore,而D2000是否有GPU,飞腾方面并没有明确说明

在hwinfo下,很容易找到RK3399的Mail GPU
  1. firefly@firefly:~[        DISCUZ_CODE_4145        ]nbsp;sudo hwinfo
    .........
    >> pci.1: sysfs drivers
    ----- sysfs driver list (id 0x0000000000000000) -----
                mali: /devices/platform/ff9a0000.gpu
    .........
    >> pci.7: platform
      platform device: name = ff9a0000.gpu
        path = /devices/platform/ff9a0000.gpu
        type = "gpu", modalias = "of:NgpuTCarm,malit860Carm,malit86xCarm,malit8xxCarm,mali-midgard", driver = "mali"
    .........
      P: /devices/platform/ff9a0000.gpu
      L: 0
      E: DEVPATH=/devices/platform/ff9a0000.gpu
      E: SUBSYSTEM=platform
      E: DRIVER=mali
      E: OF_NAME=gpu
      E: OF_FULLNAME=/gpu@ff9a0000
      E: OF_COMPATIBLE_0=arm,malit860
      E: OF_COMPATIBLE_1=arm,malit86x
      E: OF_COMPATIBLE_2=arm,malit8xx
      E: OF_COMPATIBLE_3=arm,mali-midgard
      E: OF_COMPATIBLE_N=4
      E: MODALIAS=of:NgpuTCarm,malit860Carm,malit86xCarm,malit8xxCarm,mali-midgard
      
      P: /devices/platform/ff9a0000.gpu/devfreq/ff9a0000.gpu
      L: 0
      E: DEVPATH=/devices/platform/ff9a0000.gpu/devfreq/ff9a0000.gpu
      E: SUBSYSTEM=devfreq
      
      P: /devices/platform/ff9a0000.gpu/misc/mali0
      N: mali0
      L: 0
      E: DEVPATH=/devices/platform/ff9a0000.gpu/misc/mali0
      E: SUBSYSTEM=misc
      E: DEVNAME=/dev/mali0
      E: MAJOR=10
      E: MINOR=55
    .........
而D2000只能看到一个叫"VPU"的不明玩意
  1. openkylin@phytiumpi:~$ sudo hwinfo
    .........
    >> pci.7: platform
      platform device: name = 32b00000.vpu
        path = /devices/platform/soc/32b00000.vpu
        type = "vpu", modalias = "of:NvpuT(null)Cphytium,vpu", driver = ""
    .........
      P: /devices/platform/soc/32b00000.vpu
      M: 32b00000.vpu
      U: platform
      E: DEVPATH=/devices/platform/soc/32b00000.vpu
      E: SUBSYSTEM=platform
      E: OF_NAME=vpu
      E: OF_FULLNAME=/soc/vpu@32b00000
      E: OF_COMPATIBLE_0=phytium,vpu
      E: OF_COMPATIBLE_N=1
      E: MODALIAS=of:NvpuT(null)Cphytium,vpu
      E: USEC_INITIALIZED=11093412
      E: ID_PATH=platform-32b00000.vpu
      E: ID_PATH_TAG=platform-32b00000_vpu
    .........
这个"VPU"究竟是否具备图形渲染的功能呢?为了搞清楚这个问题,需要通过一些方法进行测试
Mesa 3D图形库的mesa-utils和mesa-utils-extra带了一些小工具
  1. openkylin@openkylin:~[        DISCUZ_CODE_4147        ]nbsp; glxinfo -B
    name of display: :0
    display: :0  screen: 0
    direct rendering: Yes
    Extended renderer info (GLX_MESA_query_renderer):
        Vendor: Mesa/X.org (0xffffffff)
        Device: llvmpipe (LLVM 15.0.7, 128 bits) (0xffffffff)
        Version: 22.3.7
        Accelerated: no
        Video memory: 3460MB
        Unified memory: yes
        Preferred profile: core (0x1)
        Max core profile version: 4.5
        Max compat profile version: 4.5
        Max GLES1 profile version: 1.1
        Max GLES[23] profile version: 3.2
    OpenGL vendor string: Mesa/X.org
    OpenGL renderer string: llvmpipe (LLVM 15.0.7, 128 bits)
    OpenGL core profile version string: 4.5 (Core Profile) Mesa 22.3.7
    OpenGL core profile shading language version string: 4.50
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
OpenGL version string: 4.5 (Compatibility Profile) Mesa 22.3.7
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
  • OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.3.7
    OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
    1. openkylin@openkylin:~[        DISCUZ_CODE_4148        ]nbsp; eglinfo
      EGL client extensions string:
          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_EXT_platform_x11 EGL_KHR_platform_x11 EGL_EXT_platform_xcb
          EGL_MESA_platform_gbm EGL_KHR_platform_gbm
          EGL_MESA_platform_surfaceless
    GBM platform:
    EGL API version: 1.4
    EGL vendor string: Mesa Project
    EGL version string: 1.4
    EGL client APIs: OpenGL OpenGL_ES
    EGL extensions string:
        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_reusable_sync
        EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
        EGL_KHR_wait_sync EGL_MESA_configless_context
        EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
    Configurations:
         bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
      id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
    ---------------------------------------------------------------------
    0x01 32  0 10 10 10  2  0  0  0 0 0x30335241--         y  y  y     win
    0x02 32  0 10 10 10  2 16  0  0 0 0x30335241--         y  y  y     win
    0x03 32  0 10 10 10  2 24  0  0 0 0x30335241--         y  y  y     win
    0x04 32  0 10 10 10  2 24  8  0 0 0x30335241--         y  y  y     win
    0x05 32  0 10 10 10  2 32  0  0 0 0x30335241--         y  y  y     win
    0x06 32  0 10 10 10  2  0  0  4 1 0x30335241--         y  y  y     win
    0x07 32  0 10 10 10  2 16  0  4 1 0x30335241--         y  y  y     win
    0x08 32  0 10 10 10  2 24  0  4 1 0x30335241--         y  y  y     win
    0x09 32  0 10 10 10  2 24  8  4 1 0x30335241--         y  y  y     win
    0x0a 32  0 10 10 10  2 32  0  4 1 0x30335241--         y  y  y     win
    0x0b 30  0 10 10 10  0  0  0  0 0 0x30335258--         y  y  y     win
    0x0c 30  0 10 10 10  0 16  0  0 0 0x30335258--         y  y  y     win
    0x0d 30  0 10 10 10  0 24  0  0 0 0x30335258--         y  y  y     win
    0x0e 30  0 10 10 10  0 24  8  0 0 0x30335258--         y  y  y     win
    0x0f 30  0 10 10 10  0 32  0  0 0 0x30335258--         y  y  y     win
    0x10 30  0 10 10 10  0  0  0  4 1 0x30335258--         y  y  y     win
    0x11 30  0 10 10 10  0 16  0  4 1 0x30335258--         y  y  y     win
    0x12 30  0 10 10 10  0 24  0  4 1 0x30335258--         y  y  y     win
    0x13 30  0 10 10 10  0 24  8  4 1 0x30335258--         y  y  y     win
    0x14 30  0 10 10 10  0 32  0  4 1 0x30335258--         y  y  y     win
    0x15 32  0  8  8  8  8  0  0  0 0 0x34325241--         y  y  y     win
    0x16 32  0  8  8  8  8 16  0  0 0 0x34325241--         y  y  y     win
    0x17 32  0  8  8  8  8 24  0  0 0 0x34325241--         y  y  y     win
    0x18 32  0  8  8  8  8 24  8  0 0 0x34325241--         y  y  y     win
    0x19 32  0  8  8  8  8 32  0  0 0 0x34325241--         y  y  y     win
    0x1a 32  0  8  8  8  8  0  0  4 1 0x34325241--         y  y  y     win
    0x1b 32  0  8  8  8  8 16  0  4 1 0x34325241--         y  y  y     win
    0x1c 32  0  8  8  8  8 24  0  4 1 0x34325241--         y  y  y     win
    0x1d 32  0  8  8  8  8 24  8  4 1 0x34325241--         y  y  y     win
    0x1e 32  0  8  8  8  8 32  0  4 1 0x34325241--         y  y  y     win
    0x1f 24  0  8  8  8  0  0  0  0 0 0x34325258--         y  y  y     win
    0x20 24  0  8  8  8  0 16  0  0 0 0x34325258--         y  y  y     win
    0x21 24  0  8  8  8  0 24  0  0 0 0x34325258--         y  y  y     win
    0x22 24  0  8  8  8  0 24  8  0 0 0x34325258--         y  y  y     win
    0x23 24  0  8  8  8  0 32  0  0 0 0x34325258--         y  y  y     win
    0x24 24  0  8  8  8  0  0  0  4 1 0x34325258--         y  y  y     win
    0x25 24  0  8  8  8  0 16  0  4 1 0x34325258--         y  y  y     win
    0x26 24  0  8  8  8  0 24  0  4 1 0x34325258--         y  y  y     win
    0x27 24  0  8  8  8  0 24  8  4 1 0x34325258--         y  y  y     win
    0x28 24  0  8  8  8  0 32  0  4 1 0x34325258--         y  y  y     win
    0x29 16  0  5  6  5  0  0  0  0 0 0x36314752--         y  y  y     win
    0x2a 16  0  5  6  5  0 16  0  0 0 0x36314752--         y  y  y     win
    0x2b 16  0  5  6  5  0 24  0  0 0 0x36314752--         y  y  y     win
    0x2c 16  0  5  6  5  0 24  8  0 0 0x36314752--         y  y  y     win
    0x2d 16  0  5  6  5  0 32  0  0 0 0x36314752--         y  y  y     win
    0x2e 16  0  5  6  5  0  0  0  4 1 0x36314752--         y  y  y     win
    0x2f 16  0  5  6  5  0 16  0  4 1 0x36314752--         y  y  y     win
    0x30 16  0  5  6  5  0 24  0  4 1 0x36314752--         y  y  y     win
    0x31 16  0  5  6  5  0 24  8  4 1 0x36314752--         y  y  y     win
    0x32 16  0  5  6  5  0 32  0  4 1 0x36314752--         y  y  y     win
    0x33 64  0 16 16 16 16  0  0  0 0 0x48344241--         y  y  y     win
    0x34 64  0 16 16 16 16 16  0  0 0 0x48344241--         y  y  y     win
    0x35 64  0 16 16 16 16 24  0  0 0 0x48344241--         y  y  y     win
    0x36 64  0 16 16 16 16 24  8  0 0 0x48344241--         y  y  y     win
    0x37 64  0 16 16 16 16 32  0  0 0 0x48344241--         y  y  y     win
    0x38 64  0 16 16 16 16  0  0  4 1 0x48344241--         y  y  y     win
    0x39 64  0 16 16 16 16 16  0  4 1 0x48344241--         y  y  y     win
    0x3a 64  0 16 16 16 16 24  0  4 1 0x48344241--         y  y  y     win
    0x3b 64  0 16 16 16 16 24  8  4 1 0x48344241--         y  y  y     win
    0x3c 64  0 16 16 16 16 32  0  4 1 0x48344241--         y  y  y     win
    0x3d 48  0 16 16 16  0  0  0  0 0 0x48344258--         y  y  y     win
    0x3e 48  0 16 16 16  0 16  0  0 0 0x48344258--         y  y  y     win
    0x3f 48  0 16 16 16  0 24  0  0 0 0x48344258--         y  y  y     win
    0x40 48  0 16 16 16  0 24  8  0 0 0x48344258--         y  y  y     win
    0x41 48  0 16 16 16  0 32  0  0 0 0x48344258--         y  y  y     win
    0x42 48  0 16 16 16  0  0  0  4 1 0x48344258--         y  y  y     win
    0x43 48  0 16 16 16  0 16  0  4 1 0x48344258--         y  y  y     win
    0x44 48  0 16 16 16  0 24  0  4 1 0x48344258--         y  y  y     win
    0x45 48  0 16 16 16  0 24  8  4 1 0x48344258--         y  y  y     win
    0x46 48  0 16 16 16  0 32  0  4 1 0x48344258--         y  y  y     win
  • Wayland platform:
    eglinfo: eglInitialize failed
  • X11 platform:
    EGL API version: 1.5
    EGL vendor string: Mesa Project
    EGL version string: 1.5
    EGL client APIs: OpenGL OpenGL_ES
    EGL extensions string:
        EGL_ANGLE_sync_control_rate EGL_EXT_create_context_robustness
        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_base 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_query_driver
    Configurations:
         bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
      id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
    ---------------------------------------------------------------------
    0x01 32  0  8  8  8  8  0  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x02 32  0  8  8  8  8 16  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x03 32  0  8  8  8  8 24  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x04 32  0  8  8  8  8 24  8  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x05 32  0  8  8  8  8 32  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x06 32  0  8  8  8  8  0  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x07 32  0  8  8  8  8 16  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x08 32  0  8  8  8  8 24  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x09 32  0  8  8  8  8 24  8  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x0a 32  0  8  8  8  8 32  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x0b 24  0  8  8  8  0  0  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0c 24  0  8  8  8  0 16  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0d 24  0  8  8  8  0 24  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0e 24  0  8  8  8  0 24  8  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0f 24  0  8  8  8  0 32  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x10 24  0  8  8  8  0  0  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x11 24  0  8  8  8  0 16  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x12 24  0  8  8  8  0 24  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x13 24  0  8  8  8  0 24  8  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x14 24  0  8  8  8  0 32  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x15 32  0  8  8  8  8  0  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x16 32  0  8  8  8  8 16  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x17 32  0  8  8  8  8 24  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x18 32  0  8  8  8  8 24  8  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x19 32  0  8  8  8  8 32  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x1a 32  0  8  8  8  8  0  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1b 32  0  8  8  8  8 16  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1c 32  0  8  8  8  8 24  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1d 32  0  8  8  8  8 24  8  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1e 32  0  8  8  8  8 32  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1f 24  0  8  8  8  0  0  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x20 24  0  8  8  8  0 16  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x21 24  0  8  8  8  0 24  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x22 24  0  8  8  8  0 24  8  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x23 24  0  8  8  8  0 32  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x24 24  0  8  8  8  0  0  0  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x25 24  0  8  8  8  0 16  0  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x26 24  0  8  8  8  0 24  0  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x27 24  0  8  8  8  0 24  8  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x28 24  0  8  8  8  0 32  0  4 1 0x22DC      y  y  y  y     win,pb,pix
  • Device platform:
    eglinfo: eglInitialize failed
    作为对比,RK3399由ARM Mali的Midgard GPU驱动(适用于Mali T6xx/T7xx/T8xx系列GPU)进行EGL渲染
    1. firefly@firefly:~$ eglinfo
      EGL client extensions string:
          EGL_EXT_client_extensions EGL_EXT_platform_base
          EGL_KHR_client_get_all_proc_addresses EGL_KHR_platform_x11
          EGL_EXT_platform_x11 EGL_KHR_platform_gbm EGL_MESA_platform_gbm
    GBM platform:
    arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.eglinfo: eglInitialize failed
  • X11 platform:
    EGL API version: 1.4
    EGL vendor string: ARM
    EGL version string: 1.4 Midgard-"r18p0-01rel0"
    EGL client APIs: OpenGL_ES
    EGL extensions string:
        EGL_KHR_image_pixmap EGL_KHR_partial_update
        EGL_EXT_image_dma_buf_import EGL_KHR_config_attribs EGL_KHR_image
        EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync
        EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses
        EGL_IMG_context_priority EGL_ARM_pixmap_multisample_discard
        EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image
        EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context
        EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image
        EGL_EXT_create_context_robustness
    Configurations:
         bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
      id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
    ---------------------------------------------------------------------
    0x01 32  0  8  8  8  8  0  0  0 0 0x5dTC      a     y  y     win,pb,pix
    0x02 32  0  8  8  8  8 24  0  0 0 0x5dTC      a     y  y     win,pb,pix
    0x03 32  0  8  8  8  8 24  8  0 0 0x5dTC      a     y  y     win,pb,pix
    0x04 32  0  8  8  8  8 24  8  4 1 0x5dTC      a     y  y     win,pb,pix
    0x05 16  0  5  6  5  0  0  0  0 0 0x00--      y     y  y     pb,pix
    0x06 16  0  5  6  5  0 24  0  0 0 0x00--      y     y  y     pb,pix
    0x07 16  0  5  6  5  0 24  8  0 0 0x00--      y     y  y     pb,pix
    0x08 16  0  5  6  5  0 24  8  4 1 0x00--      y     y  y     pb,pix
    0x09 24  0  8  8  8  0  0  0  0 0 0x21TC      y     y  y     win,pb,pix
    0x0a 24  0  8  8  8  0 24  8  0 0 0x21TC      y     y  y     win,pb,pix
    0x0b 24  0  8  8  8  0 24  8  4 1 0x21TC      y     y  y     win,pb,pix
    0x0c 16  0  5  5  5  1 24  8  0 0 0x00--      a     y  y     pb,pix
    0x0d 16  0  5  5  5  1 24  8  4 1 0x00--      a     y  y     pb,pix
    0x0e 16  0  4  4  4  4 24  8  0 0 0x00--      a     y  y     pb,pix
    0x0f 16  0  4  4  4  4 24  8  4 1 0x00--      a     y  y     pb,pix
    0x11 32  0  8  8  8  8 24  8  8 1 0x5dTC      a     y  y     win,pb,pix
    0x12 16  0  5  6  5  0 24  8  8 1 0x00--      y     y  y     pb,pix
    0x13 24  0  8  8  8  0 24  8  8 1 0x21TC      y     y  y     win,pb,pix
    0x14 32  0  8  8  8  8 24  8 16 1 0x5dTC      a     y  y     win,pb,pix
    0x15 16  0  5  6  5  0 24  8 16 1 0x00--      y     y  y     pb,pix
    0x16 24  0  8  8  8  0 24  8 16 1 0x21TC      y     y  y     win,pb,pix
    0x17 24  0  8  8  8  0  0  0  0 0 0x21TC            y  y     win,pix

    Github上也有个开源的小工具用于检测EGL信息(https://github.com/erwincoumans/egl_example

    1. openkylin@phytiumpi:~$ ./egl_example
      Loaded EGL 1.5 after reload.
      GL_VENDOR=Mesa/X.org
      GL_RENDERER=llvmpipe (LLVM 15.0.7, 128 bits)
      GL_VERSION=4.5 (Compatibility Profile) Mesa 22.3.7
      GL_SHADING_LANGUAGE_VERSION=4.50
    所以到这里,问题的真相已经水落石出,D2000并没有真正意义上的GPU,需要通过CPU"撸管"(llvmpipe)的方式进行图形界面渲染,而那些SoC内置GPU,自然CPU主频高低对渲染影响不大了


    1. openkylin@openkylin:~[        DISCUZ_CODE_4148        ]nbsp; eglinfo
      EGL client extensions string:
          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_EXT_platform_x11 EGL_KHR_platform_x11 EGL_EXT_platform_xcb
          EGL_MESA_platform_gbm EGL_KHR_platform_gbm
          EGL_MESA_platform_surfaceless
    GBM platform:
    EGL API version: 1.4
    EGL vendor string: Mesa Project
    EGL version string: 1.4
    EGL client APIs: OpenGL OpenGL_ES
    EGL extensions string:
        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_reusable_sync
        EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
        EGL_KHR_wait_sync EGL_MESA_configless_context
        EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
    Configurations:
         bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
      id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
    ---------------------------------------------------------------------
    0x01 32  0 10 10 10  2  0  0  0 0 0x30335241--         y  y  y     win
    0x02 32  0 10 10 10  2 16  0  0 0 0x30335241--         y  y  y     win
    0x03 32  0 10 10 10  2 24  0  0 0 0x30335241--         y  y  y     win
    0x04 32  0 10 10 10  2 24  8  0 0 0x30335241--         y  y  y     win
    0x05 32  0 10 10 10  2 32  0  0 0 0x30335241--         y  y  y     win
    0x06 32  0 10 10 10  2  0  0  4 1 0x30335241--         y  y  y     win
    0x07 32  0 10 10 10  2 16  0  4 1 0x30335241--         y  y  y     win
    0x08 32  0 10 10 10  2 24  0  4 1 0x30335241--         y  y  y     win
    0x09 32  0 10 10 10  2 24  8  4 1 0x30335241--         y  y  y     win
    0x0a 32  0 10 10 10  2 32  0  4 1 0x30335241--         y  y  y     win
    0x0b 30  0 10 10 10  0  0  0  0 0 0x30335258--         y  y  y     win
    0x0c 30  0 10 10 10  0 16  0  0 0 0x30335258--         y  y  y     win
    0x0d 30  0 10 10 10  0 24  0  0 0 0x30335258--         y  y  y     win
    0x0e 30  0 10 10 10  0 24  8  0 0 0x30335258--         y  y  y     win
    0x0f 30  0 10 10 10  0 32  0  0 0 0x30335258--         y  y  y     win
    0x10 30  0 10 10 10  0  0  0  4 1 0x30335258--         y  y  y     win
    0x11 30  0 10 10 10  0 16  0  4 1 0x30335258--         y  y  y     win
    0x12 30  0 10 10 10  0 24  0  4 1 0x30335258--         y  y  y     win
    0x13 30  0 10 10 10  0 24  8  4 1 0x30335258--         y  y  y     win
    0x14 30  0 10 10 10  0 32  0  4 1 0x30335258--         y  y  y     win
    0x15 32  0  8  8  8  8  0  0  0 0 0x34325241--         y  y  y     win
    0x16 32  0  8  8  8  8 16  0  0 0 0x34325241--         y  y  y     win
    0x17 32  0  8  8  8  8 24  0  0 0 0x34325241--         y  y  y     win
    0x18 32  0  8  8  8  8 24  8  0 0 0x34325241--         y  y  y     win
    0x19 32  0  8  8  8  8 32  0  0 0 0x34325241--         y  y  y     win
    0x1a 32  0  8  8  8  8  0  0  4 1 0x34325241--         y  y  y     win
    0x1b 32  0  8  8  8  8 16  0  4 1 0x34325241--         y  y  y     win
    0x1c 32  0  8  8  8  8 24  0  4 1 0x34325241--         y  y  y     win
    0x1d 32  0  8  8  8  8 24  8  4 1 0x34325241--         y  y  y     win
    0x1e 32  0  8  8  8  8 32  0  4 1 0x34325241--         y  y  y     win
    0x1f 24  0  8  8  8  0  0  0  0 0 0x34325258--         y  y  y     win
    0x20 24  0  8  8  8  0 16  0  0 0 0x34325258--         y  y  y     win
    0x21 24  0  8  8  8  0 24  0  0 0 0x34325258--         y  y  y     win
    0x22 24  0  8  8  8  0 24  8  0 0 0x34325258--         y  y  y     win
    0x23 24  0  8  8  8  0 32  0  0 0 0x34325258--         y  y  y     win
    0x24 24  0  8  8  8  0  0  0  4 1 0x34325258--         y  y  y     win
    0x25 24  0  8  8  8  0 16  0  4 1 0x34325258--         y  y  y     win
    0x26 24  0  8  8  8  0 24  0  4 1 0x34325258--         y  y  y     win
    0x27 24  0  8  8  8  0 24  8  4 1 0x34325258--         y  y  y     win
    0x28 24  0  8  8  8  0 32  0  4 1 0x34325258--         y  y  y     win
    0x29 16  0  5  6  5  0  0  0  0 0 0x36314752--         y  y  y     win
    0x2a 16  0  5  6  5  0 16  0  0 0 0x36314752--         y  y  y     win
    0x2b 16  0  5  6  5  0 24  0  0 0 0x36314752--         y  y  y     win
    0x2c 16  0  5  6  5  0 24  8  0 0 0x36314752--         y  y  y     win
    0x2d 16  0  5  6  5  0 32  0  0 0 0x36314752--         y  y  y     win
    0x2e 16  0  5  6  5  0  0  0  4 1 0x36314752--         y  y  y     win
    0x2f 16  0  5  6  5  0 16  0  4 1 0x36314752--         y  y  y     win
    0x30 16  0  5  6  5  0 24  0  4 1 0x36314752--         y  y  y     win
    0x31 16  0  5  6  5  0 24  8  4 1 0x36314752--         y  y  y     win
    0x32 16  0  5  6  5  0 32  0  4 1 0x36314752--         y  y  y     win
    0x33 64  0 16 16 16 16  0  0  0 0 0x48344241--         y  y  y     win
    0x34 64  0 16 16 16 16 16  0  0 0 0x48344241--         y  y  y     win
    0x35 64  0 16 16 16 16 24  0  0 0 0x48344241--         y  y  y     win
    0x36 64  0 16 16 16 16 24  8  0 0 0x48344241--         y  y  y     win
    0x37 64  0 16 16 16 16 32  0  0 0 0x48344241--         y  y  y     win
    0x38 64  0 16 16 16 16  0  0  4 1 0x48344241--         y  y  y     win
    0x39 64  0 16 16 16 16 16  0  4 1 0x48344241--         y  y  y     win
    0x3a 64  0 16 16 16 16 24  0  4 1 0x48344241--         y  y  y     win
    0x3b 64  0 16 16 16 16 24  8  4 1 0x48344241--         y  y  y     win
    0x3c 64  0 16 16 16 16 32  0  4 1 0x48344241--         y  y  y     win
    0x3d 48  0 16 16 16  0  0  0  0 0 0x48344258--         y  y  y     win
    0x3e 48  0 16 16 16  0 16  0  0 0 0x48344258--         y  y  y     win
    0x3f 48  0 16 16 16  0 24  0  0 0 0x48344258--         y  y  y     win
    0x40 48  0 16 16 16  0 24  8  0 0 0x48344258--         y  y  y     win
    0x41 48  0 16 16 16  0 32  0  0 0 0x48344258--         y  y  y     win
    0x42 48  0 16 16 16  0  0  0  4 1 0x48344258--         y  y  y     win
    0x43 48  0 16 16 16  0 16  0  4 1 0x48344258--         y  y  y     win
    0x44 48  0 16 16 16  0 24  0  4 1 0x48344258--         y  y  y     win
    0x45 48  0 16 16 16  0 24  8  4 1 0x48344258--         y  y  y     win
    0x46 48  0 16 16 16  0 32  0  4 1 0x48344258--         y  y  y     win
  • Wayland platform:
    eglinfo: eglInitialize failed
  • X11 platform:
    EGL API version: 1.5
    EGL vendor string: Mesa Project
    EGL version string: 1.5
    EGL client APIs: OpenGL OpenGL_ES
    EGL extensions string:
        EGL_ANGLE_sync_control_rate EGL_EXT_create_context_robustness
        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_base 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_query_driver
    Configurations:
         bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
      id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
    ---------------------------------------------------------------------
    0x01 32  0  8  8  8  8  0  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x02 32  0  8  8  8  8 16  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x03 32  0  8  8  8  8 24  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x04 32  0  8  8  8  8 24  8  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x05 32  0  8  8  8  8 32  0  0 0 0x21TC      a  y  y  y     win,pb,pix
    0x06 32  0  8  8  8  8  0  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x07 32  0  8  8  8  8 16  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x08 32  0  8  8  8  8 24  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x09 32  0  8  8  8  8 24  8  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x0a 32  0  8  8  8  8 32  0  4 1 0x21TC      a  y  y  y     win,pb,pix
    0x0b 24  0  8  8  8  0  0  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0c 24  0  8  8  8  0 16  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0d 24  0  8  8  8  0 24  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0e 24  0  8  8  8  0 24  8  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x0f 24  0  8  8  8  0 32  0  0 0 0x21TC      y  y  y  y     win,pb,pix
    0x10 24  0  8  8  8  0  0  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x11 24  0  8  8  8  0 16  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x12 24  0  8  8  8  0 24  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x13 24  0  8  8  8  0 24  8  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x14 24  0  8  8  8  0 32  0  4 1 0x21TC      y  y  y  y     win,pb,pix
    0x15 32  0  8  8  8  8  0  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x16 32  0  8  8  8  8 16  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x17 32  0  8  8  8  8 24  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x18 32  0  8  8  8  8 24  8  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x19 32  0  8  8  8  8 32  0  0 0 0x22DC      a  y  y  y     win,pb,pix
    0x1a 32  0  8  8  8  8  0  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1b 32  0  8  8  8  8 16  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1c 32  0  8  8  8  8 24  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1d 32  0  8  8  8  8 24  8  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1e 32  0  8  8  8  8 32  0  4 1 0x22DC      a  y  y  y     win,pb,pix
    0x1f 24  0  8  8  8  0  0  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x20 24  0  8  8  8  0 16  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x21 24  0  8  8  8  0 24  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x22 24  0  8  8  8  0 24  8  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x23 24  0  8  8  8  0 32  0  0 0 0x22DC      y  y  y  y     win,pb,pix
    0x24 24  0  8  8  8  0  0  0  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x25 24  0  8  8  8  0 16  0  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x26 24  0  8  8  8  0 24  0  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x27 24  0  8  8  8  0 24  8  4 1 0x22DC      y  y  y  y     win,pb,pix
    0x28 24  0  8  8  8  0 32  0  4 1 0x22DC      y  y  y  y     win,pb,pix
  • Device platform:
    eglinfo: eglInitialize failed
    作为对比,RK3399由ARM Mali的Midgard GPU驱动(适用于Mali T6xx/T7xx/T8xx系列GPU)进行EGL渲染
    1. firefly@firefly:~$ eglinfo
      EGL client extensions string:
          EGL_EXT_client_extensions EGL_EXT_platform_base
          EGL_KHR_client_get_all_proc_addresses EGL_KHR_platform_x11
          EGL_EXT_platform_x11 EGL_KHR_platform_gbm EGL_MESA_platform_gbm
    GBM platform:
    arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.eglinfo: eglInitialize failed
  • X11 platform:
    EGL API version: 1.4
    EGL vendor string: ARM
    EGL version string: 1.4 Midgard-"r18p0-01rel0"
    EGL client APIs: OpenGL_ES
    EGL extensions string:
        EGL_KHR_image_pixmap EGL_KHR_partial_update
        EGL_EXT_image_dma_buf_import EGL_KHR_config_attribs EGL_KHR_image
        EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync
        EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses
        EGL_IMG_context_priority EGL_ARM_pixmap_multisample_discard
        EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image
        EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context
        EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image
        EGL_EXT_create_context_robustness
    Configurations:
         bf lv colorbuffer dp st  ms    vis   cav bi  renderable  supported
      id sz  l  r  g  b  a th cl ns b    id   eat nd gl es es2 vg surfaces
    ---------------------------------------------------------------------
    0x01 32  0  8  8  8  8  0  0  0 0 0x5dTC      a     y  y     win,pb,pix
    0x02 32  0  8  8  8  8 24  0  0 0 0x5dTC      a     y  y     win,pb,pix
    0x03 32  0  8  8  8  8 24  8  0 0 0x5dTC      a     y  y     win,pb,pix
    0x04 32  0  8  8  8  8 24  8  4 1 0x5dTC      a     y  y     win,pb,pix
    0x05 16  0  5  6  5  0  0  0  0 0 0x00--      y     y  y     pb,pix
    0x06 16  0  5  6  5  0 24  0  0 0 0x00--      y     y  y     pb,pix
    0x07 16  0  5  6  5  0 24  8  0 0 0x00--      y     y  y     pb,pix
    0x08 16  0  5  6  5  0 24  8  4 1 0x00--      y     y  y     pb,pix
    0x09 24  0  8  8  8  0  0  0  0 0 0x21TC      y     y  y     win,pb,pix
    0x0a 24  0  8  8  8  0 24  8  0 0 0x21TC      y     y  y     win,pb,pix
    0x0b 24  0  8  8  8  0 24  8  4 1 0x21TC      y     y  y     win,pb,pix
    0x0c 16  0  5  5  5  1 24  8  0 0 0x00--      a     y  y     pb,pix
    0x0d 16  0  5  5  5  1 24  8  4 1 0x00--      a     y  y     pb,pix
    0x0e 16  0  4  4  4  4 24  8  0 0 0x00--      a     y  y     pb,pix
    0x0f 16  0  4  4  4  4 24  8  4 1 0x00--      a     y  y     pb,pix
    0x11 32  0  8  8  8  8 24  8  8 1 0x5dTC      a     y  y     win,pb,pix
    0x12 16  0  5  6  5  0 24  8  8 1 0x00--      y     y  y     pb,pix
    0x13 24  0  8  8  8  0 24  8  8 1 0x21TC      y     y  y     win,pb,pix
    0x14 32  0  8  8  8  8 24  8 16 1 0x5dTC      a     y  y     win,pb,pix
    0x15 16  0  5  6  5  0 24  8 16 1 0x00--      y     y  y     pb,pix
    0x16 24  0  8  8  8  0 24  8 16 1 0x21TC      y     y  y     win,pb,pix
    0x17 24  0  8  8  8  0  0  0  0 0 0x21TC            y  y     win,pix

    Github上也有个开源的小工具用于检测EGL信息(https://github.com/erwincoumans/egl_example

    1. openkylin@phytiumpi:~$ ./egl_example
      Loaded EGL 1.5 after reload.
      GL_VENDOR=Mesa/X.org
      GL_RENDERER=llvmpipe (LLVM 15.0.7, 128 bits)
      GL_VERSION=4.5 (Compatibility Profile) Mesa 22.3.7
      GL_SHADING_LANGUAGE_VERSION=4.50
    所以到这里,问题的真相已经水落石出,D2000并没有真正意义上的GPU,需要通过CPU"撸管"(llvmpipe)的方式进行图形界面渲染,而那些SoC内置GPU,自然CPU主频高低对渲染影响不大了


    举报

    更多回帖

    相关帖子

    故障排除 卡顿 飞腾派 开发板试用
    发帖
    登录/注册
    ×
    20
    完善资料,
    赚取积分