Firefly Open Source Community

Title: Android 7 Full 4k apps [Print This Page]

Author: dbe_dev    Time: 6/26/2017 22:20
Title: Android 7 Full 4k apps
Been busy to get the rk3399 to output full 4k.

Found so far that one can set the  persist.sys.framebuffer.main to 3840x2160, this causes android to draw everything in 4k but it does not create a full 4k experience on the output because a bit of code in "hardware/rockchip/hwcomposer/hwcomposer.cpp" which is causing to report a 1080p screen in case the framebuffer is set to 2160p.

Worked around this by doing the following change in the SDK:

  1. diff --git a/hardware/rockchip/hwcomposer/hwcomposer.cpp b/hardware/rockchip/hwcomposer/hwcomposer.cpp
  2. index 173271f..2721dac 100755
  3. --- a/hardware/rockchip/hwcomposer/hwcomposer.cpp
  4. +++ b/hardware/rockchip/hwcomposer/hwcomposer.cpp
  5. @@ -287,7 +287,7 @@ class DrmHotplugHandler : public DrmEventHandler {
  6.      update_display_bestmode(hd, HWC_DISPLAY_EXTERNAL, extend);
  7.      DrmMode mode = extend->best_mode();

  8. -    if (mode.h_display() > mode.v_display() && mode.v_display() >= 2160) {
  9. +    if (mode.h_display() > mode.v_display() && mode.v_display() > 2160) {
  10.        hd->framebuffer_width = mode.h_display() * (1080.0 / mode.v_display());
  11.        hd->framebuffer_height = 1080;
  12.      } else {
  13. @@ -1661,7 +1661,7 @@ static int hwc_get_display_configs(struct hwc_composer_device_1 *dev,
  14.      /*
  15.       * Limit to 1080p if large than 2160p
  16.       */
  17. -    if (hd->framebuffer_height >= 2160 && hd->framebuffer_width >= hd->framebuffer_height) {
  18. +    if (hd->framebuffer_height > 2160 && hd->framebuffer_width >= hd->framebuffer_height) {
  19.        hd->framebuffer_width = hd->framebuffer_width * (1080.0 / hd->framebuffer_height);
  20.        hd->framebuffer_height = 1080;
  21.      }
Copy the code


Also found some statements on needing to disable VOP_Little. Is this needed for android 7 and how do I do this for the android 7 SDK ?



Author: isle    Time: 6/27/2017 09:59
Hi, the  MAX output resolution of VOP_Little is 2560X1600, if you have only one output, you can disable VOP_Little,so the output screen can connect with VOP_BIG, which have 4096X2160 max resolution .
to disable VOP_little, you need modify the "dts" file  in kernel  
Author: perkl    Time: 10/17/2017 04:42
isle Posted at 6/27/2017 09:59
Hi, the  MAX output resolution of VOP_Little is 2560X1600, if you have only one output, you can disa ...

Can you point out what to edit in the dts file and which dts file is the correct one to edit?  Thank you beforehand!






Welcome Firefly Open Source Community (https://bbs.t-firefly.com/) Powered by Discuz! X3.1