RK3588 VOP-SPLIT分屏模式介绍

RK3588 VOP-SPLIT分屏模式介绍

RK3588 VOP介绍

RK3588具有性能强大VOP,分为4个VP port ,下图是RK3588 VP 和各显示接口的连接关系

在这里插入图片描述
需要注意的是,RK3588 的 HDMI 和 DP 支持 8K 输出,但是在 8K 输出模式下,一个显示接口需要同时占用 VP0 和 VP1 。所以如果产品上需要支持 8K 显示输出,VP1 上要注意不要连接其他显示接口。

vop-split功能

这里我们重点介绍VOP的vop-split功能,是一种类似 mipi 双通道模式的技术,可以让一路 Video Port 输出按照水平方向平分成左右两路,同时驱动两个显示接口,显示时序相同,内容独立的画面。RK3588的Video Port0、Video Port 1、Video Port 2三个port都可以支持split功能,Video Port3不支持split功能。下面以Video Port0为例来介绍split功能。
在这里插入图片描述
如上图所示,在默认情况下一个VP0只能驱动一个显示接口(如1个HDMI或者1个eDP),如果在 VP0 上开启 split 模式,则 VP0 的输出可以同时驱动两个显示接口(HDMI0/1、eDP0/1 或者其他能与 VP0 连接的显示接口),两个显示接口上显示的内容为 VP0 输出的内容水平方向左右平分,比如 VP0 以 3840x1080的分辨率输出,则两个显示接口各显示 1920x1080 的输出。

  • 通过这种技术,可以在 RK3588 上扩展出 7 路独立的显示输出。

  • 每一个 VP 上参与 split 输出的两个显示接口,输出的时序,帧率必须相同。

vop-split软件配置

vop-split可以通过 dts 开关,dts 只要把参与 split 的两个显示接口挂接在同一个 VP 上,并打开主显示接口的 split-mode 属性。

比如 ,按照如下配置,打开 hdmi0 和 hdmi1 在 VP0 上的 split 功能:

&hdmi0 {
	status = "okay";
	split-mode;
};

&hdmi1 {
        status = "okay";
};

&hdmi0_in_vp0 {
        status = "okay";
};

&hdmi1_in_vp0 {
        status = "okay";
};

&hdmi0_in_vp1 {
        status = "disabled";
};

&hdmi0_in_vp2 {
        status = "disabled";
};

&hdmi1_in_vp1 {
        status = "disabled";
};

&hdmi1_in_vp2 {
        status = "disabled";
};

通过 vop-split 功能,可以扩展出更多的多屏异显功能。

在驱动实现上,为了方便上层应用适配,尽量和 MIPI 双通道技术接近,屏蔽底层实现差异,每个 Video Port 上进行 split 的两个显示接口只会向 drm 系统注册一个 encoder 和 connector,所以在用户空间,每一 CRTC(Video Port) 上只会看到一个 connector 设备,这个信息可以通过 modetest 的输出确认。

对于 Android 应用,希望每一个屏幕都对应一个独立的显示设备,针对这种需求,Rockchip 平台的 Android hwc 有做针对性的优化,具体修改如下:
配置文件位于:hardware/rockchip/hwcomposer/drmhwc2/HwComposerEnv.xml

仅需要将 Mode=“2” 设置即可,其余配置不需要设置,当前版本建议点对点输出,系统会直接将屏幕分辨率作为渲染分辨率

  • Mode=“1” 表示多屏拼接功能
  • Mode=“2” 表示异显功能
@sys2_206:~/4_Android12_29_sdk/hardware/rockchip/hwcomposer/drmhwc2$ git diff
diff --git a/HwComposerEnv.xml b/HwComposerEnv.xml
index d0ab850..02e95dc 100755
--- a/HwComposerEnv.xml
+++ b/HwComposerEnv.xml
@@ -31,7 +31,7 @@
                   |   3840    |   1920    |          - FbWidth = 5760
                                                      - ConnectorCnt = 4
   -->
-  <DsiplayMode Mode="0" FbWidth="11520" FbHeight="1080" ConnectorCnt="4">
+  <DsiplayMode Mode="2" FbWidth="0" FbHeight="0" ConnectorCnt="4">
     <Connector>
       <!--
         Example 1 - Slicing-6x1 1920x1080:
  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loitawu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值