Opera odkrywa na nowo kartę graficzną
Opera: WebGL i akceleracja sprzętowa pod każdym systemem operacyjnym
Opera eksperymentuje z wykorzystaniem karty graficznej do renderowania witryn już od lat. Konkurencja jednak dogoniła Norwegów, i to Firefox i Internet Explorer wprowadzą tę technikę na rynek. Ale Opera nie śpi.
|
Opera zaprezentowała rozwojową wersję przeglądarki, która renderowała trójwymiarowe obiekty canvas poprzez WebGL dla Windows już ponad trzy lata temu. Co więcej, jak w 2009 roku ruszyły prace nad standaryzacją WebGL, Opera była aktywnym głosem w tej sprawie, a także rozpoczęła poważniejsze prace nad jego implementacją. Efekty tych prac możemy sprawdzić od dziś. Nowa wersja rozwojowa przeglądarki Opera pozwala na akcelerację grafiki 3D w elementach canvas w JavaScript. API opiera się na OpenGL ES 2.0, co oznacza, że WebGL zadziała na wielu różnych zgodnych urządzeniach, w tym komputerach, komórkach czy telewizorach. Internet Explorer 9 i Firefox 4 rysują wszystko przy pomocy akceleracji karty graficznej, a nie tylko JavaScript. Tak jak Opera w omawianej wersji. Jednak ich mechanizmy działają tylko na Windows Vista (lub nowszym). Akceleracja Opery zadziała na każdym systemie, zakładając, że ów system ma odpowiednio napisane sterowniki, wykorzystujące potencjał sprzętu. Innymi słowy, Windows XP, Ubuntu, Mac OS X czy urządzenia zgodne z OpenGL ES 2 też się liczą. Wczesną wersję rozwojową (nieukończoną, wciąż zawierającą błędy znajdziecie tutaj. WebGL ani akceleracja sprzętowa nie trafią jednak do wersji 11.10. I nie wiadomo do której w ogóle trafią. |


Kup Najtaniej
Początkowo chceli zrobić wersję dla XP ale w końcu z tego pomysłu się wycofali ponieważ natrafili na brak odpowiedniego API pod XP. Odpowiednie funkcje pojawiły się dopiero w Vista i Windows 7 (WDDM 2.0)
ISSUE 52689 - Disable accelerated 2d canvas on WinXP
http://code.google.com/p/chromium/issues/detail?id=52689
Jeżeli ktoś jeszcze używa XP to niedługo popularne przeglądarki mogą nakłonić go do zmiany systemu
Akceleracja na Windows XP, MacOS X jest wlaczona od dawna, a problemy z niektorymi sterownikami na Linuksa zmusily ja do wylaczenia akceleracji dla niektorych sterownikow na Linuksie. Na najpopularnijeszych (nvidia, ati_glx) dziala...
"W jaki sposób? I jak zwykle, czyli jak kiedy?"
Nie zamierzam teraz przeszukiwać starych artykułów i przypominać Panu, gdzie popełniał Pan błędy lub najzwyczajniej kłamał. Już wiele razy to robiłem a Pan większość uwag ignorował.
Przypomnę tylko, że już wcześniej pisał Pan bzdury w tematach dotyczących wykorzystania akceleracji 3D w przeglądarkach internetowych.
Pod tym newsem już inni czytelnicy wytknęli Panu błędy.
Od siebie dodam, że generalnie wszystkie przeglądarki, które wspierają WebGL wykorzystują akcelerację OpenGL ES na wszystkich wspieranych platformach.
Ale żeby to wiedzieć, wypadałoby najpierw wiedzieć czym jest WebGL.
A jest to API dla JavaScript, będące w praktyce bindingiem na OpenGL ES 2.0. Jest to rozszerzenie elementu HTML Canvas. Można powiedzieć, że umożliwia korzystanie z OpenGL ES na stronie HTML poprzez element Canvas.
Co prawda Google pracuje nad projektem ANGLE będącym warstwą tłumaczącą wywołania API OpenGL ES 2.0 (oraz EGL 1.4) na wywołania Direct3D 9. ANGLE może być wykorzystany przez przeglądarki w taki sposób, że pozwoli ich implementacjom WebGL korzystać z Direct3D zamiast OpenGL. Ale to już inna historia.
Jeśli zaś chodzi o wykorzystanie akceleracji 3D przez Firefoksa to tak naprawdę zależy ona od użytego backendu Cairo. Wiadomo, że nowy wykorzystujący m.in. Direct2D oraz DirectWrite (a nawet Direct3D, chociaż w małym stopniu) zamiast GDI(+) będzie działał tylko na Windows Vista i wyższych. Ale istnieje masa innych backednów, m. in. X Window System, Quartz, Win32, OpenGL, XCB, czy DirectFB. Niektóre z nich są nadal w fazie eksperymentalnej.
Pierwszy to akceleracja treści zapewniająca przyspieszenie renderowania dla właściwej treści strony, takiej jak tekst, obrazki, elementy CSS, itd. Dotyczy to również elementu canvas (w zakresie 2D). To tutaj właśnie używa się Direct2D/DirectWrite pod Windows Vista i wyższymi.
Drugi poziom to akceleracja kompozycji. Ma ona na celu przyspieszenie składania treści (warstw) o których mowa wyżej do wyświetlania w oknie. Potencjalnie może być wykorzystana do stosowania efektów. Przykładowo może być użyta do przyspieszenia obracania, przenikania czy zanikania elementów. Ten typ akceleracji jest jeszcze w fazie eksperymentalnej.
Akceleracja treści:
Linux: XRender
Windows XP: brak
Windows Vista/7: Direct2D
Mac OS X: Quartz, być może QuartzGL
Akceleracja kompozycji:
Linux: OpenGL
Windows: Direct3D
Mac OS X: OpenGL
Podsumowując: Pan Gajewski nadal myli sprzętową akcelerację z WebGL. WebGL to zbliżone do OpenGL API dla Javascript do rysowania obiektów 3D w elemencie . WebGL niejako samo z siebie wykorzystuje sprzętową akcelerację ponieważ wykorzystuje OpenGL (lub ewentualnie Direct3D 9 na Windows poprzez ANGLE gdy sterowniki OpenGL nie są dostępne).
BTW Wyprostowałby się Pan jak rozmawia z czytelnikami a nie tak "rozwalony" na ławeczce siedzi.
Oczywiście chodziło o:
"WebGL to zbliżone do OpenGL API dla Javascript do rysowania obiektów 3D w elemencie canvas."
System komentarzy CHIPa zjadł znaki mniejszości i większości wraz z treścią pomiędzy nimi.
O wykorzystaniu akceleracji 3D w przeglądarkach internetowych przy innych okazjach raczej nie pisałem. Więc ciekawi mnie cholernie, przy jakiej okazji miałem sposobność pisać bzdury, skoro tematu nie ruszałem. Ale rzucamy błotem dalej, może się coś przyklei. Nieprawdaż?
Inny Czytelnicy wytknęli mi błędy.... czytam, czytam i odnaleźć nie mogę. Fakt, że od beta 5, jak podaje Wikipedia, Firefox koncentruje się na obsłudze GPU przede wszystkim pod Vista+ koliduje z tym, co widnieje na stronie Mozilli, jest dość ciekawy. Nie zmienia to jednak faktu, że na chwilę obecną, obsługa tych metod ogranicza się do najnowszych Windows.
Dalszy wykład jak najbardziej słuszny. Tylko w jaki sposób obala to to, co widnieje w newsie?
"Czyli, innymi słowy, "nie jestem w stanie wskazać miejsc, w których Pan kłamał, ale nieraz tak było, sam widziałem i zwracałem uwagę!". Zdaję sobie sprawę, że metoda "rzucajmy odchodami w dany cel, a coś się w końcu przyklei" jest całkiem skuteczna, ale nie zamierzam się czymś takim przejmować."
Ależ przecież podałem - tematy związane z wykorzystaniem akceleracji przez przeglądarki internetowe.
Do tego dodam te związane z WebGL i testami przeglądarek.
Oczywiście, to tylko przykład.
"O wykorzystaniu akceleracji 3D w przeglądarkach internetowych przy innych okazjach raczej nie pisałem. Więc ciekawi mnie cholernie, przy jakiej okazji miałem sposobność pisać bzdury, skoro tematu nie ruszałem. Ale rzucamy błotem dalej, może się coś przyklei. Nieprawdaż?"
Pan naprawdę ma krótką pamięć.
Newsy "MIX10: Microsoft rozwija HTML5 i prezentuje pierwszą próbkę przeglądarki Internet Explorer 9", "Firefox 3.7 z lepszą obsługą wtyczek i kart graficznych", "Google ignoruje Direct2D, stawia na WebGL" pisał pewnie inny Maciej Gajewski.
Proszę również zwrócić uwagę na dyskusję pod newsem "Firefox i Internet Explorer najwydajniejsze w HTML5?".
Ta, jasne, bo XRender wcale nie jest zaprojektowany do wykorzystania akceleracji 3D.
Fakt, że Wikipedia jest dla Pana tutaj bardziej wiarygodnym źródłem informacji niż strona Mozilli pozostawię bez komentarza.
"Dalszy wykład jak najbardziej słuszny. Tylko w jaki sposób obala to to, co widnieje w newsie?"
Chociażby "Internet Explorer 9 i Firefox 4 rysują wszystko przy pomocy akceleracji karty graficznej, a nie tylko JavaScript. Tak jak Opera w omawianej wersji. Jednak ich mechanizmy działają tylko na Windows Vista (lub nowszym)."
Jeśli chodzi o WebGL to Internet Explorer 9 i Firefox 4 jak najbardziej wykorzystują tutaj OpenGL na Windows XP czy Linux (w przypadku Firefoksa).
Firefox pod Linuksem do akceleracji treści wykorzystuje XRender (a właściwie Cairo z backendem XRender).
Dalsza dyskusja chyba nie ma sensu. Nawet jeśli teraz przyzna mi Pan rację, to na drugi dzień już zapomni Pan o tej dyskusji a być może nawet o tym, że jest Pan autorem tego newsa.
Nie mam też zamiaru przekopywać się przez archiwum udowadniając mnogość popełnionych przez Pana błędów czy na okrągło wytykać Panu nowych błędów. To zajmuje za dużo mojego wolnego czasu a ja nic na tym nie zyskuje.
Newsy na ten temat, które podajesz, owszem.
"MIX10: Microsoft rozwija HTML5 i prezentuje pierwszą próbkę przeglądarki Internet Explorer 9" - w komentarzach nie widzę, by ktoś mi zwrócił uwagę na cokolwiek. Ty również nie raczyłeś.
"Firefox 3.7 z lepszą obsługą wtyczek i kart graficznych" - w komentarzach nie widzę, by ktoś mi zwrócił uwagę na cokolwiek. Ty również nie raczyłeś.
"Google ignoruje Direct2D, stawia na WebGL" - tu ktoś próbował (Ty?). Niestety, nie był w stanie podać jakiejkolwiek krytyki.
Więc, raz jeszcze: zdaję sobie sprawę, że rzucanie błotem, licząc aż coś się przyklei, jest skuteczne. Jednak nie wiem czym sobie na to zasłużyłem.
Xrender jak najbardziej działał do bety 5 pod Linuksem. Pod Windows Vista+ działało Direct2D, pod Mac OS Quartz (software'owo). Od bety 5 Firefox 4 ma odłączoną obsługę Xrender i Quartz (ten drugi nawet wcześniej). Więc jasne, że Wikipedia nie jest tu decydującym źródłem. Sam Firefox 4 jest. Oczywiście, nie mówię tu o nieoficjalnych buildach, kompilacjach nightly, i tak dalej.
Internet Explorer 9 nie działa na Windows XP.
Zarzucasz mi, że nie mam pojęcia o temacie. Ty pewne pojęcie masz, nie da się ukryć. Jednak zamiast je wykorzystać, doczytać, nawiązać współpracę, wolisz po prostu anonimowo bluzgać w Internecie. Szkoda, wielka szkoda.