Direct3D niebawem będzie stałą częścią linuksowego desktopu Strona główna Aktualności20.08.2014 17:08 Udostępnij: O autorze Adam Golański @eimi 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. 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. Oprogramowanie Udostępnij: © dobreprogramy Zgłoś błąd w publikacji Zobacz także Linux Mint w końcu z porządnym skalowaniem rozdzielczości w Cinnamon 4 lut 2020 Piotr Urbaniak Oprogramowanie 104 Kali Linux 2020.1 wydany. Konto administratora bez praw roota w standardzie 29 sty 2020 Piotr Urbaniak Oprogramowanie Bezpieczeństwo 77 Linux kocha Windowsa: czasem tak, czasem nie. Akurat KDE nie ma z tym problemu 11 lut 2020 Piotr Urbaniak Oprogramowanie Biznes 183 Windows 10: Microsoft zepsuł, po czym naprawił wyszukiwarkę 6 lut 2020 Piotr Urbaniak Oprogramowanie 92
Udostępnij: O autorze Adam Golański @eimi 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. 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. Oprogramowanie Udostępnij: © dobreprogramy Zgłoś błąd w publikacji