JeffyCN / meta-rockchip

Yocto BSP layer for the Rockchip SOC boards
Other
119 stars 92 forks source link

Mali DDK inconsisten on rk3568 #13

Closed jdica closed 2 years ago

jdica commented 2 years ago

I'm trying to get hardware video acceleration for the rk3568 eval board. I can build an image just fine, but X11 is pretty sluggish as is video playback which also shows >80% CPU usage (using gstreamer to play 1080p at 30 FPS mp4 video).

After doing some digging I suspect the issue is with the Mali DDK versions in kernel and userspace:

Running dmesg | grep mali i get the following:

[    0.256150] mali fde60000.gpu: Kernel DDK version g7p1-01bet0
[    0.256240] mali fde60000.gpu: Looking up mali-supply from device tree
[    0.256274] mali fde60000.gpu: Device initialization Deferred
[    1.700872] mali fde60000.gpu: Kernel DDK version g7p1-01bet0
[    1.701048] mali fde60000.gpu: Looking up mali-supply from device tree
[    1.701171] mali fde60000.gpu: Linked as a consumer to regulator.18
[    1.701207] mali fde60000.gpu: Looking up shadercores-supply from device tree
[    1.701227] mali fde60000.gpu: Looking up shadercores-supply property in node /gpu@fde60000 failed
[    1.701340] mali fde60000.gpu: Looking up mali-supply from device tree
[    1.701412] mali fde60000.gpu: Looking up shadercores-supply from device tree
[    1.701427] mali fde60000.gpu: Looking up shadercores-supply property in node /gpu@fde60000 failed
[    1.701465] mali fde60000.gpu: dev_pm_opp_set_regulators: no regulator (shadercores) found: -19
[    1.701633] mali fde60000.gpu: leakage=10
[    1.702570] mali fde60000.gpu: avs=0
[    1.702615] W : [File] : drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c; [Line] : 112; [Func] : kbase_platform_rk_init(); power-off-delay-ms not available.
[    1.703303] mali fde60000.gpu: GPU identified as 0x2 arch 7.4.0 r1p0 status 0
[    1.703592] mali fde60000.gpu: No priority control manager is configured
[    1.703630] mali fde60000.gpu: No memory group manager is configured
[    1.704540] mali fde60000.gpu: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[    1.705957] mali fde60000.gpu: Probed as mali0
[    1.726487] I : [File] : drivers/gpu/arm/mali400/mali/linux/mali_kernel_linux.c; [Line] : 413; [Func] : mali_module_init(); svn_rev_string_from_arm of this mali_ko is '', rk_ko_ver is '5', built at '08:58:33', on 'Jan  6 2022'.

So it looks like the kernel is loading g7p1, however in userspace we have /usr/lib/libmali-bifrost-g52-g2p0-x11.so and when I run 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

GBM platform:
arm_release_ver of this libmali is 'g2p0-01eac0', rk_so_ver is '4'.
eglinfo: eglInitialize failed

X11 platform:
EGL API version: 1.4
EGL vendor string: ARM
EGL version string: 1.4 Bifrost-"g2p0-01eac0"
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_KHR_no_config_context
    EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers
    EGL_EXT_yuv_surface EGL_EXT_pixel_format_float
    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_image_gl_colorspace
    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 0x95TC      a     y  y     win,pb,pix
0x02 32  0  8  8  8  8 24  0  0 0 0x95TC      a     y  y     win,pb,pix
0x03 32  0  8  8  8  8 24  8  0 0 0x95TC      a     y  y     win,pb,pix
0x04 32  0  8  8  8  8 24  8  4 1 0x95TC      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  0  0  4 1 0x21TC      y     y  y     win,pb,pix
0x0c 24  0  8  8  8  0 24  8  4 1 0x21TC      y     y  y     win,pb,pix
0x0d 16  0  5  5  5  1 24  8  0 0 0x00--      a     y  y     pb,pix
0x0e 16  0  5  5  5  1 24  8  4 1 0x00--      a     y  y     pb,pix
0x0f 16  0  4  4  4  4 24  8  0 0 0x00--      a     y  y     pb,pix
0x10 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 0x95TC      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 0x95TC      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,pb,pix
0x18 64  0 16 16 16 16 24  8  0 0 0x00--            y  y     pb
0x19 32  0 10 10 10  2 24  8  0 0 0x00--      a     y  y     pb,pix
0x1a 24  0  8  8  8  0  0  0  0 0 0x21TC      y     y  y     win,pb,pix

I am building with rockchip-rk3568-evb machine and Poky distro on Honister. I have also added the following to my image:

DISTRO_FEATURES:remove:rockchip-rk3568-evb = "wayland"
DISTRO_FEATURES:append:rockchip-rk3568-evb = " x11 opengl"
IMAGE_FEATURES:append:rockchip-rk3568-evb = " x11-base ssh-server-openssh"

PACKAGECONFIG:append:pn-qtbase:rockchip-rk3568-evb = " examples"
PACKAGECONFIG:append:pn-gstreamer1.0-plugins-bad:rockchip-rk3568-evb = " kms"
PACKAGECONFIG:append:pn-glmark2:rockchip-rk3568-evb = " x11-gles2 drm-gles2"

CORE_IMAGE_EXTRA_INSTALL:append:rockchip-rk3568-evb = " \
    xf86-video-modesetting xserver-xorg-module-exa xserver-xorg-extension-glx udev-conf-rockchip \
    gstreamer1.0-rockchip gstreamer1.0-libav gstreamer1.0-omx \
    ${@' rockchip-rkisp-server rockchip-rkisp-iqfiles' if d.getVar('RK_ISP_VERSION') == '1' else ''} \
    ${@oe.utils.version_less_or_equal('RK_ISP_VERSION', '1', '', ' rockchip-rkaiq-server rockchip-rkaiq-iqfiles', d)} \
    libdrm-tests strace gdb e2fsprogs e2fsprogs-resize2fs io perf openssh-sftp-server mesa-demos \
    glmark2 \
    iw wpa-supplicant bluez5 \
    alsa-utils rockchip-alsa-config pulseaudio-server alsa-plugins-pulseaudio-conf \
    ${MACHINE_EXTRA_RRECOMMENDS} \
"

I am not familiar with Mali GPU so I may be missing something here, any info that can point me in the right direction would be great.

JeffyCN commented 2 years ago

try gstreamer with kmssink/rkximagesink/xvimagesink

JeffyCN commented 2 years ago

you can use glmark2-es2 to test gpu, but your log looks fine to me.

for video playback, the most important things would be hw decoding and reducing buf-copy(related to videosink).

jdica commented 2 years ago

Thanks for the quick response.

It looks like the issue isn't with the GPU after all. I ran glmark2-es2 and it looks fine. However, X and video playback is still slow. I was unable to run gstreamer as above, so I'll continue to dig into that and look more into X11.

So the difference in DDK versions shouldn't be an issue?

JeffyCN commented 2 years ago

the driver's version is not bind to ddk, unless having api compatible issue, which might need some extra version checks in ddk(or driver).

for 1080p30fps, kmssink/rkximagesink/xvimagesink should be enough, and if you want 60fps, may need this to enable async commit(for kernel > 4.4): https://github.com/JeffyCN/rockchip_mirrors/blob/buildroot/board/rockchip/common/base/etc/init.d/S10async_commit.sh#L12

maybe i can try to make a patch to force enabling it in yocto kernels

jdica commented 2 years ago

Ok, for some reason some of the packages were not being included in my yocto image. I added them to my local.conf instead for now and playback with gstreamer has improved but its still a little choppy but runs at ~50% cpu utilization.

I tried adding kmssink and get the following output:

Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: Could not open DRM module (NULL)
Additional debug info:
../gst-plugins-bad-1.18.6/sys/kms/gstkmssink.c(848): gst_kms_sink_start (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
reason: No such file or directory (2)
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../gstreamer-1.18.6/libs/gst/base/gstbasesink.c(5869): gst_base_sink_change_state (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...

and running dmesg | grep drm I get the following:

[    0.241377] rockchip-drm display-subsystem: Linked as a consumer to fe040000.vop
[    0.241950] rockchip-drm display-subsystem: Linked as a consumer to fe0c0000.edp
[    0.242461] rockchip-drm display-subsystem: Linked as a consumer to fe0a0000.hdmi
[    0.242866] rockchip-drm display-subsystem: Linked as a consumer to fe060000.dsi
[    0.244096] rockchip-drm display-subsystem: defer getting devfreq
[    0.244339] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp0 assign plane mask: 0x2a, primary plane phy id: 5
[    0.244364] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp1 assign plane mask: 0x15, primary plane phy id: 4
[    0.244384] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp2 assign plane mask: 0x0, primary plane phy id: -1
[    0.244474] [drm] unsupported AFBC format[3432564e]
[    0.244532] rockchip-vop2 fe040000.vop: [drm:vop2_bind] Cluster1-win0 as cursor plane for vp0
[    0.244658] rockchip-vop2 fe040000.vop: [drm:vop2_bind] Cluster0-win0 as cursor plane for vp1
[    0.244731] [drm] failed to init overlay plane Cluster0-win1
[    0.244746] [drm] failed to init overlay plane Cluster1-win1
[    0.244880] rockchip-drm display-subsystem: bound fe040000.vop (ops 0xffffff8008ef9198)
[    0.245678] rockchip-drm display-subsystem: bound fe0c0000.edp (ops 0xffffff8008efc1f0)
[    0.246853] rockchip-drm display-subsystem: bound fe0a0000.hdmi (ops 0xffffff8008efd250)
[    0.246901] dw-mipi-dsi fe060000.dsi: [drm:dw_mipi_dsi_bind] *ERROR* Failed to find panel or bridge: -517
[    1.181402] rockchip-drm display-subsystem: defer getting devfreq
[    1.181701] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp0 assign plane mask: 0x2a, primary plane phy id: 5
[    1.181719] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp1 assign plane mask: 0x15, primary plane phy id: 4
[    1.181741] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp2 assign plane mask: 0x0, primary plane phy id: -1
[    1.181866] rockchip-vop2 fe040000.vop: [drm:vop2_bind] Cluster1-win0 as cursor plane for vp0
[    1.181981] rockchip-vop2 fe040000.vop: [drm:vop2_bind] Cluster0-win0 as cursor plane for vp1
[    1.182063] [drm] failed to init overlay plane Cluster0-win1
[    1.182078] [drm] failed to init overlay plane Cluster1-win1
[    1.182268] rockchip-drm display-subsystem: bound fe040000.vop (ops 0xffffff8008ef9198)
[    1.183598] rockchip-drm display-subsystem: bound fe0c0000.edp (ops 0xffffff8008efc1f0)
[    1.186006] rockchip-drm display-subsystem: bound fe0a0000.hdmi (ops 0xffffff8008efd250)
[    1.186079] rockchip-drm display-subsystem: bound fe060000.dsi (ops 0xffffff8008efdd30)
[    1.186100] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.186112] [drm] No driver support for vblank timestamp query.
[    1.718413] rockchip-drm display-subsystem: fb0:  frame buffer device
[    1.720156] [drm] Initialized rockchip 2.0.0 20140818 for display-subsystem on minor 0
[    1.741440] [drm] Initialized rknpu 0.4.2 20210701 for fde40000.npu on minor 1
[    4.945675] Freeing drm_logo memory: 732K
[   17.527586] [drm:dw_hdmi_rockchip_set_property] *ERROR* failed to set rockchip hdmi connector property CONNECTOR_ID
[   23.476854] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   23.476885] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   23.476906] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   23.476925] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   35.368802] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
[   35.411029] rockchip-vop2 fe040000.vop: [drm:vop2_isr] *ERROR* POST_BUF_EMPTY irq err at vp1
[   35.760940] rockchip-vop2 fe040000.vop: [drm:vop2_isr] *ERROR* POST_BUF_EMPTY irq err at vp1
[   35.761015] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1920x1080p0, type: 11 for vp0
[   50.582854] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   50.582888] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   50.619601] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   50.619634] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   51.226922] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   51.226958] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   52.226146] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   52.226184] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   52.323612] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   52.323652] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   52.376204] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   52.376240] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   55.866553] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   55.866596] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   55.874546] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   55.874590] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   56.272438] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   56.272482] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   57.954928] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   57.954971] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.023227] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.023271] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.074604] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.074647] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.890568] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.890609] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.930585] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   58.930627] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   59.618466] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   59.618507] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   62.042603] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   62.042645] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   62.770572] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   62.770614] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   63.193353] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   63.193397] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   63.971008] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   63.971053] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   64.034590] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   64.034633] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   64.578553] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   64.578599] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   64.602579] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   64.602622] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   65.311441] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   65.311486] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.043836] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.043879] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.226576] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.226621] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.434579] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.434624] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.530544] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.530586] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.538578] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.538619] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.978659] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.978702] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.995245] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   67.995289] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   68.377949] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   68.377991] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.010948] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.010992] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.079251] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.079298] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.242637] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.242681] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.250582] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.250624] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.746464] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.746509] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.930518] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   69.930560] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   70.522578] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   70.522620] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   72.981389] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   72.981434] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   73.049210] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   73.049254] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   75.374262] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   75.374306] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   75.389398] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   75.389443] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   77.466731] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   77.466773] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   77.730629] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   77.730672] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   77.738594] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   77.738641] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   93.763732] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   93.763768] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   95.730805] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   95.730914] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   95.739527] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   95.739571] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.322592] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.322630] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.330525] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.330566] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.370511] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.370547] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.400231] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.400268] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.953837] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[   99.953883] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  101.603170] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  101.603214] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  102.381553] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  102.381598] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  102.396877] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  102.396920] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.386493] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.386526] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.394789] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.394829] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.770418] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.770453] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.802866] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.802910] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.837542] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  103.837610] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  104.131183] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  104.131225] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.253857] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.253902] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.259525] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.259568] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.286074] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.286118] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.426512] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.426557] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.954427] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  106.954472] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  108.676337] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  108.676393] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.042905] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.042978] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.202817] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.202863] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.297465] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.297510] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.533311] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.533354] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.539680] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  125.539724] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  126.455058] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  126.455098] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  126.618552] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  126.618591] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  126.626601] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0
[  126.626640] [drm:vop2_plane_atomic_check] *ERROR* Unsupported linear format at Cluster1-win0

I'm not sure what the issue is here, maybe I am missing a package in yocto? I should only need up to 1080p30fps.

JeffyCN commented 2 years ago

hmm, it looks like there are 2 issues here: 1/ the gst version bumped recently, so the patches are not included(patches are for 1.18.4).that's why xv is slow and kms could not open 2/ the kernel driver is using cluster hw plane as the first overlay plane, but it cannot support normal linear video formats(only support compressed formats which is needed for 4k videos), that's why rkximage failed to show

so i'll: 1/ bump the patches so xv should work 2/ hack the kernel to hide cluster planes

JeffyCN commented 2 years ago

patches uploaded

jdica commented 2 years ago

Thanks!

Running gstreamer with kmssink runs pretty smooth and low cpu usage with 1080p at 30fps.

linxzhang commented 2 years ago

i got the same issue, how did you fix it?