4k输出分为两种,屏输出3840*2160@60,一种是1920x1080分辨率的UI(拉伸到3840*2160),一种是点对点的3840*2160的UI,两种都支持60fps,但会出现DDR带宽不足的问题,会出现[drm:vop_isr] ERROR POST_BUF_EMPTY irq err这种错误,随之屏幕就会出现绿条纹的闪烁画面。这里是讲60fps情况下,因为30fps是正常的。
根据官方文档《RK3399_Android7.1_Software_Development_Guide》中的《9.7 DDR 带宽导致屏闪问题 Flicker issue caused by DDR bandwidth》解决,
1、先把dmc的频率调到最高,测试无效。
2、关闭负载变频,ddr频率拉到最大,测试无效。
3、vop-pn-msch-readlatency = <
/* plane_number readlatency */
0 0x20
4 0x20
>;
这个官方解释:vop-pn-msch-readlatency 这个参数指定了两列数据,第一列为 UI 的层数,第二列为 vop
获取 ddr 使用权限的延时,这个值越小,表示越容易获取访问权限,值为 0 表示默认值(默认值为
0x80),如果出现闪屏问题,建议将值改为 0x20,这个值不建议随意修改,并且这个值如果改动
可能会影响性能。目前默认的值,