分页: 1 / 1

[分享]ATI工程师对官方闭源驱动出现问题的解释

发表于 : 2008-06-21 22:40
zsl1005
从phoronix上关于8.6闭源驱动中的讨论上看到的,发贴的作者不出意料应该是ati的linux驱动开发者一员吧。
http://www.phoronix.com/forums/showthre ... 915&page=7中mtippett的发言

Let's set the record slightly straighter about this bug.

Compiz is a compositor, it tells applications to render offscreen and then composites (blends, combines, whatever) into an image and presents it to the screen. The application is still told where it is on the screen, it is just that most 2D clients render to the offscreen pixmap.

The direct clients of the current driver (OpenGL and Video) render directly to the framebuffer (the screen). Compiz (as an OpenGL application) renders to the framebuffer. The "flickering" that people are talking about is actually two openGL clients rendering to the same part of the screen.

The COMPOSITE extension is an all or nothing option, the compositor assumes that all windows are compositable, and there is no way for the driver to say that the window shouldn't be composited. I am hoping that COMPOSITE can be extended to provide hints to the compositor that for whatever reason (overlay, etc), an application can't render offscreen and so the compositor should provide all the details needed for the rendering to occur properly. Currently we can't do that.

To solve this completely, *ALL* clients must support the COMPOSITE extension fully. The NVidia drivers support this currently, some xV clients support this as well. None of the DRI based 3D drivers support this. DRI2 is adding infrastructure to support COMPOSITE fully (through the so-called Redirected Direct Rendering), but that is at least 6-9 months away from the next XOrg release.

I am not providing a timeline as to when full COMPOSITE support will be added to the driver, but I wanted to allow people to understand what is happening rather than making unfounded comments.

Other compositors (like metacity) do not try to re-render the whole screen with OpenGL, and so the behaviour is a lot less noticable - but you can still see that the OpenGL applications are not given clipping information, so will overwrite windows that pass infront of the application.

Regards,

Matthew
Reply With Quote

挑重点粗略的翻译一下,水平有限,如有纰漏还请包含。

简单说就是因为compiz渲染的问题,compiz采取离屏渲染然后混合输出到屏幕的方式,需要composite支持,但是现在ati的闭源驱动并没有对composite完全支持,导致很多问题的出现。最典型的就是安装闭源驱动后,开compiz情况下,如果mplayer用xv模式播放会出现无视频输出或者闪屏的情况,这是因为mplayer直接在framebuffer(帧缓存,相当于屏幕)渲染,然后compiz也对framebuffer进行渲染,同一块区域两个程序自然会产生冲突,就产生了闪屏的情况。composite就是告诉每个opengl程序屏幕上哪些部分可以归你渲染,哪些你不能动。nv的显卡驱动没有这些问题是因为他对composite功能的完善支持,ati就不行了。最该死是这位老兄遗憾的说不能给出ati驱动对composite支持的开发进度,也就是我们对官方驱动暂时还是不要抱太大的希望了,可怜我的9550啊,还是将就着用这开源驱动吧。

发表于 : 2008-06-21 22:58
hcym
9550急啥子composite哦

没看到好几个边框按钮给搞成立体的

你那屏侧面能用不?

:D

发表于 : 2008-06-22 1:12
zsl1005
我试了几次闭源驱动,其他都还好,2d加速有点缓慢,这个倒还能忍,就是mplayer的xv问题没办法解决。给mplayer打了patch之后,虽然在gmplayer中能开xv了,但是cpu占用和x11一模一样,而且用smplayer前端后还是不能开xv。我现在都有点怀疑补丁会不会就把x11改了个xv的名字了吧?现在开源驱动没有任何问题,只是不喜欢像很多人那样开cube,还是喜欢desktop wall,传统点好,总觉得cube没什么用,刚开始用的时候有点新鲜感啊,啥齿轮啊,小鱼都弄上去了,过了段时间就觉得很无聊了,光花哨了,除了眩给别人看就没啥用了。

你说的屏侧面是啥意思啊?cube的侧面?我现在没用cube,之前用的时候也没什么问题啊,至少开源驱动是这样的。闭源的现在懒得折腾了,太麻烦。

PS,9550可是一代神卡啊,我就指望着amd给出个不错的驱动呢,至少把视频播放的问题给解决了。

发表于 : 2008-06-22 22:03
joshuahe
我的X600,用的还是开源驱动,感觉没什么大问题。也许是我水平有限把

发表于 : 2008-06-23 16:57
pollothana
开源驱动现在怎么样了?年初在Lupaworld上看了一篇评测说3D性能不如官方驱动,这一点我当时wine魔兽世界时很有感触。但是官方驱动很多东西不支持。不是说AMD最近公开了许多GPU文档吗?没有公开驱动源代码?看来和NV的官方驱动差距还是很大啊!