首页 > 代码库 > Vivante GPU简介

Vivante GPU简介

1. IMX6QVivante GPU简介    1

1.1    IMX6QGPU型号    1

1.2    Vivante GC2000硬件架构    1

2. Vivante GPU使用的图形API简介    2

2.1    OpenGL ES    2

2.2    EGL    2

2.3    Vivante GPU软件框架    3

 

 

  1. IMX6Q中Vivante GPU简介

  2. IMX6Q中GPU型号

    在imx6q中有3个vivante的GPU,分别是GC2000、GC320、GC355。GC2000负责3D图形的加速,GC320负责2D图形的加速,GC355负责矢量图形的加速。如图 11所示:

    技术分享

    11  Vivante GPU简介

  3. Vivante GC2000硬件架构

    技术分享

    12  GC2000硬件架构

    图 12表示的是GC2000 GPU的硬件架构,各模块的具体作用如下:

    Host Interface:GPU和CPU还有内存通讯的接口。

    Memory Controller:GPU内存控制器。

    Graphics Pipeline Front End:相当于GPU内部的DMA,用于从内存中取指令和数据给GPU处理。

    Ultra-threaded Unifed Shader:统一着色器,即可用作顶点着色器(vertex shader)也能用作片元着色器(fragment shader)。用作vertex shader时主要负责几何变换和光照计算,用作fragment shader时主要负责处理贴图数据和计算像素颜色。

    3D Rendering Engine:负责将三角形和线段转换为像素(光栅化),计算三角形面的颜色属性等。

    Texture Engine:用于材质贴图的处理。

    Pixel Engine/Resolve:负责像素透明处理,可见平面的测定和抗锯齿的一些处理,并将GPU处理完成的图像数据输出到frambuffer。

  4. Vivante GPU使用的图形API简介

  5. OpenGL ES

    OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。OpenGL ES 是从 OpenGL 裁剪的定制而来的,去除了四边形、多边形等复杂图元等许多非绝对必要的特性。OpenGL ES 1.x 针对固定pipeline硬件,OpenGL ES 2.x 针对可编程pipeline硬件。

  6. EGL

    OpenGL是一个操作GPU的API,它通过驱动向GPU发送相关指令,控制pipeline状态机的运行状态。但OpenGL需要与本地视窗系统进行交互,这就需要一个中间控制层,最好与平台无关,EGL因此被独立的设计出来,它作为OpenGL ES和本地窗口的桥梁。

    EGL API 是独立于OpenGL ES各版本标准的独立API ,其主要作用是为OpenGL指令创建 Context 、绘制目标Surface 、配置Framebuffer属性、Swap提交绘制结果等。此外,EGL为GPU厂商和OS窗口系统之间提供了一个标准配置接口。一般来说,OpenGL ES中pipeline的状态被存储于EGL管理的一个Context中。而Frame Buffers 和其他绘制Surfaces 通过EGL API进行创建、管理和销毁。 EGL 同时也控制和提供了对设备显示和可能的设备渲染配置的访问。

    图 21为一个典型的EGL系统布局。应用程序通过调用EGL API进行window、surface、context的初始化,接着通过调用OpenGL ES的API进行设置context等,最后调用GPU渲染API进行渲染。

     

    技术分享

    21  典型EGL系统布局

  7. Vivante GPU软件框架

    图 22表示的是Vivante GPU的软件框架。GAL Driver是为了降低跨平台(操作系统,硬件平台)移植的难度而设计的一套API,包括用户层驱动:主要提供GAL API给开发者使用;内核层驱动:主要负责管理对GPU硬件的操作。

    在实际使用中,图中的EGL、OpenGL ES等图形库以动态库形式被使用,用户层的GAL Driver也以动态库形式被使用,内核层的GAL Driver以内核模块驱动形式被使用。

    技术分享

    22  Vivante GPU框架


Vivante GPU简介