LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1531|回复: 16

linuxtoy在讨论显卡驱动

[复制链接]
发表于 2009-12-20 22:04:17 | 显示全部楼层 |阅读模式
某人说:
开源驱动?老实讲,现在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-20 22:05:16 | 显示全部楼层
然后某人反驳:
不管是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-20 22:06:27 | 显示全部楼层
但是我的intel 945GM好象开了DRI,也才不到500fps,难道我设置有误?
回复 支持 反对

使用道具 举报

发表于 2009-12-20 22:57:09 | 显示全部楼层
2200FPS是DRI时代的,到了DRI2,现在也就是700FPS左右吧。
回复 支持 反对

使用道具 举报

发表于 2009-12-20 22:58:34 | 显示全部楼层
闭源驱动之所以需要编译内核模块就是要替换内核DRM模块,很正常。A卡N卡都是如此。

GEM说的很好听,但是实现的功能太少,因此内核仍然在发展TTM,TTM出现的时间很早阿。

为何说用了MESA的opengl库就是使用CPU加速呢?因为显卡主要是浮点运算使用cpu也很正常阿。

就从A卡linux驱动支援不完善,就说A卡本身缺陷太牵强了把。。而且开发3D应用程序,你是直接跟显卡打交道吗?OpenGL的存在,显卡驱动的存在是为何?
回复 支持 反对

使用道具 举报

发表于 2009-12-20 23:00:20 | 显示全部楼层
Post by jarryson;2057593
闭源驱动之所以需要编译内核模块就是要替换内核DRM模块,很正常。A卡N卡都是如此。

GEM说的很好听,但是实现的功能太少,因此内核仍然在发展TTM,TTM出现的时间很早阿。

为何说用了MESA的opengl库就是使用CPU加速呢?因为显卡主要是浮点运算使用cpu也很正常阿。

就从A卡linux驱动支援不完善,就说A卡本身缺陷太牵强了把。。而且开发3D应用程序,你是直接跟显卡打交道吗?OpenGL的存在,显卡驱动的存在是为何?

老大去toy批驳下他啊,偶不懂显卡,也不懂Xorg的机制以及nvidia是怎么hack X的,反驳不了他
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-20 23:09:05 | 显示全部楼层
Post by yafeng;2057592
2200FPS是DRI时代的,到了DRI2,现在也就是700FPS左右吧。


越搞越退步了,怎么回事?
回复 支持 反对

使用道具 举报

发表于 2009-12-20 23:37:23 | 显示全部楼层
这反驳的人完全没讲到点子上,而且反驳的内容和前一个人讲的都不一致……
回复 支持 反对

使用道具 举报

发表于 2009-12-21 00:23:13 | 显示全部楼层
楼上兄弟,我才疏学浅,让大家笑话了,发帖子的就是我,不要某人某人了,刺耳,不爽
回复 支持 反对

使用道具 举报

发表于 2009-12-21 01:22:22 | 显示全部楼层
Post by 难免有错;2057560
但是我的intel 945GM好象开了DRI,也才不到500fps,难道我设置有误?

不是说 intel 拥有同代显卡中的最低性能吗?!为什么我的 x1250 才 180 fps!!!
不公平!骗人!作弊!
...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表