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

Strona głównaDirect3D niebawem będzie stałą częścią linuksowego desktopu
20.08.2014 17:08

W czasie gdy Microsoft wraz z producentami kart graficznychpracują nad nowym Direct3D 12, linuksowa społeczność nie zasypujegruszek w popiele… też pracując nad Direct3D. Co prawda to pracanad implementacją w linuksowych bibliotekach graficznych wersjisprzed dziesięciu lat, ale jeśli się powiedzie, to granie wstarsze windowsowe gry na Linuksie przestanie być jakimkolwiekproblemem.

bDUnXZeJ

Austriacki programista Christoph Bumiller, znany z prac nadotwartym sterownikiem nouveau dla kart Nvidii, niebawem już dopnieswego. Zaprezentowany przez niego po raz pierwszy w zeszłym roku kodimplementacji Direct3D 9 dla Mesy ma sporą szansę trafić dooficjalnych wydań tej biblioteki graficznej. Tak przynajmniejtwierdzi 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 statetrackera Gallium Nine (czylimechanizmu tłumaczącego polecenia stanu i rysowania na ciągobiektó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 nabezpośrednie korzystanie z tego interfejsu, z pominięciem etaputranslacji na OpenGL. Za tym wszystkim przyszli użytkownicy – niejest to już tylko akademicki eksperyment.

350111443674424777

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

Call of duty 6 Modern Warfare 3 Running on wine and gallium-nine ( native directx9 )

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

bDUnXZeL

Za cel rozpoczętych w 2010 roku prac wzięto wówczas Direct3D10, z elementami wersji 11 – ale po trzech latach wszystkoskończyło się klapą. Stworzony kod był niskiej jakości,praktycznie nikt z niego nie korzystał, a w dodatku sami deweloperzyWine narzekali, że kłóci się on z multiplatformową naturą ichśrodowiska uruchomieniowego. Stworzony bowiem wówczas *statetracker, działał bowiemwyłącznie na Linuksie i tylko w obecności sterowników grafikiGallium3D. Oprócz problemów technicznych, programistów niepokoiłypotencjalne 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 statetrackera *D3D1X został więc zbiblioteki Mesa ostatecznie usunięty.

Rozwijany dziś z takimentuzjazmem Gallium Nine nie przynosi rozwiązania kwestiimultiplatformowości. Działa wyłącznie na otwartych sterownikachnouveau i radeon, zgodnych z Gallium3D. Nie jest też odporny naewentualny pozew Microsoftu. Społeczności jednak najwyraźniej tonie obchodzi – ludzie wreszcie mają Direct3D dla Linuksa, którepo prostu działa.

Warto tutaj wspomnieć o jeszczejednej kwestii. O ile sterownik radeon osiągnął bardzo wysokąjakość i wydajność (w dużym stopniu dzięki przychylnemupodejściu AMD do programistów Open Source), to w wypadku nouveauwciąż 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 znaczniesię polepszy. Red Hat poinformował,że chce zatrudnić na pełen etat deweloperów, których zadaniembędzie praca z różnymi rodzajami sprzętu i upewnianiesię, że działa on świetnie pod kontrolą Linuksa, a takżeulepszanie ogólnego stanu całego stosu graficznego systemu.

Udostępnij:
bDUnXZfH