今天,Mesa開源顯卡驅(qū)動(dòng)架構(gòu)迎來了也許是最為有趣、最為重要的一個(gè)Gallium3D狀態(tài)追蹤器(State Tracker)。通過它,微軟DirectX 10/11 API終于真正投入了linux的懷抱。Luca Barbieri宣布,他已經(jīng)在Gallium3D驅(qū)動(dòng)中增加了一個(gè)名為“d3d1x”的狀態(tài)追蹤器,籍此實(shí)現(xiàn)了對(duì)Direct3D 10/11 COM API的部署。雖然還只是一個(gè)很不成熟的初期版本,但已經(jīng)可以正常工作,能夠運(yùn)行一些DX10/11紋理演示程序。
這種做法自然不同于簡(jiǎn)單地將Direct3D調(diào)用翻譯成OpenGL指令,就像Wine現(xiàn)在做得那樣,而是在Gallium3D、TGSI中原生實(shí)現(xiàn)了Direct3D 10/11,讓顯卡驅(qū)動(dòng)和硬件得以直接對(duì)話。當(dāng)然,這一切都是免費(fèi)開源的!
更令人激動(dòng)的是,AMD fglrx、NVIDIA官方顯卡驅(qū)動(dòng)也都能得到支持,并且并不會(huì)很復(fù)雜。得益于Direct3D 10/11的精妙設(shè)計(jì)和與Gallium的密切關(guān)系,這種做法并不會(huì)導(dǎo)致明顯的延遲,維護(hù)也非常方便,用戶可以更簡(jiǎn)單地在官方驅(qū)動(dòng)、Gallium開源驅(qū)動(dòng)之間切換。
這也為非Windows平臺(tái)上的圖形編程提供了OpenGL之外的另一種選擇,特別是Linux和其他免費(fèi)開源系統(tǒng)上。優(yōu)秀的設(shè)計(jì)讓Direct3D 10/11 API要比OpenGL好得多,支持所需的代碼和開發(fā)時(shí)間也少得多,確切地說是大約26000行代碼。
至于Wine如何調(diào)用這個(gè)狀態(tài)追蹤器,目前還沒有公布任何DLL,不過Luca說這應(yīng)當(dāng)很容易實(shí)現(xiàn)。迄今為止,Wine仍然只能支持到DX10,實(shí)現(xiàn)DX11還很遙遠(yuǎn)。
VMware此前也曾開發(fā)了一個(gè)Direct3D狀態(tài)追蹤器,但只能支持到DX9、并不開源、僅面向Windows Gallium3D。
詳細(xì)見此:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=92617aeac109481258f0c3863d09c1b8903d438b
編譯/驅(qū)動(dòng)之家
新聞熱點(diǎn)
疑難解答
圖片精選