作者:
?網絡
日期:?
2009-07-01
?
|
http://www.linuxgraphics.cn/xwindow/some_concepts_of_xorg.html
?
今天看到一篇不錯的英文文章,解釋了xorg實現里的一些概念,也解決了我的一些疑惑。概括并解釋一下。 期待已久的DRI2被排除出了Xorg 7.4版本了,為什么呢? 是為了給GEM取代TTM讓路,而DRI2的實現目前依賴于TTM。 目前的Xserver渲染架構嚴重落后于時代,自Xfree時代遺留的問題在Xorg里也未得到足夠的重視,所以現在到了革新的時候。2D加速,3D加速等都依賴于一個好的內存和執行管理器,這也是最難的部分。目前的xorg驅動都實現了各自的存儲管理,提供DRI1接口,并負責modesetting。 GPU Memory manger位于內核中,并為用戶空間的程序提供一套操作API。由各個不同的顯卡硬件抽象出相同的操作,大家共享這部分代碼,剩下的與具體硬件相關的部分由各個顯卡分別實現。老的TTM管理器API復雜,而且不適合現代顯卡架構,于是Intel提出了GEM來取代之,目前GEM里只包含Intel自己的硬件相關部分,ATI驅動的一個分支也實現了對GEM的支持。GEM目前已經進入2.6.28版本的內核。 Kernel mode setting:內核也做一部分modesetting的工作,比如系統引導的時候顯示的信息,這些都是內核提前做了mode setting,而我們在進入X前,加載xorg驅動模塊的時候,xorg驅動再做一次modesetting,重置顯示設定,所以會有屏幕閃爍的情況出現。現在的kernel mode setting就是要把這部分功能移到內核里,完全由內核做mode setting。Fedora 9/10已經實現了這個功能,所以從啟動內核到進入X不會有閃爍,一切都很平滑,并且可以做很多eye candy的東西。目前KMS還未進入內核,最早也要等到2.6.29版本了。 DRI2是下一代的Direct Rendering Infrastructure,具有重定向(redirect) direct rendering功能。在當前,一個程序如果使用了 OpenGL 窗口,顯示內容是直接寫到framebuffer里的。這會跟使用了composite 功能的窗口管理器WM沖突,這是為什么Google Earth在compiz下支離破碎的原因。而通過DRI2, OpenGL 窗口內容先被重定向的offscreen memory里,然后由WM負責輸出,就不再會有沖突。而DRI2是基于老的TTM設計的,需要針對GEM作修改。 2D加速方面,EXA 將要取代老的XAA,但EXA也只是xorg server全面轉向 OpenGL 前的一個臨時解決方案。XAA不對大量常用2D操作作加速,并且對XRender的加速也支持不夠。Intel又提出了 UXA來取代EXA,當前UXA提供和EXA同樣的API,但是利用了新的GEM管理器。 Redhat的一個大牛不滿X架構的嚴重老化,另起爐灶設計一個全新的X server,代號Wayland,目前還不實用,拭目以待吧。 針對GEM修改后的DRI2預計會伴隨Xserver 1.6于09年初發布,同時還將釋出RandR 1.3。而Xorg 7.5預計09年四月發布,屆時將會伴隨Xserver 1.7。至于kernel mode setting,Ubuntu開發者將于下月召開的會議上討論是否用Fedora的Plymouth替換Usplash,如果在9.04版里引入 Plymouth,我們就能用上KMS。Mesa 7.2不支持GEM,git版本的似乎也不行,估計要到7.3/7.4才會支持。 Reference: |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
