Strona główna
>
Newsy
>
Google Chrome 7: pełna akceleracja sprzętowa grafiki przez OpenGL
"Google Chrome 7: pełna akceleracja sprzętowa grafiki przez OpenGL". |
2010-08-29 |
Zespół pracujący nad Internet Explorerem 9 nie ma łatwego życia. Powolny cykl rozwojowy przeglądarki Microsoftu sprawia, że wprowadzane w niej innowacje zostają podchwycone przez konkurencję i umieszczone w browserach, których finalne wersje pojawią się na długo przed finalną wersją IE9. Taki los spotkał m.in. sprzętową akcelerację grafiki 2D. Wpierw jej wprowadzenie zapowiedziała Mozilla, a teraz Google poinformowało o całkowitej przebudowie systemu graficznego Chromium.
Na łamach oficjalnego bloga projektu Chromium, inżynierowie z Mountain View potwierdzili, że siódma wersja Google Chrome będzie korzystała z procesora graficznego, aby przyspieszyć ?cały model rysowania, w tym wiele typowych operacji 2D, jak kompozycja (compositing) i skalowanie obrazów?.
U podstaw sprzętowej akceleracji grafiki w Chromium leży nowa architektura programu. W liście aktywnych procesów przeglądarki można znaleźć teraz coś, co nazwano ?GPU process?. Przejmuje on polecenia dla podsystemu grafiki od rendera i przekierowuje je do OpenGL, lub poprzez bibliotekę translacyjną ANGLE, do DirectX na Windows. Proces GPU został zaprojektowany tak, aby umożliwić dostęp do systemowego interfejsu 3D zarówno z poziomu sandboksu, w którym normalnie działa renderer, jak i jeszcze bardziej restrykcyjnego ?więzienia?, w którym działa platforma uruchomieniowa kodu binarnego Native Client.
Dzięki takiemu podejściu możliwe staje się rozdzielenie procesu renderowania strony na wiele niezależnych warstw. Oddzielnie mogą być renderowane warstwy obrazów, CSS, wideo, canvas, czy grafiki 3D (WebGL), korzystając z wielowątkowości oferowanej przez nowoczesne procesory graficzne. Przyjmowane przez proces GPU polecenia zostały przygotowane tak, aby jak najbardziej pasować do API OpenGL-a ES 2.0. Całość jest komponowana również na poziomie GPU, ponieważ wykorzystanie do tego głównego procesora tylko spowolniłoby cały proces.
Są trzy główne zalety takiego podejścia. Oferuje ono bezpieczeństwo, dzięki temu że praktycznie cała logika procesu renderowania pozostaje zamknięta w sandboksie renderera, solidność, ponieważ awarie procesu GPU nie zawieszają przeglądarki oraz uniformizację ? wybór Open GL 2.0 ES pozwoli na utrzymanie jednolitej bazy kodu dla wszystkich platform, na których przeglądarka Chrome działa.
Więcej o rozwiązaniu Google'a można poczytać w artykule na stronie sites.google.com/a/chromium.org/dev/developers/design-documents/gpu-accelerated-compositing-in-chrome. Aby włączyć w najnowszych deweloperskich wersjach programu sprzętową akcelerację dla kompozycji, należy uruchomić przeglądarkę z flagą z --enable-accelerated-compositing.
Efekt jest znakomity ? uruchomione w ten sposób Chromium z łatwością radzi sobie z testami przygotowanymi przez Microsoft, które miały demonstrować zalety sprzętowej akceleracji w IE9. Biorąc pod uwagę tempo, w jakim rozwija się i jest wydawana przeglądarka Google'a, można się spodziewać, że jeszcze jesienią obsługa GPU będzie domyślnie włączona w wersji stabilnej Chrome.
źródło: blog.chromium.org