Gallium3D简介——从DRI到Gallium3D
2012-11-01 13:01
1766 查看
Gallium3D简介——从DRI到Gallium3D
分类: OpenGL2010-04-1010:32 1035人阅读 评论(0) 收藏 举报
目录(?)[+]
1. Gallium3D
Gallium3D是新出来的3D模型。网上评论比较多,这里就不废话了。本文翻译自Keith Whitwell的演讲:
TG-Gallium Driver Stack(Softpipe, Cell and Beyond), keith@tungstengraphics.com。
2. 从DRI演进到Gallium3D DRI
在Gallium3D之前,Mesa为了实现硬件加速,其DRI体系结构如下:图 Mesa DRI(非Gallium3D)
作者认为,这个模型有下面的缺点:
(1) Mesa和驱动之间的Leaky interface;
(2) 驱动体系庞大而且越来越复杂;
(3) API OS相关的东西也写在驱动里面了;
Mesa DRI的模型导致DRI 驱动层过于庞大。而DRI驱动通常是硬件相关的,这就导致为了适用新的设备,开发工作较大。
所以好事者觉得有必要在DRI驱动这一层,提炼一些硬件无关的东西出来。于是他们提出了一个初步的想法,就是将其划分为三层:
图 DRI 驱动分层(非Gallium3D)
这个模型的特点是:
(1) 将API,OS,HW分开;
(2) 创建了新的接口;
(3) 分割驱动;(和第一条差不多了)
现在将DRI驱动分层的想法付诸实施,就得到了下面的模型:
图 DRI 驱动分层(Gallium3D)
这个模型带来了下述特点:
●增加了State tracker, HW Driver, Winsys三个模块;
● TG-Gallium驱动栈
3. Gallium3D的特点和参考实现
驱动模型:●由GL3(OpenGL 3.0?),NV_GPU4, i965等软硬件抽象出来的接口;
●常态状态对象;
●简单绘图接口;如DrawArrays, DrawElements;
●字节码形式的统一Shade语言;
● Render目标作为私有缓冲;
●可以将硬件驱动运行在新的接口,如GL3,GLES等;
●可以将硬件驱动运行在新的窗口系统;
硬件驱动:
●比DRI驱动简单很多;
●接口:
-Create/Bind/Delete状态对象;
-Draw,1-2个入口;
-缓冲管理;
-Flush
●每个Gallium驱动定义它自己的OS层(Winsys)接口;
●通过重新实现WInsys层可以Re-target驱动;如miniglx,EGL;
Mesa State Tracker
● 实现了当前的Mesa驱动模型;
● 使用了新的硬件驱动接口
● 硬件无关,可重用;
● 将GL状态转化为常类型对象;
● 处理了所有费解的GL概念:
-所有不同的GL绘制路径;
-像素路径操作,DrawPixels, Bitmap, CopyT exSubImage
-GL纹理语义;
-纹理环境,GL1.5 shader, GLSL
O/S Dependencies
● 每一个Gallium驱动会定义其OS层Winsys接口;
● 通过切换Winsys层可以retarget驱动;
Winsys Layer
● 实现了两个接口:
-DRI驱动接口:CreateDevice, CreateContext,SwapBuffers (**)
-硬件驱动的Winsys接口:缓冲管理,命令提交;
● 封装了下述内容:
-DRI lock和cliprects
-Swapbuffers, page flipping.
-通用的操作系统相关内容;
Mesa提供了Gallium3D驱动的软件参考实现Softpipe:
图 Gallium3D驱动的参考实现Softpipe
Mesa同时还提供了Gallium3D驱动的i915参考实现Softpipe:
图 Gallium3D驱动的参考实现i915
相关文章推荐
- Gallium3D简介——从DRI到Gallium3D
- RISC、CISC、 SIMD、FPU、MMX、SSE、SSEX、AVX、3D Now以及DSP、ARM的Neon简介
- 3D中的切线空间简介(转)
- three.js简介 —— 3D框架
- 3D立体显示技术原理与游戏应用历程简介
- gallium3d全介绍文章
- VR系列——Oculus Audio sdk文档:一、虚拟现实音频技术简介(3)——3D音频的空间化
- 3D卷积简介
- 基于ACIS/HOOPS的3D应用开发简介
- [转]3D游戏中的场景管理(八叉树和BSP树简介)
- 3D游戏中的场景管理(八叉树和BSP树简介)
- J2ME 3D技术简介
- 3D中的切线空间简介
- 3D Math Primer for Graphics and Game Development -- 图形与游戏开发(3D数学基础) (简介)
- 3D渲染中纹理映射技术与贴图制作技巧简介
- 3D游戏基础 Direct3D(一) D3D基本概念及渲染流水线简介
- 3D/VR游戏制作软件GameStudio简介
- J2ME 3D技术简介
- J2ME 3D技术简介
- 第一章:3D图形和OpenGL简介