0.dts中配置1920x1080的分辨率 1.build.prop添加以下属性: persist.sys.framebuffer.main=1920x600@60 2.hardware/rockchip/hwcomposer以下修下修改:
diff --git a/hwcomposer.cpp b/hwcomposer.cpp index 0fd2177…3ad13a9 100755 — a/hwcomposer.cpp b/hwcomposer.cpp @@ -3498,8 3498,10 @@ static int hwc_get_display_configs(struct hwc_composer_device_1 *dev,
char framebuffer_size[PROPERTY_VALUE_MAX]; uint32_t width = 0, height = 0 , vrefresh = 0 ;
- if (display == HWC_DISPLAY_PRIMARY) property_get(“persist.sys.framebuffer.main”, framebuffer_size, “use_baseparameter”);
- else if(display == HWC_DISPLAY_EXTERNAL)
- property_get(“persist.sys.framebuffer.aux”, framebuffer_size, “use_baseparameter”); /*
- if unset framebuffer_size, get it from baseparameter , by libin */
@@ -2298,7 2301,8 @@ static int hwc_prepare(hwc_composer_device_1_t *dev, size_t num_displays, hd->rel_yres = mode.v_display(); hd->v_total = mode.v_total(); hd->w_scale = (float)mode.h_display() / hd->framebuffer_width;
- hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
- //hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
- hd->h_scale = 1.0; int fbSize = hd->framebuffer_width * hd->framebuffer_height; //get plane size for display std::vector<PlaneGroup *>& plane_groups = ctx->drm.GetPlaneGroups(); @@ -3638,7 3647,8 @@ static int hwc_set_active_config(struct hwc_composer_device_1 *dev, int display, return -ENOENT; } hd->w_scale = (float)mode.h_display() / hd->framebuffer_width;
- hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
-
//hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
-
hd->h_scale = 1.0;
c->set_current_mode(mode); ctx->drm.UpdateDisplayRoute();