Измерение производительности видеосистемы: практика

для раздела Лаборатория

Оглавление

Вступление

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

И снова программа

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

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

Этот прием совсем не подходит для автоматизированного измерения, но такой задачи и не ставилось. Цель – оценить, что же мы видим и как на это влияет нестабильность потока кадров. В качестве средства захвата можно использовать обычный фотоаппарат, к его характеристикам нет жестких требований, лишь бы маркеры четко различались.

Эти условия означают, что программа должна генерировать маркеры. Я использовал два типа – статический по левому краю и динамический, который смещается при выводе каждого кадра.





450x338  37 KB

Фотоаппарат может захватывать показ нескольких кадров, поэтому на снимке отобразятся маркеры всех кадров, которые были показаны за прошедшее время.

98x225  6 KB

Левый маркер выдается в каждом кадре тем же цветом, что и динамический маркер, цвета выбраны обычные – серый, зеленый, красный, синий. Если при выводе не возникает коллизий, то цвет левого маркера усредняется во времени и будет казаться белым. При возникновении пропусков или повторений станет преобладать какой-то оттенок, причем будет отслеживаться не только изменение цвета, но и место сбоя.

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

450x274  42 KB

Посмотрим на маркеры поближе.

54x251  4 KB

При съемке фотоаппарат открывает и закрывает шторки, на что тратится некоторое время. В результате начало и окончание процесса сопровождается относительно плавным повышением и снижением яркости маркеров. На снимке хорошо заметно, что самый левый маркер является первым – его яркость повышается с низкого значения до нормального. Далее следует три нормальных маркера и их завершает последний, на котором шторки начали закрываться и яркость снижалась. Из этой информации легко вычисляется выдержка и время переключения шторок в фотоаппарате, но кому это надо? .

Режим вывода «в окне» означает, что линии всегда выводятся целиком, то есть кадры всегда синхронны развертке, но что будет происходить при скорости вывода ниже 60 к/с? Вообще-то, должно последовать повторение кадра. Сделаем еще один снимок:





100x250  7 KB

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

100x250  7 KB

На данном снимке ярче стали голубые маркеры, сравните с предыдущим случаем. Эффект повышения яркости связан с двукратным показом этого (голубого) маркера. Разберемся подробнее, как это происходит. Вначале формируется кадр с «зеленым» маркером, затем «красным» и «голубым». После этого игра не успевает сформировать кадр на момент появления синхроимпульса и система вывода начинает повторный показ того кадра, что был ей передан ранее, то есть с «голубым» маркером.

В результате это место на экране подсвечивается в два раза дольше, по сравнению с соседними маркерами, и оно фиксируется «ярче». Во время открытых шторок происходит накопление заряда в матрице фотоаппарата, который пропорционален яркости и длительности. К слову, именно поэтому при съемке ярких композиций устанавливается малая длительность, а темных – продолжительная.

Переходим к режиму «полное окно» с отключенной синхронизацией.

120x250  8 KB

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

100x250  5 KB

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





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

Тестовый стенд и ПО

Измерение характеристик и съемка результатов осуществлялась на следующем оборудовании:

  • Процессор: Intel Core i5-3570K с разгоном до 4200 МГц;
  • Материнская плата: Gigabyte GA-Z77X-UD3H;
  • Видеокарта: 2х AMD Radeon HD 6970;
  • Оперативная память: 2 х 4 Гбайта Hynix DDR3 (PC10600, 1333 МГц, CL9) @1600 МГц;
  • Блок питания: Thortech Thunderbolt PLUS 800W Gold, 800 Ватт;
  • Фотоаппарат: Canon PowerShot A3200 IS.

Программное обеспечение:

  • Microsoft Windows 7 SP1 x64;
  • AMD Catalyst 13.6 beta2.

Первый запуск

«Говорильни» в первой части было много и это всем надоело, теперь чистая практика.

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

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

Напоминаю, все сказанное относится к видеокартам AMD Radeon HD 6970 в режиме CrossFireX. Итак, игры.

Borderlands (Direct3D9)





300x175  16 KB. Big one: 1200x700  150 KB

Маркеры специально подобраны по цветовому оттенку – серый (точнее желтоватый) и красный соответствуют четным кадрам, а голубой и зеленый – нечетным. Впрочем, понятия «четный» и «нечетный» чисто условны, программа лишена привязки к какой-то конкретной видеокарте из пары.

Соотношение длительности показа четных и нечетных кадров неодинаково – одни короче других, причем заметно. Это явная «особенность работы CrossFireX» и она хорошо предсказуема. Но чем именно вызвана рассинхронизация видеокарт? Может, высокой частотой кадров? На приведенном фрагменте указано 395 к/с. Возьмем другую сцену,… а лучше ту же самую, но несколько иначе.

300x175  10 KB. Big one: 1200x700  101 KB

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

На приведенной картинке «хорошее» соотношение длин кадров и это при том, что ни место, ни скорость кадров существенно не изменились. Но 400 к/с не показатель, стоит понизить планку.

300x175  15 KB. Big one: 1200x700  144 KB

Скорость уменьшилась до 236 к/с, как и число сегментов на экране (четыре, против восьми на предыдущей картинке), а в остальном изменений нет – все маркеры одинаковой длины. Попробую найти место с более низкой скоростью кадров, 236 все же многовато.

300x175  14 KB. Big one: 1200x700  132 KB

Все то же самое, кадры выводятся нормально. Вывод на экран довольно «размешенный», а как обстоят дела со случаем кратного соотношения скорости кадров и регенерации экрана?

300x175  15 KB. Big one: 1200x700  154 KB

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

300x175  13 KB. Big one: 1200x700  128 KB

Да нет, дефект на том же месте – длительность показа четных и нечетных кадров различается. Логика прослеживается, но весьма смутно, требуется больше данных. Значит, снимем еще.

150x90  4 KB. Big one: 1200x700  135 KB 150x90  5 KB. Big one: 1200x700  134 KB 150x90  4 KB. Big one: 1200x700  135 KB

150x90  5 KB. Big one: 1200x700  155 KB 150x90  4 KB. Big one: 1200x700  120 KB 150x90  5 KB. Big one: 1200x700  138 KB

В первой строчке собраны снимки с «нормальным» соотношением длительности вывода кадров, во второй – «проблемные». Анализ пока проводить рано.

Borderlands 2 (Direct3D9)

300x175  9 KB. Big one: 1200x700  78 KB

Еще одна игра на DirectX 9, схожая с предыдущей, но есть и отличия – в ней отсутствует «привязка» к двум ядрам и она спокойно масштабируется на большее количество потоков. Это означает, что следует ожидать более плавного построения картинки, что и наблюдается – игра Borderlands 2 идет значительно «мягче» Borderlands. Посмотрим картинки:

150x90  5 KB. Big one: 1200x700  144 KB150x90  5 KB. Big one: 1200x700  122 KB150x90  6 KB. Big one: 1200x700  159 KB
150x90  3 KB. Big one: 1200x700  85 KB150x90  4 KB. Big one: 1200x700  90 KB150x90  3 KB. Big one: 1200x700  84 KB

Игра демонстрирует как нормальный режим вывода кадров (первая строка таблицы), так и «с проблемами» (вторая строка).

Что интересно, переход из одного состояния в другое может произойти в любой момент времени без видимых воздействий. Например, в абсолютно «спокойном» месте, два снимка подряд:

150x90  2 KB. Big one: 1200x700  94 KB 150x90  2 KB. Big one: 1200x700  112 KB

Соотношение длительности фрагментов может быть как фиксированным, так и «плавать» между «устойчивыми» состояниями.

Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Страница 1 из 6
Оценитe материал
рейтинг: 4.6 из 5
голосов: 117

Комментарии 68 Правила



Возможно вас заинтересует

Популярные новости

Сейчас обсуждают