+ -
当前位置:首页 → 问答吧 → linuxtoy在讨论显卡驱动

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

但是我的intel 945GM好象开了DRI,也才不到500fps,难道我设置有误?

作者: 难免有错   发布时间: 2009-12-21

2200FPS是DRI时代的,到了DRI2,现在也就是700FPS左右吧。

作者: yafeng   发布时间: 2009-12-21

闭源驱动之所以需要编译内核模块就是要替换内核DRM模块,很正常。A卡N卡都是如此。

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的存在,显卡驱动的存在是为何?
老大去toy批驳下他啊,偶不懂显卡,也不懂Xorg的机制以及nvidia是怎么hack X的,反驳不了他

作者: yafeng   发布时间: 2009-12-21

引用:
作者: yafeng
2200FPS是DRI时代的,到了DRI2,现在也就是700FPS左右吧。
越搞越退步了,怎么回事?

作者: 难免有错   发布时间: 2009-12-21

这反驳的人完全没讲到点子上,而且反驳的内容和前一个人讲的都不一致……

作者: nacre   发布时间: 2009-12-21

楼上兄弟,我才疏学浅,让大家笑话了,发帖子的就是我,不要某人某人了,刺耳,不爽

作者: yafeng   发布时间: 2009-12-21

引用:
作者: 难免有错
但是我的intel 945GM好象开了DRI,也才不到500fps,难道我设置有误?
不是说 intel 拥有同代显卡中的最低性能吗?!为什么我的 x1250 才 180 fps!!!
不公平!骗人!作弊!
...

作者: s63030   发布时间: 2009-12-21

关于第三点可以参考 http://hoegsberg.blogspot.com/2007/0...rendering.html 我觉得之前那个人讲的应该没错吧~

作者: nacre   发布时间: 2009-12-21

引用:
作者: yafeng
楼上兄弟,我才疏学浅,让大家笑话了,发帖子的就是我,不要某人某人了,刺耳,不爽
抱歉啊,不过我是对事不对人~

作者: nacre   发布时间: 2009-12-21

关于第三点,首先,ATI,INTEL都是有显存管理器的吧,OpenGL加速也是实现了的。Compiz跟OpenGL程序冲突的原因在DRI的限制(只能渲染一个程序),跟GEM/TTM/KMS没关系吧。
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

xorg server 1.8还要好几个月才能出来,希望到时可以改善桌面体验。

作者: 难免有错   发布时间: 2009-12-22