简介
近日 Mesa 7.5 正式发布了,这是一个具有重要含义的版本,因为它引入了“Gallium3D”构架。
Mesa 是 OpenGL 规范的开源实现,让显卡的 3D 加速特性透过此得到施展。在
很多平台 Mesa 都得到了应用。其中包括 X Window 系统。
Mesa的开发始于1993年,历史已是相当悠久。虽然近年不断的开发让 Mesa 也适
应了现代桌面的 3D 技术,如 DRI(直接渲染构架)的引入让 X Window 直接在
桌面上渲染 OpenGL 的 3D 应用成为可能,最新的已经是DRI2了(已经在Fedora
11中默认启用)。然而,Mesa 的框架决定了它驱动开发的复杂性:每个显卡厂
商的3D驱动都有各自不同的应用后端,通过此调用 Mesa 的 API 来实现 3D 加
速。Intel、AMD 和 NVIDIA 这三大厂商的显卡都具备各自不同的应用后端,造成了开发和维护困难。
Mesa 7.5 引入了 Gallium3D 来解决上述问题,尽管目前为止 Gallium3D 还未完全成熟。
Gallium3D 提供一套统一的 API,这套 API 将标准的硬件特性(而非软件特性)
暴露出来(如shader units),也就是说,Gallium3D 直接与统一的硬件级特性打交道,而非充当一个纯软件层。
因此,这些 API 使得 OpenGL 1.x/2.x,OpenGL 3.x,OpenVG,GPGPU 架构甚至 Direct3D 的实现,都只需要通过一个单独的后端即可。而无须各个厂商自行开发各自不同的后端。
这不仅让开发和维护显示驱动带来了极大的方便,而且统一的 API 使得 Mesa 的灵活性和扩展性大大增强。透过Wine项目正在实现的开源Direct3D,未来Linux平台直接运行DirectX游戏将不是梦想!
未来,Mesa 7.6 还将进一步完善 Gallium3D 的支持,更有意思的是,此前在驱
动开发领域一直落后的 AMD,将率先使得 ATI R600/700系列显卡支持 Mesa 7.6,
并成为 Mesa 的一部分。
Gallium3D 体系结构
Gallium3D 是对 Mesa 设备驱动模型的重新设计,是一种解决图形加速问题的新
方法。
Gallium3D 的目的:
- make driver smaller and smaller
- model modern graphics hardware
- support multiple graphics API's
Gallium3D 基本模型如下所示:
 |
| Gallium3D model |
Gallium3D 带来的好处:
- Faster graphics
- Better and more stable drivers
- OpenGL 3
- Ability to properly accelerate other graphics APIs through the
same framework. Did someone say OpenVG?
Reference
- Mesa 7.5正式发布:引入Gallium3D构架
- Wikipedia 上的 Gallium3D 介绍
- Zack Rusin 在博客里谈 Gallium3D
|