* копипаст
Direct2D ускорение
реальный выигрыш производительности
В конце ноября Bas Schouten
опубликовал в своем блоге заметку о том, что он добавил в код браузера Firefox еще один графический бекенд, для работы с Direct2D. Direct2D — это новый API, призванный заменить давным давно устаревший и выкинутый из состава DirectX DirectDraw. Он работает в Windows 7 и Windows Vista, если ваш драйвер видео карты соответствует хотябы стандарту WDDM 1.0.
Замеры скорости отрисовки популярных страниц показывают, что автор старался не зря :)
В той же записи есть ссылка на
скомпилированный вариант [zip] Firefox с нужными патчами, и я решил посмотреть, так ли велик выигрыш от использования Direct2D.
Во первых, хочется рассказать
про работу этой SVG-шки. Это что-то! Если в версии без Direct2D, как и в других браузерах, стоить увеличить хоть одну фотографию хотябы на пол экрана, все начинает тормозить, то в версии с Direct2D, даже если все 4 изображения растянуть на весь экран (1920×1200), и одно из них двигать, то загрузка процессора остается минимальной, а передвижение очень плавным.
Еще я решил погонять тест производительности
Peacekeeper, который тоже показывает впечатляющий прирост производительности:
Кстати, Google Chrome в этом же тесте оказался быстрее всего на 30%.
Что касается реальных сайтов, наконец-то хоть в одном браузере стало возможно работать с масштабом страницы != 100% и фиксированными фоновыми картинками :) Например, сайт
wii.ign.com, который
назывался как пример тяжелого сайта, отлично скролится при любом масштабе, в отличии от версии без аппаратного ускорения, где он просто умирает. ( к сожалению, сейчас с этой страницы пропал фон и она перстала тормозить везде :)
В общем, ждем от Mozilla включения кода в финальную версию Firefox 3.7, тем более Microsoft уже делало заявление, что в девятой версии Internet Explorer будет аппаратное ускорение через Direct2D, а в Опере, как известно, аппаратное ускорение будет в движке Presto 2.4.
habrahabr.ru/blogs/firefox/77903
* Для не-windows ОС предполагается
Bug 546517 - OpenGL 2 Layers Backend