一、RGA概述
RGA (Raster Graphic Acceleration Unit)是一个独立的2D硬件加速器,可用于加速点/线绘制,执行图像缩放、旋转、bitBlt、alpha混合等常见的2D图形操作。
二、RGA移植(交叉编译)
1、源码下载
buildroot中提供的是编译好的成果物,不是源码不能自己重新编译。如果要通过源码重新编译,可从下面路径下载然后指定交叉编译器进行交叉编译
官方源码路径:百度网盘企业版-企业级文件极速传输工具
2、源码解压
3、修改 \librga\toolchains\toolchain_linux.cmake,指定交叉编译器
SET(TOOLCHAIN_HOME "/opt/atk-dlrk356x-toolchain")
SET(TOOLCHAIN_NAME "aarch64-linux")
# this is required
#SET(CMAKE_SYSTEM_NAME Linux)
# specify the cross compiler
SET(CMAKE_C_COMPILER ${TOOLCHAIN_HOME}/bin/${TOOLCHAIN_NAME}-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_HOME}/bin/${TOOLCHAIN_NAME}-g++)
# where is the target environment
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_HOME})
# search for programs in the build host directories (not necessary)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
4、编译ligrga
直接执行 \librga\cmake-linux.sh ,该脚本中会一键完成config、make、make install
编译完成后会安装到 \librga\build 下
5、编译samples
直接执行 \librga\samples\cmake-linux.sh ,该脚本中会一键完成config、make、make install
三、版本查询
librga是基于驱动调用RGA硬件的,必须要保证驱动版本在使用的librga库的支持范围内
1、librga API版本
可以通过如下3种方式来查询
- strings命令查询:
# strings /usr/lib/librga.so | grep rga_api | grep version
rga_api version 1.3.1_[11] (RGA is compiling with meson base: $PRODUCT_BASE)
- 日志打印:
当每个进程首次调用RGA API时,会打印版本号。
rockchiprga: rga_api version 1.0.0_[0]
- 函数接口查询
调用以下API,可以查询代码版本号、编译版本号、RGA硬件版本信息。具体使用说明可以查看 应用接口说明 章节。
querystring(RGA_VERSION);
2、rga驱动版本
可以通过如下方式来查询
- 开机日志查询:
开机后使用以下命令查询RGA驱动初始化日志,部分早期的驱动没有打印版本号,该方法仅适用部分驱动。
dmesg |grep rga
- 调试节点查询
可以通过驱动调试节点查询版本号,如果没有以下节点则说明当前运行的是不支持查询的驱动版本
cat /sys/kernel/debug/rkrga/driver_version
3、版本对应关系
使用RGA时需要确认保证当前的运行环境是可以正常工作的,下表为常用的librga与驱动版本对应关系。
librga版本 | 对应驱动 | 硬件支持 |
无版本号 | 对应SDK内驱动 | RGA1、RGA2 |
1.0.0 ~ 1.3.2 | RGA Device Driver(kernel - 4.4及以上) RGA2 Device Driver(无版本号或v2.1.0) | RGA1、RGA2 |
> 1.4.0 | RGA multicore Device Driver(v1.2.0及以上) | RGA2、RGA3 |
> 1.9.0 | RGA Device Driver(kernel-4.4及以上) RGA2 Device Driver(无版本号和v2.1.0) RGA multicore Device Driver(v1.2.0及以上) | RGA1、RGA2、RGA3 |