[建筑]Mesa 是OpenGL规范的开源实现_让显卡的3D加速特性透过此得到.docVIP

[建筑]Mesa 是OpenGL规范的开源实现_让显卡的3D加速特性透过此得到.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[建筑]Mesa 是OpenGL规范的开源实现_让显卡的3D加速特性透过此得到

Gallium3D架构文档 Mesa 是OpenGL规范的开源实现,让显卡的3D加速特性透过此得到施展。从Mesa7.5开始Mesa引入了Gallium3D架构。 开发Mesa7.5之前的版本的驱动比较复杂,每个显卡厂商的3D驱动都有各自不同的应用后端,通过此调用Mesa的API来实现3D加速。Intel、AMD和NVIDIA这三大厂商的显卡都具备各自不同的应用后端,造成了开发和维护困难。 而Mesa 7.5最新引入的Gallium3D则是相当先进的一项技术,即使目前为止还未完全成熟。Callium3D提供一套统一的API,这套API将标准的硬件特性(而非软件特性)暴露出来(如shader units),也就是说,Callium3D直接与统一的硬件级特性打交道,而非充当一个纯软件层。 因此,这些API使得OpenGL 1.x/2.x,OpenGL 3.x,OpenVG,GPGPU架构甚至 Direct3D 的实现,都只需要通过一个单独的后端即可。而无须各个厂商自行开发各自不同的后端。 从DRI演进到Gallium3D DRI 在Gallium3D之前,Mesa为了实现硬件加速,其DRI体系结构如下: 图 Mesa DRI(非Gallium3D) 作者认为,这个模型有下面的缺点: Mesa和驱动之间的Leaky interface; 驱动体系庞大而且越来越复杂; API OS相关的东西也写在驱动里面了; Mesa DRI的模型导致DRI 驱动层过于庞大。而DRI驱动通常是硬件相关的,这就导致为了适用新的设备,开发工作较大。所以有人觉得有必要在DRI驱动这一层,提炼一些硬件无关的东西出来。于是DRI Driver初步被划分为三层: 图 DRI 驱动分层(非Gallium3D) 这个模型的特点是: 将API,OS,HW分开; 创建了新的接口; 分割驱动;(和第一条差不多了) 现在将DRI驱动分层的想法付诸实施,就得到了下面的模型: 图 DRI 驱动分层(Gallium3D) 这个模型带来了下述特点: 增加了State tracker, HW Driver, Winsys三个模块; TG-Gallium驱动栈 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. 通用的操作系统相关内容; Gallium3D的参考实现 Mesa提供了Gallium3D驱动的软件参考实现Softpipe: 图 Gallium3D驱动的参考实现Softpipe Mesa同时还提供了Gallium3D驱动的i915参考实现Softpipe: 图 Gallium3D驱动的参考实现i915 Gallium3D的使用 1. 各模块简介及功能 在目前最新的gallium版本中(Mesa-7.8.2),gallium目录下主要有以下子目录:auxiliary,drivers,include,state_trackers。 include是gallium提供给前端的接口,定义了一些gallium中重要的概念比如context,screen等以及各种st

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档