3.9. sample_gpu_3d 使用说明
X53D GPU 支持
EGL
OpenGLES
Vulkan
OpenCL
其中, EGL 作为
OpenGLES 示例
Vulkan 示例
OpenCL 示例
请
3.9.1. OpenGL ES
3.9.1.1. sample_bezier
功能概述
功能sample_bezier 使用 3D GPU 画
软件架构说明
sample_bezier 支持
Onscreen 模式(默认):通过 DRM + GBM 在 HDMI 显示器
上 呈现 EGL surface。 Offscreen 模式:通过 fbdev 虚拟 framebuffer 离屏
渲染,无需 物理 显示器。

代码位置及目录结构
代码
位置 app/samples/platform_samples/sample_gpu_3d/gles/sample_bezier目录
结构
sample_bezier/
├── common
│ ├── bmp.c
│ ├── bmp.h
│ ├── vdk_common.c
│ └── vdk_common.h
└── sample_bezier
├── bezier.c
└── Makefile
API 流程说明
整体流程

vdk_init
vdk_init属于 libVDK.so 中VDK_PLATFORM 环境变量
Onscreen 模式:
VDK_PLATFORM=gbmOffscreen 模式:
VDK_PLATFORM=fbdev,同时设置 VIV_EGL_PLATFORM=fbdev与VFB_ENABLE=1

编译部署
编译
进入 sample_bezier 目录,执行
make编译输出
成果 物是 sample_bezier 源码 目录 下 的 bezier详细
程序 编译 方式 请 查阅 编译 方法 章节
程序部署
把
目录 sample_bezier上传到 开发板 /userdata目录下 进入
sample_bezier运行chmod +x bezier命令给 程序 赋予 可 执行 权限
运行
sample_bezier 默认-o/--offscreen 选项bezier.bmp 与 Onscreen 模式
程序参数选项说明
| 选项 | 说明 |
|---|---|
-o, --offscreen |
离屏 |
-h, --help |
打印 |
程序运行方法
Onscreen 模式(默认,需 HDMI 显示
加载
modprobe panel-jc-050hd134
modprobe galcore
modprobe vio_n2d
modprobe lontium_lt8618
modprobe vs-x5-syscon-bridge
modprobe vs_drm
通过 HDMI 接口
执行命令:
./bezier
运行日志:
Render mode: onscreen (gbm)
Offscreen 模式(-o,无
执行命令:
./bezier -o
运行日志:
Render mode: offscreen (fbdev)
运行效果
效果
当前目录bezier.bmp,文件bezier.bmp 内容

3.9.2. OpenCL
3.9.2.1. sample_matrix_multiply
功能概述
功能sample_matrix_multiply 完成
软件架构说明

代码位置及目录结构
代码
位置 app/samples/platform_samples/sample_gpu_3d/cl/sample_matrix_multiply目录
结构
└── sample_matrix_multiply
├── Makefile
└── matrix_multiply.c
API 流程说明
整体流程

matirc_mult_opencl
函数 matirc_mult_opencl 使用 GPU 完成 矩阵

编译部署
编译
进入 sample_matrix_multiply 目录,执行
make编译输出
成果 物是 sample_matrix_multiply 源码 目录 下 的 matrix_multiply详细
程序 编译 方式 请 查阅 编译 方法 章节
程序部署
把
目录 sample_matrix_multiply上传到 开发板 /userdata目录下 进入
sample_matrix_multiply运行chmod +x matrix_multiply命令给 程序 赋予 可 执行 权限
运行
程序运行方法
执行./matrix_multiply
程序参数选项说明
无
运行效果
执行命令:
./matrix_multiply
运行日志:
./matrix_multiply
CPU execution time: 19.133549 seconds
OpenCL execution time: 0.792543 seconds
Matrices are identical!
效果
CPU 耗时: 19.133549 seconds
GPU 耗时: 0.792543 seconds
总