Name Date Size #Lines LOC

..--

chip_config/H05-Jun-2025-137122

cmake/H05-Jun-2025-1813

sources/H05-Jun-2025-1,164833

third-party/libdrm/include/H05-Jun-2025-11,9846,470

Android.mkH A D05-Jun-20251.5 KiB6746

CMakeLists.txtH A D05-Jun-20252.7 KiB9576

README.mdH A D05-Jun-20255 KiB14995

cmake-linux.shH A D05-Jun-2025440 2821

README.md

1# RGA模块SLT测试工具
2
3
4
5## 概述
6
7该工具用于芯片SLT阶段使用,可以通过配置实现对RGA模块硬件进行测验。
8
9
10
11## 使用说明
12
13### 前置条件
14
15#### 图像准备
16
17由于RGA硬件执行需要外部输入图像进行处理,所以需要提前准备对应的图片并确保将图像存入设备指定目录。
18
19图像存储的目录可以在slt_config.h中进行配置,文件命名规则如下:
20
21- Raster mode
22
23```
24in%dw%d-h%d-%s.bin
25out%dw%d-h%d-%s.bin
26
27示例:
281280×720 RGBA8888的输入图像: in0w1280-h720-rgba8888.bin
291280×720 RGBA8888的输出图像: out0w1280-h720-rgba8888.bin
30```
31
32- FBC mode
33
34```
35in%dw%d-h%d-%s-afbc.bin
36out%dw%d-h%d-%s-afbc.bin
37
38示例:
391280×720 RGBA8888的输入图像: in0w1280-h720-rgba8888-afbc.bin
401280×720 RGBA8888的输出图像: out0w1280-h720-rgba8888-afbc.bin
41```
42
43> 参数解释如下:
44>
45> 输入文件为 in , 输出文件为 out
46> --->第一个%d 是文件的索引, 一般为 0, 用于区别格式及宽高完全相同的文件
47> --->第二个%d 是宽的意思, 这里的宽一般指虚宽
48> --->第三个%d 是高的意思, 这里的高一般指虚高
49> --->第四个%s 是格式的名字。
50
51
52
53#### 内存限制
54
55由于RGA2硬件不支持大于32位的物理地址,所以建议测试环境保证地址映射在0~4G地址空间以内。
56
57
58
59#### 编译配置
60
61在工具编译前,可以通过修改 slt_config.h 配置测试工具,该文件配置可以参考chip_config中的template进行替换使用。
62
63| 配置                         | 说明                                                         |
64| :--------------------------- | :----------------------------------------------------------- |
65| IM2D_SLT_THREAD_EN           | 使能该配置后,将使能多线程模式,每个case都单独在一个线程运行。 |
66| IM2D_SLT_THREAD_MAX          | 多线程模式有效,配置最大的线程数量。                         |
67| IM2D_SLT_WHILE_EN            | 使能该配置后,将使能测试case循环模式。                       |
68| IM2D_SLT_WHILE_NUM           | 循环模式有效,测试case循环次数。                             |
69| IM2D_SLT_DRM_BUFFER_EN       | 使能该配置后,测试工具的内存分配器将选择DRM。                |
70| IM2D_SLT_GRAPHICBUFFER_EN    | 使能该配置后,测试工具的内存分配器将选择Gralloc。            |
71| IM2D_SLT_RK_DMA_HEAP_EN      | 使能该配置后,测试工具的内存分配器将选择rk_dma_deap。        |
72| IM2D_SLT_BUFFER_CACHEABLE    | 使能该配置后,测试工具将申请cacheable的内存。                |
73| IM2D_SLT_BUFFER_PHY_EN       | 使能该配置后,测试工具将申请使用物理地址。                   |
74| IM2D_SLT_TEST_RGA2_EN        | 使能该配置后,将使能RGA2 拷贝测试case。                      |
75| IM2D_SLT_TEST_RGA3_0_EN      | 使能该配置后,将使能RGA3 core0 拷贝测试case。                |
76| IM2D_SLT_TEST_RGA3_1_EN      | 使能该配置后,将使能RGA3 core1 拷贝测试case。                |
77| IM2D_SLT_TEST_RGA3_0_FBC_EN  | 使能该配置后,将使能RGA3 core0 FBC模式 拷贝测试case。        |
78| IM2D_SLT_TEST_RGA3_1_FBC_EN  | 使能该配置后,将使能RGA3 core1 FBC模式 拷贝测试case。        |
79| IM2D_SLT_DEFAULT_WIDTH       | 默认的图像宽。                                               |
80| IM2D_SLT_DEFAULT_HWIGHT      | 默认的图像高。                                               |
81| IM2D_SLT_DEFAULT_FORMAT      | 默认的图像格式。                                             |
82| IM2D_SLT_DEFAULT_INPUT_PATH  | 默认的输入图像路径                                           |
83| IM2D_SLT_DEFAULT_OUTPUT_PATH | 默认的输出图像路径                                           |
84
85
86
87### 编译
88
89#### Android
90
91在配置好Android SDK编译环境后,在源码目录下使用如下命令编译即可。
92
93```
94mm
95```
96
97
98
99#### Linux
100
101- cmake
102
103  - 修改librga源码根目录下的**/cmake/buildroot.cmake**文件。执行以下脚本完成编译:
104
105  ```
106  $ chmod +x ./cmake-linux.sh
107  $ ./cmake-linux.sh
108  ```
109
110   **[编译选项]**
111
112  1. 指定TOOLCHAIN_HOME为交叉编译工具的路径
113  2. 指定CMAKE_C_COMPILER为gcc编译命令的路径
114  3. 指定CMAKE_CXX_COMPILER为g++编译命令的路径
115
116  - 前级librga目录未编译时,需要修改librga.so的链接路径:
117
118  ```
119  vim CmakeList.txt +82
120  修改 target_link_libraries(im2d_slt librga.so)路径
121  ```
122
123
124
125### 工具运行
126
127将编译生成的im2d_slt 推入设备后,直接运行即可。
128
129
130
131## 结果说明
132
133如果出现以下日志,则说明测试成功。
134
135```
136:/ # im2d_slt
137-------------------------------------------------
138ID[1]: RGA3_core0 imcopy 1 time success!
139ID[1]: RGA3_core0 check buffer 1 time success!
140ID[1]: RGA3_core0 imcopy 2 time success!
141ID[1]: RGA3_core0 check buffer 2 time success!
142ID[1]: RGA3_core0 imcopy 3 time success!
143ID[1]: RGA3_core0 check buffer 3 time success!
144ID[1] RGA3_core0 run end!
145-------------------------------------------------
146im2d api slt success!
147```
148
149