RK3399 4K 带宽不足[drm:vop_isr] ERROR POST_BUF_EMPTY irq err

   日期:2020-08-23     浏览:424    评论:0    
核心提示:4k输出分为两种,屏输出3840*2160@60,一种是1920x1080分辨率的UI(拉伸到3840*2160),一种是点对点的3840*2160的UI,两种都支持60fps,但会出现DDR带宽不足的问题,会出现[drm:vop_isr]ERRORPOST_BUF_EMPTY irq err这种错误,随之屏幕就会出现绿条纹的闪烁画面。这里是讲60fps情况下,因为30fps是正常的。 根据官方文档《RK3399_Android7.1_Software_Development_Gui...

     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 = <
     
              0 0x20
              4 0x20
     >;

这个官方解释:vop-pn-msch-readlatency 这个参数指定了两列数据,第一列为 UI 的层数,第二列为 vop
获取 ddr 使用权限的延时,这个值越小,表示越容易获取访问权限,值为 0 表示默认值(默认值为
0x80),如果出现闪屏问题,建议将值改为 0x20,这个值不建议随意修改,并且这个值如果改动
可能会影响性能。目前默认的值,只会在 UI 为 4 层的场景下,将 vop 的 ddr read lantency 改为
0x20,也就是在 4 层场景下提升 vop 对 ddr 访问的时效性,从而让 vop 更快的获取到数据。

测试1080P下UI 有效,播放4K视频没问题。3840*2160 点对点UI播放4k视频没问题,但下拉菜单会出现绿条纹。也会出现带宽问题。

解决方案:

不采取官方文档的修改,关闭负载变频,将DDR频率拉到856M.

1、hardware\rockchip\libgralloc\Android.mk

ifneq ($(filter rk3399 rk3399pro, $(strip $(TARGET_BOARD_PLATFORM))), )
USE_AFBC_LAYER = 0 //改为0
ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)),box)
USE_AFBC_LAYER = 0
endif

2、device\rockchip\rk3399\device.mk

vendor.hwc.compose_policy=0  //改为GPU合成,默认是6,HWC合成

 

测试反馈:

3840*2160 UI @60fps 下的测试4K视频,HWC合成的优点对高码率的视频播放更流畅,但对DDR带宽要求更高,经测试H265码率大于50000kbps的视频播放会卡顿,小于50000kbps码率的视频播放正常,可以满足需求。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服