Измерение производительности видеосистемы: практика
реклама
Оглавление
- Вступление
- И снова программа
- Тестовый стенд и ПО
- Первый запуск
- Unigine Heaven Benchmark 4.0
- Скорость кадров, качество картинки
- Эмуляция реальной частоты кадров на Fraps-Calc
- Попытка улучшить качество изображения
- Catalyst 13.8 beta
- Повторяемость результатов
- NVIDIA
- FCAT (Frame Capture Analysis Tool)
- Заключение
Вступление
Ранее, в теоретической части материала рассматривались особенности построения картинки в играх и влияние на этот процесс нестабильности потока кадров. Но это были теоретические размышления, настала пора проверить, что же происходит в действительности.
И снова программа
Программы мониторинга работы видеокарт существуют в различных вариантах исполнения и их можно использовать для анализа построения картинки. Вот только… применение готового инструментария сразу начинает ограничивать возможности, а хочется всего и сразу. Что же, придется написать собственный простенький мониторинг.
реклама
Для получения адекватного ответа по построению кадров необходимо как-то получить достоверную информацию о том, «какой» кадр выводится и его продолжительность (количество строк на экране). На начальном этапе хотелось бы просто убедиться в том, что мониторинг работает адекватно, а потому какие-то «программные анализаторы» были оставлены на потом. Программа просто формирует маркеры, которые можно наблюдать на экране дисплея.
Этот прием совсем не подходит для автоматизированного измерения, но такой задачи и не ставилось. Цель – оценить, что же мы видим и как на это влияет нестабильность потока кадров. В качестве средства захвата можно использовать обычный фотоаппарат, к его характеристикам нет жестких требований, лишь бы маркеры четко различались.
Эти условия означают, что программа должна генерировать маркеры. Я использовал два типа – статический по левому краю и динамический, который смещается при выводе каждого кадра.
Фотоаппарат может захватывать показ нескольких кадров, поэтому на снимке отобразятся маркеры всех кадров, которые были показаны за прошедшее время.
Левый маркер выдается в каждом кадре тем же цветом, что и динамический маркер, цвета выбраны обычные – серый, зеленый, красный, синий. Если при выводе не возникает коллизий, то цвет левого маркера усредняется во времени и будет казаться белым. При возникновении пропусков или повторений станет преобладать какой-то оттенок, причем будет отслеживаться не только изменение цвета, но и место сбоя.
При построении изображения «в окне» в обязательном виде выполняется буферизация и синхронизация с частотой развертки, следовательно вертикальная линия маркера окажется непрерывной на всем протяжении.
реклама
Посмотрим на маркеры поближе.
При съемке фотоаппарат открывает и закрывает шторки, на что тратится некоторое время. В результате начало и окончание процесса сопровождается относительно плавным повышением и снижением яркости маркеров. На снимке хорошо заметно, что самый левый маркер является первым – его яркость повышается с низкого значения до нормального. Далее следует три нормальных маркера и их завершает последний, на котором шторки начали закрываться и яркость снижалась. Из этой информации легко вычисляется выдержка и время переключения шторок в фотоаппарате, но кому это надо? .
Режим вывода «в окне» означает, что линии всегда выводятся целиком, то есть кадры всегда синхронны развертке, но что будет происходить при скорости вывода ниже 60 к/с? Вообще-то, должно последовать повторение кадра. Сделаем еще один снимок:
Никакого оптического обмана, «зеленые» маркеры ярче других, они показываются на экране дважды. Если не очень заметно, то приведу еще один снимок при тех же условиях:
На данном снимке ярче стали голубые маркеры, сравните с предыдущим случаем. Эффект повышения яркости связан с двукратным показом этого (голубого) маркера. Разберемся подробнее, как это происходит. Вначале формируется кадр с «зеленым» маркером, затем «красным» и «голубым». После этого игра не успевает сформировать кадр на момент появления синхроимпульса и система вывода начинает повторный показ того кадра, что был ей передан ранее, то есть с «голубым» маркером.
В результате это место на экране подсвечивается в два раза дольше, по сравнению с соседними маркерами, и оно фиксируется «ярче». Во время открытых шторок происходит накопление заряда в матрице фотоаппарата, который пропорционален яркости и длительности. К слову, именно поэтому при съемке ярких композиций устанавливается малая длительность, а темных – продолжительная.
Переходим к режиму «полное окно» с отключенной синхронизацией.
Маркеры уже отличаются длиной не во весь экран, что говорит о наличии нескольких кадров в пределах одного изображения. Впрочем, пока это не важно, обратите внимание на ту особенность, что окончание одного маркера всегда означает начало следующего.
Вначале красный переходит в синий, затем белый в зеленый и красный в синий. Так и должно быть, интерфейс на монитор передает изображение построчно, поэтому смена кадра вывода на передней поверхности не может изменить то, что было передано ранее. Для данного случая вначале выводится кадр с красным маркером, затем он был замещен кадром с синим маркером (и так далее) и это замещение четко прослеживается на экране монитора.
реклама
Важный момент, настоятельно прошу запомнить – начало следующего маркера обязано совпадать с концом предыдущего. В обязательном порядке, это жестко задано условиями передачи данных на монитор. Единственное «но» – во время обратного хода луча (переход от нижней стороны экрана к верхней) изображение не выводится, поэтому «стыки» между маркерами не видны. Увы, это очевидный недостаток метода и придется «догадываться».
Тестовый стенд и ПО
Измерение характеристик и съемка результатов осуществлялась на следующем оборудовании:
- Процессор: 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)
Маркеры специально подобраны по цветовому оттенку – серый (точнее желтоватый) и красный соответствуют четным кадрам, а голубой и зеленый – нечетным. Впрочем, понятия «четный» и «нечетный» чисто условны, программа лишена привязки к какой-то конкретной видеокарте из пары.
Соотношение длительности показа четных и нечетных кадров неодинаково – одни короче других, причем заметно. Это явная «особенность работы CrossFireX» и она хорошо предсказуема. Но чем именно вызвана рассинхронизация видеокарт? Может, высокой частотой кадров? На приведенном фрагменте указано 395 к/с. Возьмем другую сцену,… а лучше ту же самую, но несколько иначе.
Позволил себе вольность интенсивно «покрутить головой», множество перекрещенных линий в центре являются следами от единственного провода на заднем фоне. Тихо продолжаю «восхищаться» картинкой с отключенной синхронизацией. Впрочем, извините, статья не о том.
На приведенной картинке «хорошее» соотношение длин кадров и это при том, что ни место, ни скорость кадров существенно не изменились. Но 400 к/с не показатель, стоит понизить планку.
Скорость уменьшилась до 236 к/с, как и число сегментов на экране (четыре, против восьми на предыдущей картинке), а в остальном изменений нет – все маркеры одинаковой длины. Попробую найти место с более низкой скоростью кадров, 236 все же многовато.
Все то же самое, кадры выводятся нормально. Вывод на экран довольно «размешенный», а как обстоят дела со случаем кратного соотношения скорости кадров и регенерации экрана?
Скорость построения 120 к/с, на экране показываются два кадра, причем весьма стабильно. Привязка к кадровому синхроимпульсу отсутствует вовсе, поэтому смена сегментов отдельных кадров происходит в средней части экрана. К картинке претензий нет и можно уже радоваться? Или стоит вспомнить о первой картинке?
Да нет, дефект на том же месте – длительность показа четных и нечетных кадров различается. Логика прослеживается, но весьма смутно, требуется больше данных. Значит, снимем еще.
В первой строчке собраны снимки с «нормальным» соотношением длительности вывода кадров, во второй – «проблемные». Анализ пока проводить рано.
Borderlands 2 (Direct3D9)
Еще одна игра на DirectX 9, схожая с предыдущей, но есть и отличия – в ней отсутствует «привязка» к двум ядрам и она спокойно масштабируется на большее количество потоков. Это означает, что следует ожидать более плавного построения картинки, что и наблюдается – игра Borderlands 2 идет значительно «мягче» Borderlands. Посмотрим картинки:
Игра демонстрирует как нормальный режим вывода кадров (первая строка таблицы), так и «с проблемами» (вторая строка).
Что интересно, переход из одного состояния в другое может произойти в любой момент времени без видимых воздействий. Например, в абсолютно «спокойном» месте, два снимка подряд:
Соотношение длительности фрагментов может быть как фиксированным, так и «плавать» между «устойчивыми» состояниями.
реклама
Страницы материала
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила