找回密码
 注册
关于网站域名变更的通知
查看: 665|回复: 1
打印 上一主题 下一主题

RK3588 VOP-SPLIT分屏模式介绍

[复制链接]
  • TA的每日心情
    奋斗
    2022-5-3 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-6-10 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x

    4 _( i7 B1 S8 y& r; V3 W# k$ o
    RK3588 VOP介绍
    RK3588具有性能强大VOP,分为4个VP port ,下图是RK3588VP 和各显示接口的连接关系
    file:///C:/Users/%E5%BC%A0%E5%B7%A5/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png
    - V9 L! z& O% ^- y
    需要注意的是,RK3588 的HDMI 和 DP 支持 8K 输出,但是在 8K 输出模式下,一个显示接口需要同时占用 VP0 和 VP1 。所以如果产品上需要支持 8K 显示输出,VP1 上要注意不要连接其他显示接口。

    - x( W4 W  t& M
    vop-split功能
    这里我们重点介绍VOP的vop-split功能,是一种类似 mipi 双通道模式的技术,可以让一路 Video Port 输出按照水平方向平分成左右两路,同时驱动两个显示接口,显示时序相同,内容独立的画面。RK3588的Video Port0、VideoPort 1、Video Port 2三个port都可以支持split功能,Video Port3不支持split功能。下面以Video Port0为例来介绍split功能。
    file:///C:/Users/%E5%BC%A0%E5%B7%A5/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg
    如上图所示,在默认情况下一个VP0只能驱动一个显示接口(如1个HDMI或者1个eDP),如果在 VP0 上开启 split 模式,则 VP0 的输出可以同时驱动两个显示接口(HDMI0/1、eDP0/1 或者其他能与 VP0 连接的显示接口),两个显示接口上显示的内容为 VP0 输出的内容水平方向左右平分,比如 VP0 以 3840x1080的分辨率输出,则两个显示接口各显示 1920x1080 的输出。
    / T4 U  e1 R! u  V1 e- q
    通过这种技术,可以在 RK3588 上扩展出 7 路独立的显示输出。

    ) p$ Y0 ~, u; `" g" z) F+ u
    每一个 VP 上参与 split 输出的两个显示接口,输出的时序,帧率必须相同。
    + }2 u' Z) U2 t# O0 ?- T2 N. O
    vop-split软件配置
    vop-split可以通过 dts 开关,dts 只要把参与 split 的两个显示接口挂接在同一个 VP 上,并打开主显示接口的 split-mode 属性。
    ) U3 u% K( V9 X  G+ D, i
    比如 ,按照如下配置,打开 hdmi0 和 hdmi1 在 VP0 上的split 功能:
    &hdmi0 {
           status= "okay";
           split-mode;
    };

    5 J  l. }- Q$ c  u
    &hdmi1 {
           status = "okay";
    };
    " }  Z* g  F0 Q
    &hdmi0_in_vp0 {
           status = "okay";
    };
    ' g' ~% r  @5 M7 b$ b) O6 g
    &hdmi1_in_vp0 {
           status = "okay";
    };

    6 o- A! {& K' }4 [4 X
    &hdmi0_in_vp1 {
           status = "disabled";
    };

    4 H* Z( D9 d& ~
    &hdmi0_in_vp2 {
           status = "disabled";
    };

    * g, J* p' m: [) i6 ~3 p: P* q
    &hdmi1_in_vp1 {
           status = "disabled";
    };
    + g$ x1 I% H) G0 ~. `) {4 R
    &hdmi1_in_vp2 {
           status = "disabled";
    };
    通过 vop-split 功能,可以扩展出更多的多屏异显功能。

    . d8 K1 N% `$ h0 {1 R/ |% \. x  Q" w
    在驱动实现上,为了方便上层应用适配,尽量和 MIPI 双通道技术接近,屏蔽底层实现差异,每个 Video Port 上进行 split 的两个显示接口只会向 drm 系统注册一个 encoder 和 connector,所以在用户空间,每一 CRTC(Video Port) 上只会看到一个 connector 设备,这个信息可以通过 modetest 的输出确认。
    ; w5 U6 A- j3 Q8 y  J) b
    对于 Android 应用,希望每一个屏幕都对应一个独立的显示设备,针对这种需求,Rockchip 平台的 Android hwc 有做针对性的优化,具体修改如下:
    配置文件位于:hardware/rockchip/hwcomposer/drmhwc2/HwComposerEnv.xml

    . Z- K4 x: U) Q7 f& q6 o2 n3 }
    仅需要将 Mode=“2” 设置即可,其余配置不需要设置,当前版本建议点对点输出,系统会直接将屏幕分辨率作为渲染分辨率
    - G* \2 t$ t! H  V2 r/ `! S, W
    Mode=“1” 表示多屏拼接功能
    Mode=“2” 表示异显功能
    @sys2_206:~/4_Android12_29_sdk/hardware/rockchip/hwcomposer/drmhwc2$git diff
    diff --git a/HwComposerEnv.xmlb/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:
    & v, s) \' V' k; m* o, x0 X
    & Q# [3 q9 }% u
    8 {6 e  k, ^0 Q8 r" k

    % b: `: l8 X: g; ]  z0 w: {! v5 {1 _; Y2 O" F. E" b

    6 v0 E8 D( o; S/ I, _

    RK3588 VOP-SPLIT分屏模式介绍.pdf

    292.84 KB, 下载次数: 0, 下载积分: 威望 -5

    该用户从未签到

    2#
    发表于 2022-6-10 15:09 | 只看该作者
    vop-split 功能,可以扩展出更多的多屏异显功能
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 17:43 , Processed in 0.171875 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表