Использовать ускорение 2d в приложениях. Разработчик Google развеивает мифы о «полном аппаратном ускорении» в Ice Cream Sandwich. Используйте ускорение GPU

Новости 09.04.2019
Новости

Наличие мощного «железа» не всегда означают быструю работу устройства. В некоторых случаях оптимизация оставляет желать лучшего и пользователь может попробовать самостоятельно ускорить работу своего смартфона или планшета. Есть несколько методов, которые могут помощь в осуществлении поставленной задачи. Об этих методах — в нашей статье.

Удалите все ненужные приложения

Существуют приложения, которые могут задействовать лишние ресурсы. Если эти приложения не используются, стоит их удалить.

Речь в том числе идет о приложениях, которые установлены на смартфоне при покупке. Некоторые из них удалить нельзя, они встроены в прошивку, другие же, если они вам не нужны, лучше удалить.

Не используйте живые обои

Живые обои, как ни странно, требуют дополнительных ресурсов. Конечно, они красиво выглядят и радуют глаз, однако если вам нужна скорость работы, с ними все же стоит попрощаться.

Не используйте сторонние лаунчеры

Не используйте дополнительные виджеты

Примерно то же самое можно сказать и про виджеты, которые в изобилии можно разместить на рабочем столе. Постарайтесь оставить только те виджеты, без которых вы действительно не можете обойтись, например, часы или прогноз погоды. Другие виджеты стоит убрать с рабочего стола, поскольку они пусть и немного, но все же «съедают» память.

Отключите ненужные приложения

Есть приложения, которые работают в фоновом режиме, но необходимость в них редкая. Речь в данном случае идет о сторонних приложениях, а не о системных, отключать которые не рекомендуется, поскольку это может привести к сбою в системе.

Отключить приложение просто. Зайдите в настройки, найдите раздел с приложениями, выберите нужное приложения, зайдите в него и нажмите «Остановить».

Отключите GPS и геолокацию

Настройки геолокации очень важны, однако их можно использовать только в тот момент, когда в этом есть необходимость.

Это, к слову, поможет в том числе увеличить автономность устройства.

Выполните очистку с помощью сторонних приложений

Не забывайте удалять кэш и прочие временные данные, которые также могут повлиять на скорость работы системы. Как правило, это сторонние приложения вроде Clean Master, которые позволяют удалять временные файлы, но на некоторых устройствах они уже вшиты в прошивку.

Используйте ускорение GPU

Зайдите в меню, найдите раздел «Для разработчиков» или «Параметры разработчиков».

Если у себя вы не наблюдаете такой раздел, его нужно включить. Найдите раздел «О телефоне», «О планшете» или «Об устройстве», зайдите в него и 7 раз нажмите по пункту «Номер сборки» (иногда нажимать нужно чуть больше раз, система скажет вам об этом).

В параметрах разработчика включите принудительную обработку GPU (аппаратное ускорение 2D в приложениях).

Заодно можете отключить анимацию. Найдите пункты вроде «Масштаб анимации окна».

Отключите анимацию. Только будьте осторожны при редактировании параметров, некоторые из них могут привести к проблемам в работе системы.

Обновите прошивку

Иногда проблемы с работоспособностью связаны с самой прошивкой, которые решаются обновлением этой самой прошивки. Поэтому (и не только) так важно вовремя обновлять ПО своего смартфона или планшета.

У вас есть идеи, отличные от наших? Будем рады, если вы сообщите нам о них с помощью комментариев к статье.

Доброе утро, Хабр!

Обнаружил на xda-developers.com интересную для себя новость, которая является пересказом свежего поста «Разрушаем мифы о полном аппаратном ускорении в ICS» из Google+ профиля разработчика Google Дианы Hackborn. Взял на себя смелость сделать краткий перевод-пересказ по мотивам этих двух публикаций, который и привожу ниже под хабракатом. Первый вариант этой публикации уже был опубликован мной этой ночью в блоге R2-D2: Android с пользой , но тема показалась мне достойной освещения и на Хабрахабре (я надеюсь тут не нужно поднимать повторно обсуждение того факта, что раздел «Ссылки» после осеннего хабраобновления практически и фактически умер).

Разработчик из Google Диана Hackborn на своей странице в Google+ поделилась информацией касательно аппаратного ускорения интерфейса в Android 4.0 Ice Cream Sandwich. Ажиотаж который поднялся вокруг этой функции возник не просто так - слишком много упреков звучало в адрес плавности отрисовки 2D-элементов в Android в сравнении с другими мобильными ОС.

Безусловно, аппаратное ускорение в Android это позитивная вещь, но есть много неправильных представлений о том что на самом деле представляет из себя эта возможность. Во-первых, Android уже много лет поддерживает аппаратное ускорение для задач отрисовки множества окон (речь идет о композиции окон - панель задач, оповещения, панель меню, появление и скрытие элементов интерфейса). Это означает что вся анимация элементов интерфейса в Android всегда использовала аппаратное ускорение.

В отличии от отрисовки композиции окон, рендеринг изображения внутри окна традиционно осуществлялся при помощи процессора в Android 2.X и ниже. Однако, в Android 3.0 Honeycomb, эти функции могут быть переложены на графический ускоритель, но только в том случае если в манифесте приложения это прямо указано опцией android:hardwareAccelerated=”true”. Единственное отличие Android 4.0 ICS в том, что при разработке, используя последнее доступное API level 14 (и во всех будущих), эта опция для приложений включена «по умолчанию».
Казалось бы, теперь у нас есть возможность «заставить» работать все приложения в Android 4.0 ICS с включенным аппаратным ускорениям независимо от его манифеста, разве это не прекрасно? На самом деле это не совсем так. В случае, например, с видеоускорителем PowerVR драйвера, используемые в Nexus S и даже в Galaxy Nexus, «отъедают» по 8Мб оперативной памяти за каждый процесс который использует аппаратное ускорение. Вроде бы не так много? Не тут-то было, ведь такое активное потребление оперативной памяти сразу множеством процессов значительно повышает потребление памяти в целом, что сразу сказывается на скорости мультизадачности - вплоть до значительного ее замедления. В итоге, команда разработчиков Google сейчас тратит значительные усилия на тонкую настройку того, какие именно части пользовательского интерфейса действительно нуждаются в аппаратном ускорении на Nexus S.

Что же в итоге? По сравнению с Android 2.X, Ice Cream Sandwich имеет больше возможностей, в том числе благодаря более широкому использованию аппаратного ускорения. Тем не менее, кроме наличия опции включенного ускорения «по умолчанию», использование аппаратного ускорения в ICS ничуть не более «полное», чем это было ранее. И, кроме всего прочего, не стоит забывать что аппаратное ускорение это не магия и не чудо, как считают многие, но его присутствие это конечно плюс, а не минус.

По всей видимости, очень многие пользователи современных компьютеров слышали о таком понятии, как «аппаратное ускорение». Вот только далеко не все знают, что это такое и зачем нужно. Еще меньше тех, кто понимает, как включить аппаратное ускорение на Windows 7, например. Предлагаемые далее решения позволят использовать настройки не только в седьмой версии Windows, но и в любых других.

Для чего нужно аппаратное ускорение (Windows 7)

Начнем с того, что некоторые пользователи ошибочно полагают, что применение аппаратного ускорения относится исключительно к видеокартам с целью задействования возможностей графического процессора, что позволяет снизить нагрузку на центральный. Отчасти так оно и есть.

Если посмотреть на этот вопрос несколько шире, можно с уверенностью утверждать, что все это применимо и к видео-, и к аудиосистеме компьютера (например, платформа DirectX включает поддержку многоканального звука). В любом случае аппаратное ускорение представляет собой снижение нагрузки на ЦП и ОЗУ за счет того, что ее частично (или полностью) берут на себя другие «железные» компоненты.

Вот только многие не понимают, насколько целесообразно его использовать. Посудите сами, ведь при перераспределенной нагрузке в сторону повышения для графического или звукового чипов они со временем могут достаточно сильно износиться и даже выйти из строя. Поэтому в вопросе того, как включить аппаратное ускорение на Windows 7, не стоит вдаваться в крайности. Нужно использовать сбалансированные параметры с разумным задействованием всех устройств и равномерным распределением нагрузки между ними. В случае установки пиковых значений гарантий долговечности какого-то компонента никто дать не может.

Как включить аппаратное ускорение на Windows 7

Итак, начнем с самого простого. Первым делом разберемся с графикой. Включить аппаратное ускорение (Windows 7 берем в качестве примера, хотя данное решение можно применять во всех других версиях) можно через настройки графического чипа. Но сначала нужно проверить, требуется ли пользовательское вмешательство.

Через меню ПКМ в свободной зоне «Рабочего стола» переходим к разрешению экрана и используем гиперссылку дополнительных параметров. В появившемся окне свойств смотрим на вкладку диагностики. Вверху имеется кнопка изменения параметров. Если она неактивна, значит, аппаратное ускорение уже включено.

В противном случае нажимаем на нее, после чего происходит перенаправление к настройкам графического адаптера. Здесь имеется специальный ползунок, передвигая который вправо-влево, можно изменять уровень устанавливаемых параметров. Самое крайнее правое положение соответствует максимально задействованному ускорению.

Примечание: в Windows 10 раздел диагностики в настройках графического адаптера отсутствует, а аппаратное ускорение (собственно, как и седьмой модификации) включено по умолчанию.

Вопросы, касающиеся DirectX

Теперь несколько слов о том, как включить аппаратное ускорение DirectX. Как и в случае с общими настройками системы, оно и для видео-, и для звукового адаптера включено изначально, так что менять что-то не нужно. Но удостовериться в том, что оно активно, не помешает.

Для просмотра и диагностики используется диалог DirectX, вызываемый командой dxdiag, вводимой в консоли «Выполнить». Здесь на вкладке монитора необходимо проверить параметры DirectDraw, Direct3D и настройки текстур AGP (иногда в список может быть включен параметр ffdshow). По умолчанию напротив каждой строки будет стоять значение «Вкл.», а в окошке ниже будет присутствовать сообщение, что неполадок не найдено. Если по каким-то причинам они обнаружились, переходим к их устранению.

Возможные причины неполадок

Чаще всего невозможность включения аппаратного ускорения на уровне системы или в настройках платформы DirectX связана с некорректно установленными, отсутствующими или устаревшими драйверами вышеуказанных устройств.

Проверяем их в «Диспетчере задач» (devmgmt.msc). Если напротив звуковой или видеокарты стоит желтый треугольник с восклицательным знаком (или устройство не определено), это явный признак того, что с драйвером имеются проблемы. Его нужно переустановить, используя для этого собственную базу данных системы, оригинальный диск или загруженные дистрибутивы из интернета.

Но бывает и так, что с устройствами все в порядке. Тем не менее через меню ПКМ выбираем строку свойств, а новом окне на вкладке драйвера смотрим на дату выпуска. Если драйвер на текущую дату сильно устарел, нажимаем кнопку обновления и дожидаемся завершения процесса (заметьте, что Windows обновлять драйвера самостоятельно не умеет).

Однако намного лучше использовать специальные утилиты поиска и обновления вроде Driver Booster. Во-первых, обращение будет производиться прямо на сайт производителя оборудования; во-вторых, будет инсталлирован именно тот драйвер, который максимально подходит для работы устройства; в-третьих, он будет установлен в систему максимально корректно. Участие пользователя минимально.

Заключение

Вот, собственно, и все, что касается того, как включить аппаратное ускорение на Windows 7. Стоит это делать или нет - сугубо личное дело. Но если подходить к вопросу разумно, лучше не использовать аппаратное ускорение, что называется, на полную. В этом случае срок службы установленного оборудования может сократиться очень сильно.

Всем доброго времени дорогие друзья, знакомые, читатели и прочие личности. Сегодня посмотрим как ускорить Андроид, всякие там приложения под него и игры вроде PUBG Mobile в том числе

Для многих не секрет, что мы любим чего-то покрутить и поотмизировать, что порой выливается в разного рода интересные интересности или странные странности. Впрочем, часто усилия приносят страшную такую пользу и Ваши устройства начинают бегать на порядок быстрее.

Сейчас мы наблюдаем занимательную историю, когда развитие железной компьютерной индустрии достигло некоего своего логического (и не очень) пика и все технологии (в том числе программные) ринулись в сферу мобильных устройств.

Вот о последних сегодня и поговорим.

Вводная

Все наверное слышали про всякие там режимы разработчика в Android, которые позволяют что-то такое там хитрое нашаманить в настройках.

Эти настрои действительно существуют и хитрое нашаманить реально позволяют. Вопрос лишь в том, - будет ли это на пользу и не очень, - да и кому, собственно, - Вам, Вашей батареи, производительности, или некому разработчику.

Тем не менее, - ведь попытка не пытка. Во-первых, телефон можно сделать быстрее, во-вторых и в трехмерных играх всё будет бегать побыстрее (с выходом PUBG Mobile ) все прямо помешались на этой идее), да и вообще, - интересно и приятно.

Что касается возможных побочных эффектов, - тут всё просто. В некоторых случаях всё конечно идет здорово, весело и всячески на пользу. Производительность растёт, ускорение присутствует, PUBG летает, лаунчер телефона счастлив безмерно, а Вы, как его владелец, - пишите хорошие комментарии под этой статьёй, рассказываете о ней друзьям и всё такое прочее-разное.

Во всех остальных же случаях, стоит понимать, что многое зависит от железа в Вашем Android-телефоне, планшете или на чём Вы там планируете всё это запускать и использовать, - так тут вопрос техники.

И да, стоит понимать, что производительность может снизиться, а расход батареи увеличится. Как это исправить? Вернуть всё назад, настройки отключить.

Как ускорить Андроид и запустить настройки разработчика

Итого нам требуется "Многопроцессорный WebView ", - это один из крайне важных пунктов, который ускорит систему вцелом, хотя и может негавтивно сказаться на времени работы от батареи.

Как ускорить Андроид еще сильнее? И визуально понятно? Тоже самое касается пункта "оптимизация SD карты ", если конечно она у Вас вообще есть (карта) и пункт вообще).

Дальше, если Вы не любитель всяческих там анимаций, то крайне рационально будет отключить анимацию окон, переходов и убрать длительность анимации. Это на порядок сэкономит ресурсы, а визуально (субъективно и по ощущениям) у Вас телефон прямо начнет летать вообще.

Еще больше ускорения и оптимизации

Что касается аппаратного ускорения и GPU для компоновки экрана, - считается этот пункт актуален только на быстрых графических ядрах и только для 2D -приложений.

На деле это не всегда так, плюс ко всему, помимо всяких там PUBG Mobile и других 3-х мерных игр для Android , которые Вы и пытаетесь ускорить, собственно, - дело в том, что у Вас всегда задействован процессор как таковой, который работает с интерфейсом и процессами в фоне, поэтому перекладывая часть функционала на Вы можете получить некоторый прирост производительности.

Ну, и если памяти или мощностей у Вас не очень, а поиграть на любимом телефоне хочется, то есть смысл таки подрезать число фоновых процессов. Это конечно скажется на некоторых уведомлениях (например, почты), но зато повысит скорость работы в общем и целом, да и в трёхмерных приложениях в частности.

Послесловие

На сим всё, теперь Вы знаете как ускорить Андроид. Традиционно, - это не моветон и нюансов может быть много. У кого-то сие возымеет эффект, а у кого-то начнет кушать батарею. Кто-то вообще не заметить разницы и не поймет зачем оно вообще нужно.

Многое зависит от способа использования Вашей железки на Андроиде, её конфигурации, версии системы, процессора, памяти, места, игр в которые играете и многого другого.

Такие дела. Если интересно, - пишите в комментариях, - мы разовьем тему и расскажем как тем же Kernel Auditor "ом реально ускорить любой девайс, исходя из глубокого настройка ядра любого телефона.

Как и всегда, если есть какие-то мысли, вопросы, дополнения и всё такое прочее, то добро пожаловать в комментарии к этому материалу.

Введение

Параллельно с выходом Windows 7 несколько месяцев назад производители видеокарт представили много моделей на новых GPU, после чего занялись совершенствованием драйверов для своих продуктов. Как нам кажется, сегодня прошло достаточно времени, чтобы они смогли разобраться с самыми острыми проблемами под свежей операционной системой (которые, честно говоря, были не такими критичными, как в случае появления Vista), а объективные тесты должны показать состояние новой технологии.

Конечно, мы понимаем, что сегодня основное внимание приковано к 3D-технологиям, но мы решили вернуться к компоненту графики, который сегодня воспринимается как должное – 2D-графике. Причём не думайте, что мы просто решили добавить пару тестов к нашему тестовому пакету, подняв проблемы, решённые ещё во времена, когда производительность RAMDAC давала существенную разницу. Но подробнее об этом мы поговорим чуть позже.

Хотя большинство пользователей будут интересоваться скоростью отображения графического интерфейса Windows (по которому Windows 7 получила немало похвал по сравнению с Vista), мы обнаружили, что предполагаемое "графическое обновление" Windows 7 не такое свежее, как кажется. По сравнению с Windows XP (и даже Vista) производители графических процессоров пока не провели полной оптимизации 2D-графики под Windows 7, по крайней мере, как показывают исследования новой реализации вызовов API GDI (Graphics Device Interface). Мы все знаем, что 2D-графика состоит не только из забавной палитры, оптических эффектов переходов и анимированных меню с тенями; разработчикам нужно ускорять отрисовку старых добрых пикселей, линий, кривых, прямоугольников, полигонов и всевозможных графических примитивов, как их часто называют.

Важное предварительное замечание

Мы не хотели давать статье какую-либо эмоциональную окраску, хотя приверженцы "красного" или "зелёного" лагерей будут протирать глаза во время чтения материала. Поскольку мы сами не поверили в результаты тестов, то потратили дополнительное время на подготовку статьи, чтобы в интересах всех сторон результаты были максимально объективными и повторяемыми. Мы также поработали над тем, чтобы создать наиболее объективную основу для сравнения видеокарт между собой. Мы не хотели указывать пальцем в сторону того или иного производителя: важно понимать, что данная статья призвана помочь тем пользователям, кто использует компьютер не только для игр, но и выполняет на своих ПК настоящую работу.

В данном отношении важно понимать, что сегодня может быть весьма сложно продуктивно работать с 2D-графикой под Windows 7. Например, когда мы использовали Radeon HD 5870 и последние драйверы, то с большими сложностями смогли вывести простую векторную графику, простые или сложные дизайны CAD или даже поиграть в 2D-игры с высоким качеством графики. Это не столько критика, сколько попытка определить пределы проблемы, которую мы попытались проанализировать, и понять проблему максимально глубоко.

Теория и практика

Поскольку большинство пользователей вряд ли знают о встроенных функциях и поведении 2D-ускорения под Windows XP или Windows 7, мы решили разбить нашу весьма глубокую статью на две части. В первой части мы рассмотрим технические детали, касающиеся 2D-графики, чтобы наши читатели смогли подготовиться к восприятию второй части. Вы не только сможете разобраться в наших тестах, но и сможете лучше их интерпретировать. Чтобы облегчить наше тестирование, мы даже разработали собственную небольшую тестовую программу (и открыли к ней доступ, чтобы все заинтересованные пользователи смогли скачать и использовать программу самостоятельно - во второй части статьи). Наша цель заключалась в том, чтобы сделать обе части статьи максимально информативными, доступными и полноценными.

В следующем разделе мы рассмотрим основы 2D-графики. Между тем мы также считаем, что некоторые основы в данной области никому не помешают, они могут оказаться полезными для понимания других тем, а не только наших тестов.

Windows: как всё начиналось

Давайте вернёмся в 1985 год. В этом году Михаил Горбачёв стал секретарём ЦК КПСС, "Амадей/Amadeus" получил "Оскара" за лучший фильм, а Рональд Рейган был выбран на второй срок 40-м президентом США. Мало кто заметил, но именно в 1985 году была выпущена операционная система Microsoft Windows 1.0.


Windows с небольшим количеством окон – даже без взаимного наложения разных областей. Нажмите на картинку для увеличения.

Идея наложить виртуальный графический интерфейс на операционную систему с текстовым режимом вряд ли была такой революционной, причём даже в 1985 году. Фактически, именно такой подход разные компании, включая Microsoft и Digital Research, использовали в то время, чтобы расширить своё присутствие на рынке и сделать технологию ПК более доступной для большей части потенциальных покупателей и пользователей. Идея заключалась в том, чтобы приложения были достаточно дружественны к пользователям, то есть чтобы даже непрофессионалы в сфере ИТ могли работать с ними без предварительного глубокого изучения компьютера. Что интересно, в отличие от даже Windows 1.0, многопользовательская ОС Digital Research GEM поддерживала наложение окон уже в то время.



Только с версии Version 2 система Windows стала соответствовать своему названию. Нажмите на картинку для увеличения.

Если бы в 1987 году не была представлена операционная система Windows 2.0, где уже была поддержка множества накладывающихся друг на друга окон, то вполне возможно, что про Microsoft Windows сегодня никто бы и не знал. Фактически, Windows обязана своим выживанием дольше первых двух лет после первоначального объявления тому, кто имеет и сегодня огромное влияние в Microsoft – а именно Стиву Балмеру (Steve Ballmer). Его рекламу Windows 1.0 сложно забыть и сегодня, поскольку он нескромно выставил цену за Windows 1.0 на впечатляющем уровне $99 (немалая сумма для 1985 года), несмотря на отсутствие поддержки реальных окон. Стив Балмер действительно мог увлечь зрителя – его можно назвать гением маркетинга. Посмотрите сами.

Стив Балмер продаёт Windows.

С выпуска версии 2.0 ОС Windows смогла давать (по крайней мере) эволюционные, пусть не революционные изменения в своих последующих релизах. Фактически, революционное изменение оказалось в проблемах, какие мы бы хотели поднять в Windows 7, наиболее свежем выпуске компании.

Последняя версия оказалась как раз той, которая поднимает глубокие вопросы, заставившие нас обратиться к самому началу Windows. Причины тому простые и наглядные. Благодаря нашему сравнению техники работы с окнами, мы узнали о существовании двух сторон графического интерфейса Windows: графический пользовательский интерфейс или GUI (мы не учитывали настройку со стороны пользователя, а сконцентрировали внимание на базовом рабочем столе и работе с ним), включая работу с окнами, а также простые графические функции , которые используются для создания настольного окружения. Фактически, отображение содержимого окон и работа с ними являются двумя раздельными, пусть и связанными, сферами ОС Windows. Вид и ощущения от работы с интерфейсом Windows продолжили меняться и эволюционировать, но лежащие под ним простые графические 2D-функции оставались удивительно неизменными со временем.

Подкованные читатели наверняка знают о том, что пользовательский интерфейс с окнами уже не опирается на чистую 2D-графику. Именно поэтому мы объясним ниже, что существует небольшой набор графических команд 2D, которые следует рассматривать в свете их отображения на физическом дисплее, в более или менее трёхмерном виде.

Ограничения 2D: одно пространство со многими окнами


Всё, что вам нужно – высота и ширина.

Если вы посмотрите на отображение в любом окне, то вам потребуются только две координаты: X и Y, то есть ширина и высота. Чего не хватает? Какой-либо информации о глубине.

В Windows графика 2D отображается через GDI (Graphics Device Interface). Данный интерфейс поддерживает все языки программирования высокого уровня и содержит все важные графические функции, которые необходимы для рендеринга графических объектов 2D. Более поздние улучшения, такие как GDI+ и Direct2D, не играют особой роли, поскольку GDI был (и остаётся) самым важным инструментом для графического вывода 2D в приложении. Критически важные функции вывода пикселей, линий, кривых, полигонов, прямоугольников, эллипсов и так далее – все они изначально просчитывались на CPU. Благодаря развитию видеокарт, последнее поколение "железа" обеспечивает более быстрые 2D-расчёты и рендеринг. Эта ранняя форма 2D-ускорения остаётся важной даже сегодня, но двумерное ускорение уже не является основной целью. Чтобы получить максимум от графической производительности, нам нужна третья координата.

Изначальный способ 2D-рендеринга, который скрывается под наложением окон на экране дисплея, прост и прямолинеен. Нам нужно знать два параметра: первый – это область на экране внутри каждого окна, которая будет меняться (поэтому её требуется перерисовывать). Второй – это порядок, в котором окна или объекты накладываются друг на друга (будет ли объект виден полностью или частично, либо он будет закрыт другим окном). Данный тип информации требует так называемого 2,5-мерного измерения или использования слоёв графики, когда третья координата принимает значение 0 (скрытая) или 1 (видимая), то есть выступает как своего рода вспомогательное измерение. Именно по этой причине многие эксперты в области Windows много говорят о графике 2,5D.


Величина Z показывает, как накладываются или организовываются окна.

После того, как с порядком или видимостью окон всё будет определено, содержимое видимых окон может выводиться с помощью чистых двумерных графических функций. В любом случае, необходимо не только просчитывать содержимое окон дисплея полностью, но также нужно управлять различными типами информации и контентом окон. Что случится, например, если окно будет перемещено? Когда другое окно содержит область, которая полностью или частично открывается в результате этого действия, то должна быть вызвана системная графическая функция WM_PAINT с точной информацией о том, какую прямоугольную область следует перерисовать. Оптимизированные реализации функции будут реконструировать или перерисовывать эту область. К сожалению, многие реализации вместо этого перерисовывают окно полностью, несмотря на возможность доступа к более точным инструкциям, независимо от того, требуется полностью или частично воспроизвести содержимое окна. Это, в свою очередь, оказывает влияние на графическую производительность. Другой недостаток хорошо известен – он заключается в размывании или дублировании, когда окно начинаешь быстро перетаскивать по всему экрану на системе, где отсутствует аппаратное ускорение 2D.

Но позвольте подвести итог тому, что мы рассмотрели на данный момент. На дисплее есть отдельные окна, чей двумерный контент должен отрисовываться на экране, чтобы его можно было видеть. Эти окна можно двигать как угодно, при этом они могут перекрываться и частично или полностью закрываться другими окнами. Необходимо управлять видимым содержанием всех этих окон, его требуется выводить на экран с минимальной задержкой. Мы также знаем, что сам по себе CPU, пусть даже это будет очень быстрый процессор, может слишком сильно нагрузиться при выполнении подобных сложных задач. Какие есть выходы, кроме того, чтобы переложить эту нагрузку на видеокарту? Что для этого требуется? И почему всё звучит проще в теории, чем реализуется на практике? Всё это мы рассмотрим чуть ниже.

2,5D: мифы аппаратного ускорения 2D

Дискретные видеокарты сначала были нужны только для двумерной работы. Не секрет, что сегодня дискретные видеокарты дают прекрасную производительность, когда нужно работать со сложными графическими задачами рендеринга. Впрочем, старые видеокарты уже слишком медленные для повседневной работы, особенно когда им приходится выводить сложные графические эффекты рендеринга, присутствующие в последней версии Windows. С другой стороны, это связано с графической сложностью современных пользовательских интерфейсов Windows, а с другой стороны - с ограниченной графической функциональностью. Но давайте разберёмся с этими компонентами, с одним за другим.

В данном разделе мы рассмотрим графическое ускорение 2D, связанное с "родным" рендерингом графики, от GDI до самой видеокарты. Сюда входят простые геометрические объекты, такие как пиксели, линии, кривые, полигоны, прямоугольники и эллипсы с одной стороны, а также их масштабирование, рендеринг или операции сглаживания шрифтов (таких как TrueType или OpenType) с другой стороны.

Давняя поддержка аппаратного ускорения так называемых "2D-примитивов" в видеокартах исчезла, она уже некоторое время отсутствует в продуктах потребительского уровня. Сегодня ускорение двумерных графических функций реализуется как аналог трёхмерного ускорения, но обрабатывается исключительно и полностью программным графическим драйвером, а не встроенным на плату "железом".

Во второй части нашего цикла мы представим и разъясним тест, который мы специально разработали для двумерной графики, который тщательно тестирует ключевые и фундаментальные функции 2D-графики. Более того, этот тест показывает, что программный драйвер может негативно и непредсказуемо сказываться на 2D-графике. Мы также представим девять общих тестовых критериев.


Отображение текста.


Прямоугольники.


Кривые.

Преобразование функций отрисовки - это только часть двумерного ускорения. Значительное и весьма позитивное ускорение осуществляется современными 3D-видеокартами, которые могут выполнять рендеринг, управление и отображение графической информации 2,5D аппаратными средствами.


Всё выводится немедленно.

Как всё это работает? Как и в случае 3D-графики, просчитываются видимые и скрытые области окон, которые хранятся полностью в виде виртуальных прямоугольных участков, в них выводится в реальном времени содержимое всех активных окон. Поэтому ничего не требуется пересчитывать при перемещении или изменении окна; только те области, которые были скрыты, а сейчас стали видны, необходимо перерисовать вместе со всем, что изменилось со времени последнего обновления. Видеокарта всегда знает размер и расположение виртуальных прямоугольников, известных как окна. Используя буфер глубины (z-буфер) видеокарта отслеживает порядок и приоритет вывода окон или объектов на экране (он также известен как Z-порядок). Поэтому видеокарта может сама определить, какие объекты видимые, то есть что требуется вывести непосредственно на сам экран.

Позвольте подвести краткий итог тому, что всё это означает.

Современное аппаратное ускорение 2D включает как реализацию ключевых функций отрисовки 2D, так и реализацию технологий наложения слоёв 2,5D для окон и пользовательского интерфейса.

При этом было бы слишком тяжело исследовать каждую вышедшую версию Windows для поиска дополнительных деталей. Поскольку проблемы, выявленные нами, касаются производительности тестов только под Windows 7, мы ограничили наше тестирование Windows XP, Vista и, вполне естественно, Windows 7.

Windows XP: "старая школа" 2D и пределы WM_PAINT

Вы можете говорить о Windows XP всё, что думаете, но аппаратное ускорение GDI работает безупречно и по сей день, при этом его хватает для большинства типов приложений. Впрочем, чего XP сделать не может, так это переложить технику работы со слоями 2,5D на современные 3D-видеокарты. Как мы уже описывали выше, рендеринг содержимого окон выполняется самими приложениями.



Типичное 2D-приложение, для которого вряд ли будут покупать дорогую видеокарту. Нажмите на картинку для увеличения.

Это ограничение вряд ли обеспокоит тех пользователей, кто концентрирует свои усилия на любом одном окне настольного приложения. Наиболее типичное применение подобной технологии можно видеть в окружениях SDI (single device interface, интерфейс одного устройства). Но всё становится более неудобным, когда на рабочем столе открыты и видны множество окон. Кто будет против того, чтобы воспользоваться улучшенной технологией слоёв, которая поддерживает меню, лучше работает на современном "железе", а также облегчает работу с несколькими окнами на нескольких мониторах? Кому не хотелось бы оставить размывание перемещаемых окон и следы за ними в прошлом, получив более высокую графическую 2D-производительность?



Окна как колода карт: эффект дублирования окон под XP при перетаскивании. Нажмите на картинку для увеличения.

Хотя чистая 2D-производительность в векторных графических программах, таких как Corel Draw или приложений САПР, достаточно высока, поскольку функции GDI в них поддерживаются должным образом, мы упёрлись в ограничения возможностей WM_PAINT. Когда графический интерфейс XP перегружен анимацией, мягкими тенями, прозрачными окнами и другими графическими элементами, он вплотную приближается к пределам 2D-графики.



Когда система находится под тяжёлой нагрузкой, то функция WM_Paint "повисает" или обновляется только время от времени. События перерисовки должны дождаться своей очереди, чтобы быть выполненными. Нажмите на картинку для увеличения.

Многие пользователи обнаружили, что лучше всего отображать окна только в виде рамок при их переносе, а анимированные меню вообще лучше выключить. В целом, экономия графических ресурсов оказывается вполне нормальным подходом при работе на рабочем столе XP. К сожалению, многие красивые графические темы оказались, в конце концов, в корзине после первоначальной эйфории, связанной с запуском новой операционной системы, поскольку ОС теряла способность выводить всю графику без ошибок или без задержек.

Microsoft быстро заметила, что её графическое решение 2D, которое присутствовало во всех версиях Windows до этого, включая XP, требует замены. Да и растущая доступность всё более быстрых 3D-ускорителей вместе со снижающимися ценами на дискретные GPU явно указывали на то, что времена (и операционные системы) меняются.


Типичный пример 3D-видеокарты в 2005 году: Radeon X1800.

На данный момент важно отметить, что аппаратное ускорение в XP изначально не работало с интегрированным графическим ядром ATI 780G в "родных" разрешениях вообще. В результате окна отрисовывались медленно, что ухудшало даже базовую производительность web-браузера. Последующие обновления драйвера помогли решить эти проблемы. Но даже сегодня графическое ядро 780G не может работать оптимально, что сильно контрастирует с 740G. Но сегодня, когда XP уже остаётся в прошлом, это суждение, возможно, тоже должно разделить подобную судьбу...

Затем на рынок вышла Windows Vista, которая является, возможно, самой противоречивой ОС Microsoft (вместе с Windows ME). В любом случае, независимо от вашей любви или ненависти к Vista, компания уже не могла откладывать некоторые технические совершенствования.

Краткий итог по XP таков.

  • Аппаратное ускорение 2D работало безупречно для команд GDI.
  • Аппаратного ускорения для слоёв 2,5D не было предусмотрено, что приводило к замедлению пользовательского интерфейса.
  • Повторяющаяся перерисовка или изменение содержимого окна отнимала время, а также сказывалась на производительности.

Windows Vista: прогресс и отказ от старого

Когда мы впервые установили Windows Vista, то едва сдерживали себя. Интригующая, сложная и улучшенная, Vista обещала очень немало.



Много света и теней, но без аппаратного ускорения 2D. Нажмите на картинку для увеличения.

Но то, что казалось очень революционным на первый взгляд, сменялось огорчениями при запуске того или иного приложения, а иногда и просто вселяло ужас. Давайте рассмотрим самые важные особенности в деталях.

Аппаратная реализация слоёв 2,5D

Эта технология была впервые реализована в Windows Vista. На её выход потребовалось весьма долгое время, но в 2006 году технология, наконец, появилась. Впрочем, одно небольшое ограничение оставалось: она работала только в том случае, если был активирован интерфейс Aero. Кроме того, для поддержки слоёв 2,5D требовалась видеокарта с поддержкой 3D, причём даже если вы не планировали запускать 3D-приложения или игры. Если вы использовали тему Vista Basic, то приходилось смириться с теми же эффектами размытия и раздвоения при перемещении окон, которые были знакомы пользователям XP, поскольку поддержка слоёв 2,5D автоматически выключалась – даже если в системе была установлена 3D-видеокарта. Обидно.

Переход на поддержку слоёв 2,5D также заставил Microsoft решать несколько проблем. Vista считалась медленной операционной системой, но, по большей части, стабильной. Но что же случилось? Мы уже упоминали, что GDI был ключевым интерфейсом для программирования графики. После введения (к сожалению), очень медленного расширения GDI+ на основе C++, которое так и не обусловило технологического прорыва из-за своей производительности, мы уже не могли отрицать существование своего рода "хаоса интерфейсов". Фактически, было очень и очень непохоже, что GDI, GDI+, DirectDraw и Direct3D могут быть вообще одновременно ускорены аппаратно.

Помимо новой модели драйверов устройств, Windows представила модель DWM для управления устройствами вывода на экран. Общая концепция оказалась не такой простой, она добавила программный уровень (и соответствующее увеличение сложности) между окнами и командами отрисовки с одной стороны, а также между драйверами и устройствами с другой стороны. Прямое взаимодействие было прекращено по причине появления DWM. Пытаясь получить контроль над всем, модель DWM обеспечивала координацию всех отдельных графических интерфейсов. Этот переход оставил в стороне довольно серьёзную графическую особенность, о которой мы уже упоминали – а именно аппаратное ускорение функций отображения GDI. Понять сложно, но так именно и произошло.

Большую часть дополнительной памяти, которую потребляет Vista, обычно относят к технологии SuperFetch. К сожалению, это лишь частично описывает ситуацию в реальности. Отсутствие аппаратного 2D-ускорения привело к тому, что вся тяжесть вызовов GDI по выводу содержимого окон ложится на CPU. Всё это приводит к огромному буферу внутри DWM. Полные отображения окон должны затем передаваться на видеокарту. Но это быстро привело к появлению серьёзного "узкого места", поскольку только одно окно в один момент времени может отсылать команды GDI на DWM. Асинхронные задачи не разрешаются, что приводит к длительной очереди ожидающих запросов на обслуживание. Всё это не только требует существенного процессорного времени на выполнение, но и потребляет немалый объём памяти, поскольку все активные окна находятся внутри буфера DWM. Отдельные окна могут занимать 100 Мбайт, так что вполне понятно, что потребление памяти будет увеличиваться. В самых экстремальных случаях Vista может попросту "зависнуть" – например, когда вредоносная программа будет открывать одно окно за другим в бесконечном цикле. Конечно, такой цикл не может продолжаться бесконечно, поэтому вам придётся выполнить принудительное выключение компьютера, чтобы восстановить контроль над системой.



Удвоение потребления памяти не удваивает наслаждение от работы (источник: Microsoft). Нажмите на картинку для увеличения.

Подведём краткий итог по Vista.

  • Vista впервые использует аппаратное ускорение для модели слоёв 2,5D.
  • С активной технологией Aero медленная перерисовка окон Windows остаётся в прошлом.
  • Microsoft отказывается от аппаратного ускорения функций 2D-отрисовки GDI.
  • DWM не может работать с окнами в асинхронном режиме, что негативно сказывается на графической производительности.
  • Очередь ожидания команд GDI внутри DWM может отнять большой объём памяти.

Windows 7: возвращение "блудного сына"


Логотип Windows 7, которая заинтересовала многих пользователей.

Многие пользователи считали Vista неудачной ОС - она воспринималась как монстр, буквально "сжирающий" память. В любом случае, на эту операционную систему нужно было взглянуть ещё раз, в свете выпуска Windows 7. Вместе с фундаментальными изменениями самой системы, графика Windows 7 дала то, что забрала Vista – неограниченное ускорение 2D-графики во всех областях, включая функции отрисовки GDI.

Благодаря переходу на WDDM 1.1, Windows 7 предотвратила удвоенное использование памяти (первый раз для буферов отдельных, второй раз для каждого активного окна в DWM). Это позволило сделать систему более простой, с более скромными требованиями к ресурсам. В Windows Vista удвоенное потребление памяти для окон может объяснить, почему память у системы "съедалась" столь нещадно.


В случае Vista ОС "съедает" всю память, которую может получить... (источник: Microsoft).



…но в случае Windows 7 требования более скромные (источник: Microsoft).

Для дополнения GDI под Windows 7 был объявлен и Direct2D. Данный интерфейс использует преобразование команд, аналогичное Direct3D, чтобы и реализовать аппаратное ускорение, и поддержать более сложный набор графических функций. Direct2D даёт преимущество по скорости GDI вместе с расширенными возможностями GDI+, судьба которого не сложилась. Впрочем, нам ещё предстоит увидеть, сможет ли Direct2D получить поддержку со стороны разработчиков.

Даже сегодня подавляющее большинство программ по-прежнему используют GDI API для рендеринга и работы с графическими элементами 2D. Нам понравилось, что Windows 7 вернула аппаратное ускорение этих команд, от которого отказалась Vista.



Асинхронный GDI под Windows 7 (источник: Microsoft). Нажмите на картинку для увеличения.


Почти идеальное масштабирование при одновременной работе с несколькими окнами (источник: Microsoft)

Подведём краткий итог по Windows 7.

  • Прямое перенаправление команд отрисовки GDI к графическому драйверу через DWM.
  • Асинхронная и одновременная обработка команд GDI для нескольких окон.
  • Стратегии, избегающие чрезмерного использования памяти для создания очереди графических запросов.
  • Новые и улучшенные драйверы WDDM 1.1.

Требования производителей графических процессоров

Возвращение аппаратного ускорения 2D-графики вернуло в игру производителей графических процессоров. Драйверы под Windows 7 должны быть специально собраны, чтобы они могли дать аппаратное ускорение для двумерных команд ускорения GDI, а также поддерживать работу в слоях 2,5D отдельных окон.

Для некоторых видеокарт это оказалось весьма непростым. Например, текущее поколение видеокарт ATI, по всей видимости, страдает из-за сложностей, связанных с драйвером, во всех этих областях ускорения 2D-графики. Ниже вы прочитаете о том, как мы обнаружили эти проблемы, и какие нами были сделаны выводы.

Windows 7: у линейки видеокарт Radeon HD 5000 отсутствует 2D-ускорение

AMD приложила массу усилий к разработке видеокарт DirectX 11 последнего поколения; вполне естественно, что для доработки программной стороны потребовалось некоторое время (вряд ли для кого является секретом, что последующие выпуски драйверов улучшают производительность и стабильность многими разными способами). Мы не можем обойти в данном вопросе и nVidia, поскольку мы обнаружили схожие проблемы у драйвера GeForce компании при использовании 2D-графики на мобильных процессорах компании. Для нашей статьи мы использовали наиболее свежую версию драйвера Catalyst на момент тестов - 9.12.



Catalyst и Windows 7 плавают в неспокойных морях. Нажмите на картинку для увеличения.

Проблема 1: ATIKMDAG прекращал отвечать, затем восстанавливался

Если вы сталкивались с подобным сообщением об ошибке, то наверняка это происходило после перехода обратно в 2D-режим после выхода из 3D-приложения. Нам ничего не оставалась, кроме как предположить, что это результат какой-либо ошибки в драйвере.

Позвольте напомнить: когда интерфейс Aero выключен, то DWM отключается, поэтому 2D-ускорения больше не происходит (то есть мы получаем то же самое под Windows 7, что и под Vista). Поскольку мы сталкивались с этой ошибкой снова и снова на системах с установленными видеокартами Radeon HD 5750 и Radeon HD 5870 (в двух разных тестовых конфигурациях), то нам пришлось намеренно отключить интерфейс Aero в обоих случаях. После подобного манёвра ошибки уже не появлялись. Что интересно, точно такую же ситуацию (и её решение) мы обнаружили на ноутбуках с видеокартами GeForce. Конечно, только время покажет, является ли это просто совпадением или указывает на конфликт между DWM, драйверами и аппаратным ускорением 2D-графики.

Нашим следующим главным подозреваемым оказались относительно низкие частоты видеокарт AMD по умолчанию в 2D-режиме, а также некоторые проблемы в ранних BIOS видеокарт. Впрочем, чтобы подтвердить или опровергнуть их влияние, нам потребуются долгосрочные наблюдения – либо после выхода новой версии драйвера должно измениться поведение.

Мы упёрлись в эту проблему, поскольку у нас сразу же возникли трудности с тем, чтобы заставить Radeon HD 5870 поддерживать 2D-графику. Многие могут, конечно, добавить в этом отношении, что 3D-карты создаются для игр, а не для 2D-приложений. Но если вы читали предыдущие разделы статьи, то должны признать, что эта проблема стала серьёзной только с выходом Windows 7 (а не Windows Vista). Если быть более конкретным, то большинство 3D-видеокарт без проблем способны справиться с 2D-графикой в наши дни. Но прямое сравнение поддержки 2D-ускорения между GeForce GTX 285 и Radeon HD 5870 привело к тому, что видеокарта AMD оказалась в аутсайдерах. Фактически, при сравнении с интегрированным графическим решением nVidia GeForce 7050 (nForce 610i), которое не имеет собственной памяти, новые Radeon встают лишь на второе место.

Всё становится более интересным, когда DWM выключен. Даже если в данном случае 2D-ускорение уже невозможно, видеокарты AMD дают прирост по производительности. По сравнению с Nvidia GeForce, запуск видеокарты AMD с отключённым DWM даёт ей прирост производительности. Даже CorelDraw и AutoCAD работают на Radeon HD 5870 заметно быстрее при выключенном DWM. Это выставляет nVidia в выгодном свете и противоречит как логике, так и предыдущему опыту тестирования данных GPU.


Аппаратное ускорение 2D с интерфейсом Aero и включённым DWM даёт преимущество видеокартам GeForce.


Без Aero и аппаратного ускорения 2D видеокарты AMD работают вплоть до пяти раз быстрее. Шокирует!

Именно по этой причине мы несколько раз повторили тесты PassMark на этих видеокартах.


Интерфейс Aero и DWM выключены – видеокарты AMD заметно ускоряются. Нажмите на картинку для увеличения.

К сожалению, ни один из этих тестов не смог найти точную причину проблем, с которыми мы столкнулись, либо пролить свет на странные результаты производительности. Именно поэтому мы решили создать собственный тест, который позволил лучше разобраться с причинами выявленных проблем.

Tom2D Benchmark: Radeon HD 5870 против GeForce GTX 285 под Windows 7

С помощью нашего нового теста мы надеемся глубже разобраться в истинных причинах подобного падения производительности 2D, которые мы недавно обнаружили с видеокартами Radeon HD 5870, 5850 и 5750 в нашем распоряжении. Начнём с того, что 2D-ускорение функций GDI под Windows 7 явно не работало ни на одной из моделей линейки Radeon HD 5000, то есть перед нами не просто серьёзное замедление. В чём проблема: в драйвере или в "железе"? В случае с nVidia тоже не всё оказалось благополучно: на видеокартах этой компании ускорялись не все возможные функции.

Тестовая конфигурация
Процессор Intel Core 2 Quad Q6600, 2,4 ГГц @ 3,2 ГГц, степпинг G0, кэш L2 8 Мбайт, LGA 775
Память 4 Гбайт DDR2-1066 CL5
Материнская плата A-Data Vitesta Extreme
Операционная система Windows 7 Ultimate x64
Видеокарты Radeon HD 5870, GeForce GTX 285
Графический драйвер Catalyst 9.12, GeForce 195.62
Видеокарты Тактовая частота при включённых Aero/DWM Тактовая частота без ускорения
ATI Radeon HD 5870 850 МГц 157 МГц
Nvidia GeForce GTX 285 648 МГц 300 МГц

Чтобы заложить более прочную основу для сравнения включённого/выключенного 2D-ускорения, мы также провели все наши тесты на старом чипсете nForce 610i с интегрированным графическим ядром GeForce 7050 (без выделенной памяти). Мы установили тот же самый процессор и 4 Гбайт памяти, после чего использовали ту же самую операционную систему Windows 7. Мы также проверили производительность предшественницы Radeon HD5870, видеокарты ATI Radeon HD 4870, в нашей тестовой платформе.


В данном тесте все тестовые видеокарты находятся в узком диапазоне производительности.

Интересно было бы услышать от nVidia комментарии по поводу того, почему интегрированный графический процессор отображает 2D-графику быстрее, чем GeForce GTX 285, пусть даже разница весьма скромная.

Видеокарта Radeon HD 4870, взятая нами для сравнения, расположилась третьей снизу, хотя никаких особых недостатков она не демонстрирует.


Удивительно, но видеокарта Radeon HD 5870 просто не способна выводить линии с аппаратным ускорением с приемлемой производительностью.

Если обе тестовые видеокарты nVidia и AMD дали выдали приемлемые и относительно близкие результаты с выключенным 2D-ускорением, когда всю работу выполнял CPU, между двумя видеокартами открывается существенный разрыв после включения Aero. GeForce GTX 285 работает в 11 раз быстрее ATI Radeon HD 5870. Что ещё хуже, интегрированный графический процессор с материнской платы за $50 двухлетней давности на порядок обходит видеокарту за $400.

Полученные нами данные для Radeon HD 4870 показывают небольшую разницу между активным режимом Aero и простым режимом (без ускорения графики) под Windows 7, что заставляет предположить об отсутствии ускорения по отрисовке линий под Windows 7. Данная видеокарта отказалась заметно медленнее GeForce GTX 285 и интегрированного графического решения, однако она всё же обходит Radeon HD 5870 с включённым и выключенным ускорением.


Данный тест даёт примерно такую же картину, что и тест отрисовки линий. Видеокарта Radeon HD 5870 находится в конце, подтверждая наше предположение о том, что она не способна правильно работать с 2D-приложениями. Это вряд ли можно назвать терпимым даже для потребительского рынка.

С включённым интерфейсом Aero и активным DWM, видеокарта GeForce GTX 285 даёт в девять раз более высокую производительность. Точно также даже старое интегрированное ядро чипсета значительно обходит новую видеокарту AMD. Кстати, производительность Radeon HD 4870 оказалась весьма любопытной: видеокарта способна аппаратно ускорять вывод кривых, пусть даже производительность снижается по сравнению с обоими решениями nVidia.


Поскольку у нашей Radeon HD 5870 наблюдались явные проблемы с рендерингом линий (особенно при насыщенных штрихах), мы видим, что половина результатов нашего теста прямоугольников соответствует предыдущим находкам, и это не удивляет.

В любом случае, весьма интересно видеть, как производительность Radeon HD 5870 удваивается после включения аппаратного ускорения (по сравнению с выключенным ускорением), пусть даже производительность оказывается чуть хуже GPU GeForce 7050.

Тест прямоугольников оказался единственным, где мы обнаружили заметный эффект включения аппаратного ускорения на видеокартах ATI, и где аппаратное ускорение достойно своего названия. Видеокарта Radeon HD 4870 выиграла от этого эффекта сильнее, чем 5870, пусть даже она отстала от остальных видеокарт в данном тесте без ускорения.


В данном случае победа присуждается старому интегрированному графическому ядру. Nvidia nForce 610i обходит все другие дискретные видеокарты с удивительно большим отрывом, причём неважно, с активным 2D-ускорением мы их берём или с неактивным. Интересно отметить, что для обеих топовых 3D-видеокарт ускорение вывода полигонов не работает вообще.

Интегрированное графическое ядро с включённым Aero работает в 10 раз быстрее, чем Radeon HD 5870. Без ускорения Radeon HD 4870 работает чуть медленнее, чем 5870. Но после включения Aero производительность 4870 более чем в два раза превышает 5870.


Результаты похожи на те, что мы видели выше. Обе high-end видеокарты не обеспечивают 2D-ускорения, в отличие от интегрированного чипсета. Видеокарта Radeon HD 5870 становится аутсайдером, а старая Radeon HD 4870 располагается где-то посередине.

Дополнение

Мы получили схожие результаты, когда мы использовали Radeon HD 5750, где сглажены некоторые дефекты, касающиеся 5870. Мы также сравнивали драйверы Catalyst 9.11 и 9.12 и обнаружили заметный прирост производительности при переходе со старой версии на новую, независимо от того, было включено аппаратное ускорение или нет. Нашим следующим сравнением будет измерение производительности Windows 7 и Vista, но мы оставим его до второй части статьи. Достаточно сказать, что даже здесь мы обнаружили немало сюрпризов во время проведения тестов.

Заключение

Если судить по нашему анализу текущей ситуации, то у новых видеокарт линейки ATI Radeon HD 5000 наблюдаются проблемы с 2D-графикой. Также нас весьма беспокоит и то, что старый интегрированный чипсет оказался быстрее в некоторых областях (против обеих дискретных видеокарт AMD и nVidia). Кроме того, мы не смогли найти какого-либо приемлемого решения для работы с программами, использующими векторную графику. Причём это касается не только нашего тестирования; это касается всех, кто регулярно работает с 2D-графикой. Честно говоря, довольно сложно представить, как старая видеокарта Radeon HD 4870 смогла вплотную подойти или даже победить новые видеокарты в столь большом количестве тестов.

Хотя 2D-ускорение (включая слои 2,5D) работает хорошо, AMD пока не реализовала некоторые базовые функции GDI в линейке видеокарт Radeon HD 5000. После первоначального появления Windows 7 прошло уже несколько выпусков драйверов, поэтому ситуацию будет сложно понять тем, кто потратил несколько сотен долларов на новенькую видеокарту, но при этом получил "тормоза" в 2D-приложениях. Мы также вынуждены напомнить, что всё это касается не только нашего синтетического 2D-теста, но и различных реальных приложений, которые мы используем в наших тестах, включая AutoCAD, Corel Draw, Adobe Illustrator, Photoshop CS3/CS4, Microsoft Publisher, PowerPoint и так далее. Это требует срочной и серьёзной доработки драйверов со стороны AMD, особенно в связи с тем, что наши результаты под Vista демонстрируют намного более высокую производительность, чем под Windows 7 (во второй части статьи мы как раз об этом и поговорим).

Во время подготовки статьи и проведения тестов мы несколько раз звонили Анталю Танглеру (Antal Tungler), техническому PR-менеджеру AMD, обсуждая с ним 2D-производительность линейки Radeon HD 5000 под Windows 7. Когда мы доказали себе, что данные проблемы производительности связаны конкретно с проблемами GDI, которые испытывает почти любая программа, работающая с окнами на рабочем столе, подобная ситуация уже не показалась нам терпимой, особенно для домашних и офисных пользователей. Тем более что интегрированный графический GPU у конкурента справлялся с 2D-графикой более эффективно.

Мы можем только предполагать (и надеяться), что причина и возможное решение кроются в драйверах Catalyst. Если это так, что AMD сможет исправить проблемы довольно легко. Учитывая недавний выход недорогих видеокарт , можно предположить, что проблемы касаются всей линейки. Но что нас беспокоит больше, учитывая результаты тестов - прямоугольники получают заметное ускорение, а все другие графические примитивы (особенно линии и кривые) - нет. Мы наблюдаем серьёзное падение производительности при активации аппаратного ускорения GPU - а это говорит о том, что ничего хорошего здесь не происходит. Дискретная видеокарта nVidia также отстаёт при рендеринге эллипсов и полигонов, и нам очень интересно узнать, почему это происходит.

Пока что мы рекомендуем пользователям видеокарт линейки Radeon HD 5000 отключать интерфейс Aero при работе с программами, интенсивно использующими 2D-графику. В таком случае прирост производительности может составить до 300%, что легко компенсирует отсутствие красивых и прозрачных оконных рамок. Кроме того, вы можете отключить Aero только для запускаемых программ, чтобы не отказываться от интерфейса Aero вообще.

Нажмите правой клавишей на иконку программы, затем выберите пункт "Свойства/Properties" из появившегося меню. Выберите закладку "Совместимость/Compatibility" в окне свойств, после чего отметьте галочкой пункт "Отключить композицию рабочего стола".


При выборе пункта "Отключить композицию рабочего стола" поддержка DWM деактивируется.

Во второй части мы вновь протестируем возможности видеокарт AMD и сравним их с прямыми и непрямыми конкурентами от nVidia. Между тем мы пообщаемся с представителями AMD и nVidia и обсудим результаты нашего первоначального теста. Нам очень интересно узнать, что они ответят.

После интенсивного обсуждения этой темы с нашими коллегами мы решили, что проведём более глубокие тесты на разном "железе" под XP, Vista и Windows 7. Нашей целью будет найти более глубокое понимание графических возможностей 2D всех этих операционных систем. Мы планируем взглянуть на старые видеокарты S3, Voodoo, многочисленные старые модели GeForce и полную линейку видеокарт AMD/ATI. В общем, мы хотим ничего не оставить в стороне, включив в тесты даже интегрированные графические ядра из нашего большого набора материнских плат.

Мы уже знаем, что во время этого процесса мы обнаружим несколько интересных моментов, а также и ряд разочарований. Во второй части статьи мы также приведём более точное описание тестов, рейтингов тестовых результатов, а также дадим возможность скачать Tom2D Benchmark самостоятельно. Мы уверены, что вы найдёте этот материал весьма интересным, особенно когда мы обнаружим, какие видеокарты потребительского уровня дадут более высокую графическую производительность 2D под конкретные версии Windows. Вас ждут сюрпризы, так что оставайтесь с нами!

Обновление . Взглянув на наши предварительные результаты 2D-производительности, представители AMD выдвинули следующие предположения.

  • Специалисты Tom’s Hardware для измерения взяли область (2D-линии и т.д.), которая ещё не была оптимизирована.
  • До этого нового теста мы не наблюдали любых других приложений, которые бы упирались в "узкое место" таким же образом, поэтому и не фокусировали на этом внимание раньше.
  • Наш первоначальный анализ показывает, что в данной сфере нет аппаратных ограничений.
  • Мы попросим нашу команду разработчиков драйверов оптимизировать их и под эту область, и постараемся представить новый драйвер для решения проблемы как можно быстрее.
  • Мы уже нашли простой способ серьёзно увеличить нашу производительность, и мы попытаемся реализовать его в будущих версиях драйвера Catalyst (нам нужно написать код, валидировать его, убедиться, что он не испортит ничего другого и т.д.).


Рекомендуем почитать

Наверх