导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. anruliu
    A
    • 资料
    • 关注 0
    • 粉丝 3
    • 我的积分 4803
    • 主题 0
    • 帖子 87
    • 最佳 11
    • 群组 0

    anruliuLV 6

    @anruliu

    4803
    积分
    14
    声望
    78
    资料浏览
    87
    帖子
    3
    粉丝
    0
    关注
    注册时间 最后登录

    anruliu 取消关注 关注

    anruliu 发布的最佳帖子

    • 回复: lvgl 使用g2d加速性能问题

      @westonye

      1、首先LV_USE_PERF_MONITOR统计的不是真实的fps,lvgl可以没有限制的一直刷画面,看起来帧率的确高,但是滑动场景下,比较容易看到画面撕裂,不想看到撕裂就只能开双缓冲,像QT,MiniGUI这些框架也是如此,默认是没有用上双缓冲的,可以传入下面的宏看fps打印

      TARGET_CFLAGS+=-DLV_USE_SUNXIFB_DEBUG
      

      2、开启LVGL8_USE_SUNXIFB_DOUBLE_BUFFER后,可以解决画面撕裂的问题,但是需要做整屏buffer的拷贝,这里会比较耗时

      3、开启LVGL8_USE_SUNXIFB_G2D后,就是把整屏buffer的拷贝从用cpu拷贝,切换到g2d拷贝

      4、开启LVGL8_USE_SUNXIFB_G2D_ROTATE后,就可以用G2D旋转整个屏幕,会比原来的CPU旋转快很多

      5、G2D的优势在于blend,scale,rotate,lv_g2d_test在使能g2d的场景下,会传入宏

      TARGET_CFLAGS+=-DLV_USE_SUNXIFB_G2D_FILL \
      -DLV_USE_SUNXIFB_G2D_BLEND \
      -DLV_USE_SUNXIFB_G2D_BLIT \
      -DLV_USE_SUNXIFB_G2D_SCALE
      

      6、lv_demo_benchmark、lv_example不能使能第5步的宏,因为其中的图片不是申请的物理连续内存,不能使用g2d来进行blend等功能,但是可以使能LVGL8_USE_SUNXIFB_DOUBLE_BUFFER,LVGL8_USE_SUNXIFB_G2D,LVGL8_USE_SUNXIFB_G2D_ROTATE来加速双缓冲情况下的拷贝与屏幕旋转功能,但是整体还是单缓冲的帧率要高

      发布在 V Series
      A
      anruliu
    • 回复: A133适配AMOLED屏幕,LCD时序参数过小导致无法进入U-Boot

      @ceoifung 看这个
      @anruliu 在 D1H支持1920*1200分辨率,但是1080*1920竖屏支持吗 中说:

      @xiaoxiao

      你是怎么互换的,如果计算出现负数肯定进不去

      lcd_x = 屏厂给的实际的x
      lcd_hbp = 屏厂给的实际的hbp + 屏厂给的实际的hsync
      lcd_ht = 屏厂给的实际的lcd_h + 屏厂给的实际的hsync + 屏厂给的实际的hbp + 屏厂给的实际的hfp
      lcd_hspw = 屏厂给的实际的hsync
      
      lcd_y = 屏厂给的实际的y
      lcd_vpp = 屏厂给的实际的vbp + 屏厂给的实际的vsync
      lcd_vt = 屏厂给的实际的lcd_y + 屏厂给的实际的vsync + 屏厂给的实际的vbp + 屏厂给的实际的vfp
      lcd_vspw = 屏厂给的实际的vsync
      
      发布在 其它全志芯片讨论区
      A
      anruliu
    • 回复: D1设置hdmi分辨率

      @dianjixz @xushengrui 更新如下, dev0_output_type应该配置成4,开机默认分辨率为1920*1080

      diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts
      index 793dec2..d95a320 100644
      --- a/configs/nezha/uboot-board.dts
      +++ b/configs/nezha/uboot-board.dts
      @@ -229,15 +229,15 @@
              screen1_output_scan      = <0>;
              screen1_output_aspect_ratio = <8>;
      
      -       dev0_output_type         = <1>;
      -       dev0_output_mode         = <4>;
      +       dev0_output_type         = <4>;
      +       dev0_output_mode         = <10>;
              dev0_screen_id           = <0>;
      -       dev0_do_hpd              = <0>;
      +       dev0_do_hpd              = <1>;
      
      -       dev1_output_type         = <4>;
      -       dev1_output_mode         = <10>;
      +       dev1_output_type         = <1>;
      +       dev1_output_mode         = <4>;
              dev1_screen_id           = <1>;
      -       dev1_do_hpd              = <1>;
      +       dev1_do_hpd              = <0>;
      
              def_output_dev           = <0>;
              hdmi_mode_check          = <1>;
      

      还需要注意一点是默认开机logo分辨率为800*1280,改了默认HDMI输出后,logo会显示不正常
      开机logo位于device/config/chips/d1/configs/nezha/configs/bootlogo.bmp

      发布在 MR Series
      A
      anruliu
    • 回复: [D1] Lichee RV 86 Panel color issue

      @konstantint You can try

      [lcd0]
       lcd_rb_swap = <1>;
      
      发布在 GUI
      A
      anruliu
    • 回复: d1 lvds dual

      @sogen 首先在dts中配置lvds1的gpio,大致是下面这样的

      			lvds1_pins_a: lvds1@0 {
      				pins  = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19";
      				function = "lvds1";
      				drive-strength = <30>;
      				bias-disable;
      			};
      
      			lvds1_pins_b: lvds1@1 {
      				pins  = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19";
      				function = "io_disabled";
      				drive-strength = <30>;
      				bias-disable;
      			};
      

      然后在dts中配置dual lvds,主要是lcd_lvds_if与pinctrl-0

      &lcd0 {
      	lcd_used            = <1>;
      
      	lcd_driver_name     = "default_lcd";
      	lcd_backlight       = <50>;
      	lcd_if              = <3>;
      
      	lcd_x               = <640>;
      	lcd_y               = <2560>;
      	lcd_width           = <150>;
      	lcd_height          = <94>;
      	lcd_dclk_freq       = <117>;
      
      	lcd_pwm_used        = <0>;
      	lcd_pwm_ch          = <7>;
      	lcd_pwm_freq        = <50000>;
      	lcd_pwm_pol         = <1>;
      	lcd_pwm_max_limit   = <255>;
       
      	lcd_hbp             = <40>;
      	lcd_ht              = <720>;
      	lcd_hspw            = <20>;
      	lcd_vbp             = <20>;
      	lcd_vt              = <2600>;
      	lcd_vspw            = <10>;
      	
      	lcd_lvds_if         = <1>;
      	lcd_lvds_colordepth = <0>;	
      	lcd_lvds_mode       = <0>;
      	lcd_frm             = <0>;
      	lcd_hv_clk_phase    = <0>;
      	lcd_hv_sync_polarity= <0>;
      	lcd_gamma_en        = <0>;
      	lcd_bright_curve_en = <0>;
      	lcd_cmap_en         = <0>;
      
      	deu_mode            = <0>;
      	lcdgamma4iep        = <22>;
      	smart_color         = <90>;
      	
              pinctrl-0 = <&lvds0_pins_a &lvds1_pins_a>;
              pinctrl-1 = <&lvds0_pins_b &lvds1_pins_b>;	
        
      };
      
      发布在 MR Series
      A
      anruliu
    • 回复: T113-S3 驱动屏幕显示问题

      @aw20221130 怎么配置成横屏的,一般应用上可以用g2d进行旋转

      发布在 GUI
      A
      anruliu
    • 回复: nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因

      @fans168168 可以检查下RGB各颜色pin脚是否有复用,导致RGB有些脚没有输出

      发布在 Linux
      A
      anruliu
    • 回复: D1-H的SDK内的GUI框架有flutter?官方镜像支持flutter开发gui吗?

      @whycanservice flutter也支持纯软件渲染,可以在arm上运行,但是不支持rv

      发布在 MR Series
      A
      anruliu
    • 回复: D1设置hdmi分辨率

      1、关于显示不全的原因是fb0在内核显示驱动初始化的时候会申请fb0的buffer,这时就指定了fb0的分辨率,因此后面通过命令去切换成HDMI显示的时候,分辨率基本上就对应不上,修改方法有一种,就是开机的时候就指定默认HDMI输出,如下所示,修改完毕后需要重新编译uboot,在lichee/brandy-2.0/u-boot-2018目录下执行make clean && muboot

      diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts
      index 793dec2..d95a320 100644
      --- a/configs/nezha/uboot-board.dts
      +++ b/configs/nezha/uboot-board.dts
      @@ -229,15 +229,15 @@
              screen1_output_scan      = <0>;
              screen1_output_aspect_ratio = <8>;
      
      -       dev0_output_type         = <1>;
      -       dev0_output_mode         = <4>;
      +       dev0_output_type         = <3>;
      +       dev0_output_mode         = <10>;
              dev0_screen_id           = <0>;
      -       dev0_do_hpd              = <0>;
      +       dev0_do_hpd              = <1>;
      
      -       dev1_output_type         = <4>;
      -       dev1_output_mode         = <10>;
      +       dev1_output_type         = <1>;
      +       dev1_output_mode         = <4>;
              dev1_screen_id           = <1>;
      -       dev1_do_hpd              = <1>;
      +       dev1_do_hpd              = <0>;
      
              def_output_dev           = <0>;
              hdmi_mode_check          = <1>;
      

      2、param参数信息中4 10分别代表DISP_OUTPUT_TYPE_HDMI和DISP_TV_MOD_1080P_60HZ,后面的参数一般不用关心,可以在linux-5.4/include/video/sunxi_display2.h看到相关宏定义

      enum disp_output_type {
          DISP_OUTPUT_TYPE_NONE = 0,
          DISP_OUTPUT_TYPE_LCD = 1,
          DISP_OUTPUT_TYPE_TV = 2,
          DISP_OUTPUT_TYPE_HDMI = 4,
          /***/
      };
      
      enum disp_tv_mode {
          DISP_TV_MOD_480I = 0,
          DISP_TV_MOD_576I = 1,
          DISP_TV_MOD_480P = 2,
          DISP_TV_MOD_576P = 3,
          DISP_TV_MOD_720P_50HZ = 4,
          DISP_TV_MOD_720P_60HZ = 5,
          DISP_TV_MOD_1080I_50HZ = 6,
          DISP_TV_MOD_1080I_60HZ = 7,
          DISP_TV_MOD_1080P_24HZ = 8,
          DISP_TV_MOD_1080P_50HZ = 9,
          DISP_TV_MOD_1080P_60HZ = 0xa,
          /***/
      
      发布在 MR Series
      A
      anruliu

    anruliu 发布的最新帖子

    • 回复: T113-S3 驱动屏幕显示问题

      @aw20221130 怎么配置成横屏的,一般应用上可以用g2d进行旋转

      发布在 GUI
      A
      anruliu
    • 回复: A133 LCD fps异常,越来越小

      @wyz1226 这个不是问题,画面更新(如快速滑动界面)的时候,这个fps会上去的,或者你把cpu调频模式改成performance也可以

      发布在 Linux
      A
      anruliu
    • 回复: Tina Linux i8080 屏幕接线问题

      lcd te脚可以接到soc的vsync脚

      发布在 Linux
      A
      anruliu
    • 回复: 关于全志disp

      @yuwei 在 关于全志disp 中说:

      DISP_LAYER_SET_CONFIG

      主要是送显示的buf管理不一样
      DISP_LAYER_SET_CONFIG 直接传送显示的buf物理地址,上层释放buf后,图层没有关闭可能会有一些异常
      DISP_LAYER_SET_CONFIG2 需要传iommu申请的fd,disp驱动中会对这个fd增加一个引用计数,上层释放这个buf后,图层没有关闭情况下,buf是没有释放的,等到关闭图层后,减少引用计数才会释放buf

      发布在 Linux
      A
      anruliu
    • 回复: LVDS显示有锯齿

      @godzhou0909 寄存器和UI与视频层没有关系,建议把摄像头数据dump出来看下

      发布在 H/F/TV Series
      A
      anruliu
    • 回复: LVDS显示有锯齿

      @godzhou0909 不确定,你看下芯片user manual 的tcon部分,LCD_LVDS_EVEN_ODD_DIR寄存器修改下有没有用

      发布在 H/F/TV Series
      A
      anruliu
    • 回复: LVDS显示有锯齿

      @godzhou0909 你LVDL0和LVDL1接反了吧

      发布在 H/F/TV Series
      A
      anruliu
    • 回复: LVGL8打开G2D报错

      @waterworld 大概率是lvgl中用的g2d头文件与内核中的g2d头文件有些差异导致

      lv_drivers/display/sunxig2d.h
      
      发布在 GUI
      A
      anruliu
    • 回复: [D1] Lichee RV 86 Panel color issue

      @konstantint You can try

      [lcd0]
       lcd_rb_swap = <1>;
      
      发布在 GUI
      A
      anruliu
    • 回复: 请问 H616的安卓10(TV) 有办法吧屏幕旋转90度嘛

      @godphp 可以检查下有没有这个配置

      # set primary display orientation to 0
      PRODUCT_PROPERTY_OVERRIDES += \
          ro.surface_flinger.primary_display_orientation=ORIENTATION_90
      
      发布在 H/F/TV Series
      A
      anruliu