Firefly开源社区

标题: RK3399安卓平台如何禁用hwcomposer,选择framebuffer进行渲染 [打印本页]

作者: prece    时间: 2020-5-7 11:21
标题: 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
这个之前没有测试过,但是在
hardware/rockchip/hwcomposer/Android.mk中默认使用的是DRM
BOARD_USES_DRM_HWCOMPOSER=true,你可以尝试修改这里的宏定义看看
作者: prece    时间: 2020-5-7 11:50
风之空响 发表于 2020-5-7 11:38
这个之前没有测试过,但是在
hardware/rockchip/hwcomposer/Android.mk中默认使用的是DRM
BOARD_USES_DRM ...

这个宏只是用来控制是否将hwcomposer.rk30board.so编译进最终镜像。
我实验的时候已经把这个库手动删除了,就是说已经将hwcomposer禁用了,但是现在就是发现咱们的代码中没有framebuffer的支持。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1