r   e   k   l   a   m   a
r   e   k   l   a   m   a

Direct3D niebawem będzie stałą częścią linuksowego desktopu

Strona główna AktualnościOPROGRAMOWANIE

W czasie gdy Microsoft wraz z producentami kart graficznych pracują nad nowym Direct3D 12, linuksowa społeczność nie zasypuje gruszek w popiele… też pracując nad Direct3D. Co prawda to praca nad implementacją w linuksowych bibliotekach graficznych wersji sprzed dziesięciu lat, ale jeśli się powiedzie, to granie w starsze windowsowe gry na Linuksie przestanie być jakimkolwiek problemem.

Austriacki programista Christoph Bumiller, znany z prac nad otwartym sterownikiem nouveau dla kart Nvidii, niebawem już dopnie swego. Zaprezentowany przez niego po raz pierwszy w zeszłym roku kod implementacji Direct3D 9 dla Mesy ma sporą szansę trafić do oficjalnych wydań tej biblioteki graficznej. Tak przynajmniej twierdzi Marek Olšák, jeden z współtwórców Gallium3D, biblioteki wykorzystywanej do tworzenia sterowników grafiki 3D, będącej jednym z kluczowych komponentów Mesy. Kod state trackera Gallium Nine (czyli mechanizmu tłumaczącego polecenia stanu i rysowania na ciąg obiektów i operacji zrozumiałych dla sprzętu) miał osiągnąć wymaganą jakość i działa bardzo stabilnie. Pojawiły się też łatki dla środowiska uruchomieniowego Wine, pozwalające mu na bezpośrednie korzystanie z tego interfejsu, z pominięciem etapu translacji na OpenGL. Za tym wszystkim przyszli użytkownicy – nie jest to już tylko akademicki eksperyment.

Wyniki są bowiem bardzo zachęcające. Jeszcze w styczniu tego roku David Heidelberger z iXit Group na łamach swojego bloga pisał, że na jego konfiguracji sprzętowej (zintegrowana grafika AMD 6550D) BioShock w rozdzielczości FullHD wyciąga z nowym state trackerem 35-45 FPS, podczas gdy bez niego wydajność spada do 23-35 FPS. Jest to poważna różnica – między grywalnością a klatkowaniem. Dzisiaj efekty są jeszcze lepsze – na poniższym wideo możecie zobaczyć, jak wygląda Call of Duty: Modern Warfare 3, uruchomiony na wine z Gallium Nine.

r   e   k   l   a   m   a

Już raz wcześniej próbowano wprowadzić Direct3D do biblioteki graficznej Mesa, uzasadniając to sporym narzutem przy uruchamianiu gier z Windows na Linuksie, wiążącym się z użyciem warstwy translacyjnej środowiska uruchomieniowego Wine, która odpowiada za tłumaczenie wywołań Direct3D na OpenGL. Natywna implementacja byłaby znacznie szybsza i przynajmniej w teorii, zapewniałaby znacznie większą kompatybilność z realnie wydanym kodem, nietestowanym przecież pod kątem zgodności z Wine.

Za cel rozpoczętych w 2010 roku prac wzięto wówczas Direct3D 10, z elementami wersji 11 – ale po trzech latach wszystko skończyło się klapą. Stworzony kod był niskiej jakości, praktycznie nikt z niego nie korzystał, a w dodatku sami deweloperzy Wine narzekali, że kłóci się on z multiplatformową naturą ich środowiska uruchomieniowego. Stworzony bowiem wówczas state tracker, działał bowiem wyłącznie na Linuksie i tylko w obecności sterowników grafiki Gallium3D. Oprócz problemów technicznych, programistów niepokoiły potencjalne problemy prawne. Prawnicy Microsoftu mogli pojawić się w każdej chwili, by ocalić API z Redmond przed heretycką implementacją za pomocą sądowego nakazu. W 2013 roku kod state trackera D3D1X został więc z biblioteki Mesa ostatecznie usunięty.

Rozwijany dziś z takim entuzjazmem Gallium Nine nie przynosi rozwiązania kwestii multiplatformowości. Działa wyłącznie na otwartych sterownikach nouveau i radeon, zgodnych z Gallium3D. Nie jest też odporny na ewentualny pozew Microsoftu. Społeczności jednak najwyraźniej to nie obchodzi – ludzie wreszcie mają Direct3D dla Linuksa, które po prostu działa.

Warto tutaj wspomnieć o jeszcze jednej kwestii. O ile sterownik radeon osiągnął bardzo wysoką jakość i wydajność (w dużym stopniu dzięki przychylnemu podejściu AMD do programistów Open Source), to w wypadku nouveau wciąż i wydajność i stabilność pozostawiają sporo do życzenia. Jest jednak nadzieja, że w bliskiej przyszłości jakość linuksowych otwartych sterowników i bibliotek graficznych znacznie się polepszy. Red Hat poinformował, że chce zatrudnić na pełen etat deweloperów, których zadaniem będzie praca z różnymi rodzajami sprzętu i upewnianie się, że działa on świetnie pod kontrolą Linuksa, a także ulepszanie ogólnego stanu całego stosu graficznego systemu.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.