prece 发表于 2020-5-7 11:21:32

RK3399安卓平台如何禁用hwcomposer,选择framebuffer进行渲染

最近在使用RK3399+Android-7.1.2 industry平台进行方案调研。

目前的一个需求是希望禁用hwcomposer,而是将图像渲染至Linux framebuffer(/dev/grapihcs/fb0)中。但是经过调研,AOSP/hardware/rockchip/libgralloc代码中的逻辑,没有使能framebuffer功能,在else处直接返回了-EINVAL。

请问如何能实现RK3399 Android使用/dev/graphics/fb0进行图像渲染呢?

static int drm_mod_open(const struct hw_module_t *mod,
                const char *name, struct hw_device_t **dev)
{
      struct drm_module_t *dmod = (struct drm_module_t *) mod;
      int err;

      if (strcmp(name, GRALLOC_HARDWARE_GPU0) == 0)
                err = drm_mod_open_gpu0(dmod, dev);
      else
                err = -EINVAL;

      return err;
}

风之空响 发表于 2020-5-7 11:38:01

这个之前没有测试过,但是在
hardware/rockchip/hwcomposer/Android.mk中默认使用的是DRM
BOARD_USES_DRM_HWCOMPOSER=true,你可以尝试修改这里的宏定义看看

prece 发表于 2020-5-7 11:50:04

风之空响 发表于 2020-5-7 11:38
这个之前没有测试过,但是在
hardware/rockchip/hwcomposer/Android.mk中默认使用的是DRM
BOARD_USES_DRM ...

这个宏只是用来控制是否将hwcomposer.rk30board.so编译进最终镜像。
我实验的时候已经把这个库手动删除了,就是说已经将hwcomposer禁用了,但是现在就是发现咱们的代码中没有framebuffer的支持。
页: [1]
查看完整版本: RK3399安卓平台如何禁用hwcomposer,选择framebuffer进行渲染