阅读:18226回复:10

Android9配置nativeUI为720p

楼主#
更多 发布于:2019-07-26 21:36
在低内存设备上, 我们通常需要降低native UI来节省内存,并提高系统流畅程度。


1.  修改OSD framebuffer

dts中修改 “meson-fb” 模块:
meson-fb {
 compatible = "amlogic, meson-gxl";
 memory-region = <&logo_reserved>;
 dev_name = "meson-fb";
 status = "okay";
 interrupts = <0 3 1
 0 89 1>;
 interrupt-names = "viu-vsync", "rdma";
 mem_size = <0x00800000 0x01800000 0x00100000>;
 /* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000*/
--- display_mode_default = "1080p60hz";
+++ display_mode_default = "720p60hz";
 scale_mode = <1>;
 /** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
--- display_size_default = <1920 1080 1920 3240 32>;
+++ display_size_default = <1280 720 1280 2160 32>;
 /*1920*1080*4*3 = 0x17BB000*/
 logo_addr = "0x3f800000";
 };
注:
此例子是三buffer缓冲的OSD。
 
几个buffer由BoardConfig.mk如下宏决定:
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
 
如果是S905X2X3平台,第一部参考如下修改:

&meson_fb {
 status = "okay";
---display_size_default = <1920 1080 3840 2160 32>;
---mem_size = <0x00800000 0x1980000 0x100000 0x100000 0x800000>;

+++display_size_default = <1280 720 1280 2160 32>;
+++mem_size = <0x00400000 0x1980000 0x100000 0x100000 0x400000>;
 logo_addr = "0x3f800000";
 mem_alloc = <0>;
 pxp_mode = <0>; /** 0:normal mode 1:pxp mode */
};





2. device中修改Android APP display区域
(1) files/mesondisplay.cfg中的 "1080p"改为 "720p"(这里9.0不需要修改保留1080p,改了会有问题,详情见回复)
(2) 修改density , 参考如下:
Z:\AndroidP_AOSP\androidP\device\amlogic\braun\braun.mk
ifeq
($(TARGET_BUILD_GOOGLE_ATV),true)
 PRODUCT_PROPERTY_OVERRIDES += \
-    ro.sf.lcd_density=320
+    ro.sf.lcd_density=240
 else
 PRODUCT_PROPERTY_OVERRIDES += \
-    ro.sf.lcd_density=240
+    ro.sf.lcd_density=160
 endif

(3) 修改Framebuffer size, 参考如下:
Z:\AndroidP_AOSP\androidP\device\amlogic\braun\BoardConfig.mk
#MESONHWC CONFIG
USE_HWC2 := true
HWC_DISPLAY_NUM := 1

---    HWC_PRIMARY_FRAMEBUFFER_WIDTH := 1920
---    HWC_PRIMARY_FRAMEBUFFER_HEIGHT := 1080
---    #HWC_EXTEND_FRAMEBUFFER_WIDTH := 1920
---    #HWC_EXTEND_FRAMEBUFFER_HEIGHT := 1080
+++    HWC_PRIMARY_FRAMEBUFFER_WIDTH := 1280
+++    HWC_PRIMARY_FRAMEBUFFER_HEIGHT := 720
+++    #HWC_EXTEND_FRAMEBUFFER_WIDTH := 1280
+++    #HWC_EXTEND_FRAMEBUFFER_HEIGHT := 720
HWC_PRIMARY_CONNECTOR_TYPE := "hdmi"
#HWC_EXTEND_CONNECTOR_TYPE := "panel"
#HWC_ENABLE_HEADLESS_MODE := true

最新喜欢:

lxc9206lxc920... xhlqdzxhlqdz zhaoyf13zhaoyf...
If you have nothing to lose, then you can do anything.
沙发#
发布于:2020-02-26 10:03
2. device中修改Android APP display区域
(1) files/mesondisplay.cfg中的 "1080p"改为 "720p"(这里9.0不需要修改保留1080p,改了会有问题,详情见回复)

这里改了之后,会出现开机logo位置闪烁的问题,切记切记,这里不要修改。
If you have nothing to lose, then you can do anything.
板凳#
发布于:2020-02-27 09:22
经过测试发现,S905X2平台,按照以上修改方法存在一个问题:
在reset操作(就是进入recovery模式下),显示动画会出现重影,错误。

经过研究发现,针对720p的情况,mesondisplay.cfg文件需要分开。正常启动模式和recovery模式调用不同的mesondisplay.cfg。改动如下:

在device/amlogic/franklin/file目录下新复制一个文件,文件名修改为:
mesondisplay_recovery.cfg
文件内容修改为:MBOX gxl 720p

然后修改device/amlogic/franklin/device.mk
PRODUCT_COPY_FILES += \
    device/amlogic/$(PRODUCT_DIR)/recovery/init.recovery.amlogic.rc:root/init.recovery.amlogic.rc \
    device/amlogic/$(PRODUCT_DIR)/recovery/recovery.kl:recovery/root/etc/recovery.kl \
    ---device/amlogic/$(PRODUCT_DIR)/files/mesondisplay.cfg:recovery/root/etc/mesondisplay.cfg \
    +++device/amlogic/$(PRODUCT_DIR)/files/mesondisplay_recovery.cfg:recovery/root/etc/mesondisplay.cfg \
    device/amlogic/common/recovery/busybox:recovery/root/sbin/busybox \
    device/amlogic/$(PRODUCT_DIR)/recovery/remotecfg:recovery/root/sbin/remotecfg \

这样可以修复在recovery模式下动画显示虚影重影的问题。
If you have nothing to lose, then you can do anything.
地板#
发布于:2020-09-01 15:57
阿赞88:amlogic和mstar mtk合并了 我们也就不回这么辛苦了  难受回到原帖
辛苦辛苦,哈哈,我没做amlogic了,在做全志的,也是有蛮多坑的。和amlogic有的一拼
If you have nothing to lose, then you can do anything.
游客

返回顶部