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

Wsparcie dla Direct3D 9 trafiło do linuksowych sterowników graficznych na Gallium3D

Strona główna AktualnościOPROGRAMOWANIE

Wśród graczy użytkownicy Linuksa stanowią znikomy odsetek, ale jak pokazuje historia z klientem Steama, jest to odsetek mocno zaznaczający swoją obecność. Gdyby ich zabrakło, to Linux na desktopie byłby na pewno znacznie mniej interesujący, sterowniki graficzne gorsze, a z oprogramowania dla Windows dałoby się uruchomić co najwyżej kalkulator. Właśnie dla nich mamy dobrą i ciekawą wiadomość – dzięki staraniom deweloperów pracujących nad sterownikami nouveau, udało się przenieść na Linuksa kompletny interfejs programowania microsoftowego Direct3D.

Pierwsze próby przeniesienia Direct3D na Linuksa podjęli kilka lat temu deweloperzy biblioteki Gallium3D, rozwijanej przez VMware jako sposób na standardowe ujawnianie funkcji kart graficznych dla oprogramowania. Łączona jest ona dziś przede wszystkim z implementującą OpenGL-a biblioteką Mesa przez tzw. state tracker, mechanizm tłumaczący polecenia stanu i rysowania na ciąg obiektów i operacji zrozumiałych dla sprzętu.

Gallium3D wcale nie jest jednak ograniczone do OpenGL-a, biblioteka ta może pracować z dowolną infrastrukturą, podłączano ją nawet do OpenCL, by zapewnić wsparcie dla obliczeń równoległych. Gdy pojawiła się informacja o stworzeniu state trackera do Direct3D 10/11, w świecie FLOSS na krótko zapanowała ekscytacja pomieszana ze obawami. Z jednej strony otwierało to drogę do wydajnego uruchamiania gier wykorzystujących DirectX na Linuksie, z drugiej – pojawiły się pytania o licencje, reakcje Microsoftu, zgodność z systemami *BSD etc. Ostatecznie sprawa spełzła na niczym, gdyż deweloperzy Wine oznajmili, że nie są zainteresowani wdrażaniem rozwiązań działających tylko na linuksowych desktopach korzystających z opensource'owych sterowników dla Radeona i Nvidii. Po kilku miesiącach obsługa Direct3D z frontendu Gallium3D została wycofana.

Teraz jednak jest szansa na powrót do natywnego API Direct3D na Linuksie. Christoph Bumiller, jeden z autorów sterowników nouveau dla kart graficznych Nvidii, poinformował o utworzeniu state trackera dla Direct3D 9. Został on napisany w C (a nie jak poprzedni, w C++), i zdaniem autora, ma przed sobą większą przyszłość: Gallium3D lepiej współpracuje ze starszą wersją Direct3D niż nowszymi, biblioteka oprogramowania Windows korzystającego z Direct3D 9 też jest większa, a co najważniejsze – już teraz można nowy state tracker wykorzystywać do uruchamiania oprogramowania z „okienek”.

Jest to możliwe dzięki przygotowanej łatce do Wine, która pozwala temu środowisku uruchomieniowemu win32 na generowanie grafiki bezpośrednio przez state tracker Direct3D 9, dzięki czemu nie musi ona przechodzić przez warstwę translacji Direct3D do OpenGL, normalnie wykorzystywaną przez Wine. W efekcie udało się uzyskać znaczne zwiększenie wydajności gier z Windows – tytuły takie jak Civilization 5, Skyrim czy Starcraft 2 działają z dwukrotnie lepszym FPS-em, niż uruchamiane na standardowym Wine (i to przecież na mocno eksperymentalnej wersji).

Co najważniejsze, rozwiązanie to działa nie tylko na kartach Nvidii, ale też na Radeonach, wykorzystujących opensource'owe sterowniki na bazie Gallium3D. A co ze sterownikami Intela? Na razie nic – obecne ich wersje nie korzystają z Gallium. Jednak sterownik i965g, pisany niezależnie od Intela pod architekturę Sandy/Ivy Bridge, jest w coraz lepszym stanie i może w przyszłości dorównać standardowemu i965. Samemu Intelowi też coraz trudniej będzie wmawiać linuksowej społeczności, że nikt nie robi produkcyjnej jakości sterowników na Gallium, skoro dostępne są r300g czy r600g na Radeona, pod względem wydajności nie odbiegające od własnościowego fglrx, a jeśli chodzi o stabilność, to może i lepsze.

Krytycy oczywiście już przypominają, że Direct3D 9 to przestarzała technologia, której nowe gry już praktycznie nie wspierają. To oczywiście prawda, a wraz z wydaniem Xboksa One i zakończeniem cyklu życia Windows XP ta stara wersja biblioteki graficznej zostanie ostatecznie pogrzebana. Z drugiej strony do tej pory wydano tysiące gier, działających właśnie na Direct3D 9, a wśród nich są prawdziwe perełki, do których ludzie będą jeszcze wracali latami. Natywna obsługa API tej biblioteki, „wszyta” w Gallium 3D pozwoli grać w te wszystkie gry po minimalnych kosztach.

r   e   k   l   a   m   a
© 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.