linuxtoy在讨论显卡驱动
时间:2009-12-21
来源:互联网
开源驱动?老实讲,现在X的开源驱动压根就是个笑话,不管是xorg-video-intel/ati/radeonhd/openchrome /sis……中的哪一个,根本就不能提供硬件3D加速功能!我们在使用他们,同时开OpenGL 3D应用时,系统实际上是调用Mesa这个软件OpenGL库来实现的——也就是说,我们花了银子买的GPU根本没排上用场,都是CPU在算!现在知道为啥开3D时CPU使用那么高了吧?
再说闭源驱动,ATI的闭源驱动是实现了硬件加速机制,但ATI的闭源驱动之烂是众所周知的,除了ATI自己的硬件设计不过关(了解情况的都知道,ATI卡的编程容错度极低,各种3D编程到了后期出的硬件兼容问题几乎都出在ATI卡上,做3D的程序员都恨得牙痒痒)以外,主要就是因为 DRI/DRM自身机制就十分混乱。而nVIDIA的闭源驱动质量很高,可是那是怎么实现的呢?听起来就是个极大的讽刺——nVIDIA的闭源驱动完全绕过了DRI/DRM!实际上,它hack了X,替换掉了X底层的许多东西,自己实现了类似于DRI/DRM的功能。
这里面的根本原因在于,在GEM出现以前,只有nVIDIA的驱动拥有一个统一的显存管理器,如果没有显存管理器,你就不能分配离屏缓存,那么不仅没有FrameBufferObject、甚至SGI上个世纪就提出来的Pbuffer都不能用,硬件OpenGL和DirectX加速都只能是做梦;没有“统一”的显存管理器,2D和3D就无法协调,也就不可能有重定向直接渲染——开了Compiz,视频和OpenGL程序如GoogleEarth就得出毛病。
现在Intel搞出了GEM,一个基于Linux内核的显存管理器,从长期来讲,这是正确的,因为X应当做到硬件无关,把显卡、输入设备、PCI总线管理这些部分模块化,在内核提供这些功能的OS(如Linux)上不使用它们——现在的Linux为了避免和X在硬件管理上发生冲突,不得不搞了很多协调机制——只在那些没有这些功能的OS(如*BSD)上启用它们。但是老实讲,这对nVIDIA很不利,如果nVIDIA要把自己的闭源驱动里那个显存管理器移植进内核,就得把源代码按GPL公开,那么nVIDIA辛苦开发的跨平台驱动代码库(nVIDIA不同平台的驱动有90%是共享的代码)的很大一部分,就得公之于众了。
之前内核中已经有一个Tungsten Graphics(也就是Mesa的开发公司,现在归VMWare)提出的显存管理器TTM,但是没有驱动使用它,Intel搞了比较简陋的GEM以替代,据说是这么个办法:“实现一个驱动。当其他人实现了另一个驱动,又发现这里面有些代码应该是公共的,那么就将它移动到支撑库里并共享它。 ”不过这只是暂时的,因为一开始开发者觉得TTM太复杂,难用,后来逐渐摸清情况以后,确定TTM考虑周全,而GEM根子上只适合于Intel显卡,于是还是用了TTM,只不过使用了GEM到TTM的转换,也就是说接口用了GEM,但是实现用了TTM.
关于nVIDIA闭源驱动不支持GEM/KMS和DRI2的问题,老实讲,现阶段没什么意义。GEM的原因很简单,如上所述,nVIDIA自己实现了显存管理器,无非不是在内核里实现的,而把它放在内核,眼下除了KMS和基于它的Plymouth以外,看不出有什么价值。DRI2的话则根本没有意义,因为这个无非是增加了重定向直接渲染,而这个nVIDIA自己早就实现了,尽管手段不太正经(Hack了X)。所以,我劝诸位老老实实地用 nVIDIA的闭源驱动,别抱怨这抱怨那的,Intel和ATI的开源驱动和开放文档?那是耍你们好玩呢。
作者: 难免有错 发布时间: 2009-12-21
不管是xorg-video-intel/ati/radeonhd/openchrome /sis……中的哪一个,根本就不能提供硬件3D加速功能!我们在使用他们,同时开OpenGL 3D应用时,系统实际上是调用Mesa这个软件OpenGL库来实现的——也就是说,我们花了银子买的GPU根本没排上用场,都是CPU在算!现在知道为啥开3D时CPU使用那么高了吧?
这才是笑话,难道君不见,开不开DRI,3D性能根本就是两码事吗?intel的glxgears 945GM就跑到2200+ FPS,不开DRI貌似也就300FPS左右吧。就945GM那点小性能(玩游戏的都知道吧,比HD3200跟GF9200跟本不是一个档次,但 glxgears差距却不是很大(HD3200我装闭源驱动比较过,NV集成主板我没有,不过看别人不到2K的样子),虽然glxgears不是好 benchmark,但多少也有点依据吧)
再就是显存管理器,别告诉我只有Nvidia才有显存管理器,要不以前独显用啥?GEM/TTM只是调用模式从X调用显存管理器改为由内核调用,如果你觉得KMS只有Plymouth一个作用,那说明你作为N饭,已经完全无视Xorg的进步了,随便说一句framebuffer也能跑 Plymouth的,如果从内核改到X这么大动作全是为了一个平滑的Plymouth,那可能就是全世界的人脑子都被驴踢了。DRI2至少让Intel以及以后的别的显卡的开源驱动能用上重定向直接渲染了,真的没意义么?或许只对NV用户无意义?你让ATI卡用户也“位老老实实地用nVIDIA的闭源驱动”去?
没有“统一”的显存管理器,2D和3D就无法协调,也就不可能有重定向直接渲染——开了Compiz,视频和OpenGL程序如GoogleEarth就得出毛病。
这个前后没有因果关系的,懒得多费口舌。
作者: 难免有错 发布时间: 2009-12-21
作者: 难免有错 发布时间: 2009-12-21
作者: yafeng 发布时间: 2009-12-21
GEM说的很好听,但是实现的功能太少,因此内核仍然在发展TTM,TTM出现的时间很早阿。
为何说用了MESA的opengl库就是使用CPU加速呢?因为显卡主要是浮点运算使用cpu也很正常阿。
就从A卡linux驱动支援不完善,就说A卡本身缺陷太牵强了把。。而且开发3D应用程序,你是直接跟显卡打交道吗?OpenGL的存在,显卡驱动的存在是为何?
作者: jarryson 发布时间: 2009-12-21
作者: jarryson
闭源驱动之所以需要编译内核模块就是要替换内核DRM模块,很正常。A卡N卡都是如此。
GEM说的很好听,但是实现的功能太少,因此内核仍然在发展TTM,TTM出现的时间很早阿。 为何说用了MESA的opengl库就是使用CPU加速呢?因为显卡主要是浮点运算使用cpu也很正常阿。 就从A卡linux驱动支援不完善,就说A卡本身缺陷太牵强了把。。而且开发3D应用程序,你是直接跟显卡打交道吗?OpenGL的存在,显卡驱动的存在是为何? |
作者: yafeng 发布时间: 2009-12-21
作者: yafeng
2200FPS是DRI时代的,到了DRI2,现在也就是700FPS左右吧。
|
作者: 难免有错 发布时间: 2009-12-21
作者: nacre 发布时间: 2009-12-21
作者: yafeng 发布时间: 2009-12-21
作者: 难免有错
但是我的intel 945GM好象开了DRI,也才不到500fps,难道我设置有误?
|
不公平!骗人!作弊!
...
作者: s63030 发布时间: 2009-12-21
作者: nacre 发布时间: 2009-12-21
作者: yafeng
楼上兄弟,我才疏学浅,让大家笑话了,发帖子的就是我,不要某人某人了,刺耳,不爽
|
作者: nacre 发布时间: 2009-12-21
DRI2跟KMS一块说,我感觉是因为都是最近的新技术,而不是因为有了GEM/KMS才能实现DRI2,不知道我说的对不对。我没看过代码。
作者: yafeng 发布时间: 2009-12-21
这个帖子的原帖就是在 linuxsir,楼主居然从 toy 上转回来给大家看?
作者: poet 发布时间: 2009-12-21
作者: poet
好火星呵。
这个帖子的原帖就是在 linuxsir,楼主居然从 toy 上转回来给大家看? |
作者: 难免有错 发布时间: 2009-12-21
黑日白月 Commented @ 2009-12-20 4:25Reply to this comment @Kannada: 第一个自然段落完全抹杀了近两年 Mesa 开发者的努力…… 话说若是 Mesa 像你说的仅仅是软件实现 OpenGL 的话,那么应该是 GPU 无关的才对…… 再话说我用 Nvidia 闭源驱动,开 3D CPU 照样占有率高…… |
作者: socket9999 发布时间: 2009-12-21
作者: 难免有错 发布时间: 2009-12-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28