-
Notifications
You must be signed in to change notification settings - Fork 508
嵌入式笔记:gpu知识点
夏晓文 edited this page Apr 6, 2018
·
1 revision
Hardware Abstraction Layer (HAL)
是按照“Alpha”混合向量的值来混合源像素和目标像素的一种图像处理技术。
SurfaceFlinger服务负责绘制Android应用程序的UI
驱动 | 说明 |
---|---|
Android Ashmem |
匿名共享内存; 为用户空间程序提供分配内存的机制 |
Android Logger |
轻量级的LOG(日志)驱动 |
Android Binder |
基于 OpenBinder 框架的一个驱动 |
Android Power Management |
电源管理模块 |
Low Memory Killer |
低内存管理器 |
Android PMEM |
物理内存驱动 |
USB Gadget |
USB 驱动(基于 gaeget 框架) |
Ram Console |
用于调试写入日志信息的设备 |
Time Device |
定时控制设备 |
Android Alarm |
硬件时钟 |
驱动 | 说明 |
---|---|
Framebuff |
显示驱动 |
surfaceflinger |
显示驱动 |
gralloc |
显示驱动 |
Event |
输入设备驱动 |
ALSA |
音频驱动 |
OSS |
音频驱动 |
v412 |
摄像头视频驱动 |
MTD |
驱动 |
蓝牙驱动 | |
WLAN |
wifi驱动 |
名词 | 说明 |
---|---|
OpenGL |
开放图形库(open graphics library)用于生成2D 3D图像 |
OpenGL ES |
(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计 |
OpenVG |
(Open Vector Graphics)2D矢量图形处理标准函式库 |
OpenCL |
(Open Computing Language)开放运算语言 |
DirectFB |
(Direct Frame Buffer),提供硬体图形加速库 |
GDI |
(Graphics Device Interface),图形设备接口,负责系统与绘图程序之间的信息交换 |
DirectDraw |
DirectX中的关于视频输入输出的基本部分,使用DirectDraw可以方便地编制出高效的视频处理程序,只要用户的硬件支持DirectDraw,就能保证你的代码可以处理它们。 |
Skia |
Android中的2D图形库 |
libagl |
Android中通过软件方法实现的一套OpenGL动态库 |
libhgl |
为区别libagl,自定义的一种叫法。特指GPU厂商提供的硬件实现的OpenGL |
render |
特指使用OpenGL动态库进行3D渲染 |
copybit |
Android使用2D引擎来加速图形操作(主要是Surface之间的composition操作)的一种技术,对应着一个或几个动态库。 |
pmem |
Android特有驱动,从linux内核中reserve物理连续内存,可以为2d、3d引擎、vpu等设备分配物理连续内存。 |
- Linux内核方面:
- 添加GPU驱动支持,以模块方式编译GPU驱动,Android启动时加载内核模块。
- 添加PMEM支持,预留内存供GPU使用
- Android方面:
- 添加copybit HAL
- 修改gralloc gralloc负责显存等的分配,以及对framebuffer操作
- 修改libagl
- 修改surfaceflinger
framebuffer字符设备
设备位于/dev/graphics/fb*
,主设备号为29
相关代码:
include/linux/fb.h
driver/video/fbmem.c
fbmem.c # 提供用户接口
xxxfb.c # 提供硬件操作接口
用户操作:
函数 | 说明 |
---|---|
ioctl() |
获取/设置信息 |
mmap() |
映射内存 |