OpenHarmony图形HDI基础适配及点屏

您所在的位置:网站首页 鸿蒙横屏竖屏在哪里设置手机 OpenHarmony图形HDI基础适配及点屏

OpenHarmony图形HDI基础适配及点屏

2024-05-26 00:40| 来源: 网络整理| 查看: 265

本文档主要介绍图形基础适配及点屏。

环境说明:

OHOS版本: 适用3.2-Beta3及以上

内核版本: linux-5.10

硬件环境: Dayu200-rk3568及其它硬件

一、图形驱动测试 OH现有框架主要支持两种显示框架,drm和FB。目前OH上主流采用drm框架。

drm驱动是显卡驱动的一种架构。相比FB架构,DRM更能适应当前日益更新的显示硬件。比如FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等,而这些功能DRM原生都支持。同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一,方便管理和维护。

1.1 drm驱动测试 在用户态,drm提供了libdrm库,并提供了modetest测试程序,来测试drm驱动是否完成了基础适配。

在OpenHarmony的第三方库libdrm自带了modetest,但默认没有参考编译,编译方法如下:

1.1.1 环境搭建 1、 为 modetest 添加 BUILD.gn:

import("//build/ohos.gni") ohos_executable("modetest") { sources = [ "buffers.c", "cursor.c", "modetest.c", ] cflags = [ "-Wno-pointer-arith", ] include_dirs = [ "../", ".", ] configs = [ "//third_party/libdrm:libdrm_config" ] public_configs = [ "//third_party/libdrm:libdrm_public_config" ] deps = [ "//third_party/libdrm:libdrm", "//third_party/libdrm/tests/util/:util", ] public_deps = [] install_images = [ "system", "updater", ] part_name = "graphic_standard" subsystem_name = "graphic" }

2、添加其它依赖:third_party\libdrm\tests\util\BUILD.gn

import("//build/ohos.gni") ohos_static_library("util") { sources = [ "format.c", "kms.c", "pattern.c", ] cflags = [] include_dirs = [ "../", ".", ] configs = [ "//third_party/libdrm:libdrm_config" ] public_configs = [ "//third_party/libdrm:libdrm_public_config" ] deps = [ "//third_party/libdrm:libdrm", ] public_deps = [] }

3、加入编译框架,添加到graphic依赖项:

foundation/graphic/graphic_2d/bundle.json diff --git a/bundle.json b/bundle.json index 755e6d2..f1bb7ef 100755 --- a/bundle.json +++ b/bundle.json @@ -56,6 +56,8 @@          "group_type": {            "base_group": [              "//third_party/libpng:libpng", +            "//third_party/libdrm/tests/util:util", +            "//third_party/libdrm/tests/modetest:modetest",              "//foundation/graphic/graphic_2d/interfaces/kits/napi:napi_packages",              "//foundation/graphic/graphic_2d/rosen/modules/composer:libcomposer",              "//foundation/graphic/graphic_2d/rosen/modules/composer/native_vsync:libnative_vsync",

4、有个报错,提示这个未使用,注释的就好了

third_party\libdrm\tests\util\pattern.c:988     // void *mem_base = mem;

5、开始编译并下载。生成的文件在/system/bin下

1.1.2 测试效果 6、执行modetest.

首先把render_service停止

service_control stop render_service

OpenHarmony图形HDI基础适配及点屏-鸿蒙开发者社区



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3