Vivante GPU简介

************************************************************************************************************************************************

Vivante 百度百科

Vivante是嵌入式图形处理器(GPU)设计领域中的技术先行者。

中文名     图芯技术有限公司                                            外文名      vivante

总    部     加州森尼韦尔                                                   主    要     GPU设计

图芯技术有限公司

图芯是嵌入式图形处理器(GPU)设计领域中的技术先行者。

公司总部位于加州森尼韦尔,为全球移动设备和家庭娱乐市场的尖端应用提供一套全面的图形处理器解决方案。种类繁多的2D和2D/3D图形处理器,能够提供高性能和低功耗消耗。

同时,用最小的硅印模为业界标准应用程序接口(OpenGL; ES 2.0和OpenGL; ES 1.1OpenVG、DirectX 9)提供强大支持。图芯芯片技术,将桌面质量的图象和性能带入位于您卧室、汽车和您手掌中的屏幕。我们的嵌入式解决方案是可升级的,建立在业界标准之上,且优化功耗、性能和大小,因此,我们的客户可以有效的区别他们的产品。

图芯的全面及不断增长的产品系列,与全球范围内多家公司的成功合作伙伴关系以及公司中经验丰富的研发成员和支持团队,这些都为公司创造了一个能促进创新的合作氛围。我们共同的成功,对客户获得可移动的视觉逼真和高清视觉逼真是必不可少的,并且推动我们事业的发展。

************************************************************************************************************************************************

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。

5、Vivante GPU使用的图形API简介
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框架
 

发布了46 篇原创文章 · 获赞 74 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/u010977122/article/details/103232608
GPU
今日推荐