Как выжать FPS

Продлеваем жизнь видеоадаптера при помощи тонкой настройки API

Ни для кого не секрет, что эволюция пользовательского железа напрямую связана с выходом новых компьютерных игр.
Поэтому возможности видеосистемы современного компьютера выходят сейчас на первый план.
Постоянные анонсы новых видеокарт и игр, реализующих новейшие технологии, привели к ситуации, когда все большее количество новых игровых приложений отказывается запускаться на старом железе.
Самый простой и в то же время радикальный выход из такого затруднительного положения — апгрейд.
Но что делать, если его невозможно осуществить в ближайшее время?
Остается попытаться выжать максимум из своего железа твикингом — тонкой настройкой видеосистемы под конкретное игровое приложение.
Актуальность увеличения производительности в играх таким способом и есть тема сегодняшнего исследования.

Инструментарий

Существует множество программ для твикинга видеокарт.
Все они позволяют в той или иной степени увеличить производительность твоего компьютера в играх: одни путем тривиального увеличения тактовых частот GPU и памяти, а также изменения качества текстур, другие – настройкой ключевых параметров самого API, используемого игрой, будь то DirectX или OpenGL.
Для разгона и управления качеством отображения текстур наиболее универсальным средством является широко известная утилита — RivaTuner.
В качестве утилиты, позволяющей оптимизировать процесс рендеринга под конкретную игру, рассмотрим программу 3D-Analyze.
С нее и начнем.

Отладка на лету

Данная программа не нуждается в установке и имеет простой и интуитивно понятный интерфейс.
Основные разделы содержат настройки ключевых параметров DirectX и OpenGL.
Раздел с общими настройками (Custom) предназначен для включения счетчика кадров, подкрашивания MIP-map уровней, запуска ведения логов и т.д. — все они, как правило, используются при тестировании или отладке, в связи с чем нас мало интересуют.

Итак, рассмотрим раздел DirectX. В нем имеются 5 подразделов:

1. Performance;
2. Hardware Limits (cap bits);
3. Hardware Limits (features);
4. Pixel and Vertex Shader;
5. Game/Demo Files.

Наиболее актуальными для геймеров, обладающих, мягко говоря, не самым современным железом, являются разделы Performance и Hardware Limits (cap bits).
Последний предназначен в первую очередь для эмуляции различных функций, недоступных старым видеоадаптерам.
Это может помочь в случае, когда игра отказывается работать, ссылаясь на отсутствие полноценной поддержки видеоадаптером определенных технологий на аппаратном уровне.
Например, если у видеокарты на основе GeForce 440MX нет поддержки пиксельных шейдеров, можно провести следующие операции для запуска игр Prince of Persia: The Sands of Time и Silent Hill 3:

1. Запускаем 3D-Analyze.
2. В подразделе File Selection (напротив цифры 1) выбираем .exe-файл запускаемой игры.
3. В подразделе DirectX Device ID в графах VendorID и Device ID устанавливаем значение 1.
4. Затем необходимо включить эмуляцию — для этого в подразделе Hardware Limits (cap bits) ставим галочки напротив строк Emulate pixel shader, Emulate bump maps и Emulate max.sim.
5. Жмем Run (напротив цифры 2) и наслаждаемся игровым процессом.

Подобные действия можно проводить и с другими играми, требующими от DirectX 7.0 видеокарт поддержки pixel shaders.

Если протестированные настройки устраивают, имеется возможность создать bat-файл, выполняемый в момент старта игры.

Как известно, для видеокарт NVIDIA ахиллесовой пятой является скорость обработки пиксельных шейдеров версии 2.0 из-за пресловутой 32-битной точности их вычисления и неудачного внедрения специализированного языка программирования Сg.
Наиболее ярко данную ситуацию иллюстрирует игра Tomb Rider: Angel of Darkness.
Для увеличения скорости можно попробовать поиграть с настройками подраздела Pixel and Vertex Shader.
В нем имеется возможность ограничить версию используемых игрой шейдеров.
Например, применение настройки Skip pixel shader version 2.0 приведет к отключению пиксельных шейдеров версии 2.0.

Несмотря на старания разработчиков, иногда игры выходят с откровенными недоработками.
В этом случае 3D-Analyze можно использовать в качестве своеобразного дебагера.
Наверное, все помнят о «криво» реализованном использовании аппаратного блока T’n’L игрой GTA 3 — именно благодаря включению софтовой эмуляции T’n’L в подразделе Performance можно было значительно увеличить скорость в данной игре.

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

Следующий основной раздел — OpenGL.
К сожалению, здесь практически отсутствуют настройки, способствующие увеличению производительности в играх.
Единственное, что можно сделать — форсировать использование маленьких текстур.

Касательно нашей статьи, можно сказать, что 3D-Analyze, скорее всего, пригодится владельцам старых карточек на чипах NVIDIA GeForce 2MX, 4MX, ATI Radeon 7500 и им подобных.
Конечно же, не стоит ждать ничего сверхъестественного, и в старой видеокарте не появятся функции, присущие современным видеоакселераторам, — утилита может только «обмануть» игру, что в некоторых случаях позволит ей нормально запускаться на не самых современных компьютерах.
Порой при использовании 3D-Analyze в играх возникают глюки и различные графические артефакты.
Таким образом, программа 3D-Analyze является утилитой для эмуляции отсутствующих функций, увы, не всегда полноценной и не всегда качественной.

Критические настройки

Наиболее весомый вклад в увеличение производительности вносят правильная (оптимальная) настройка качества фильтрации (билинейная, трилинейная или анизотропная), а также количества сэмплов при полноэкранном сглаживании.
Значения этих параметров для каждой конкретной игры определяются мощностью используемой видеокарты и могут быть установлены как специальными утилитами (предпочтительно для видеокарт фирмы ATI), так и настройками в драйвере (наиболее удобно для карточек основанных на чипах NVIDIA).
Включение трилинейной фильтрации вместе с анизотропной очень сильно бьет по скорости в современных играх (возможности нынешних high-end графических чипов NV40 и R420 не рассматриваются), а если еще включить полноэкранное сглаживание, играть становится практически невозможно.

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

Видеоадаптеры NVIDIA

Рассмотрим фирменные технологии, применяемые в видеоадаптерах NVIDIA GeForce FX 5ХХХ.

Видеокарта GF FX 5200 (Ultra)

GeForce FX 5200 основан на чипе NV34.
Этот видеоадаптер оснащен CineFX версией шейдеров, впервые реализованной в NV30, и поэтому полностью соответствует спецификациям DirectX 9.0 .
Однако в чипе отсутствует ряд новейших технологий, применяемых для улучшения качества изображения и увеличения скорости работы.
Так, в NV34 не используются средства анизотропной фильтрации и полноэкранного сглаживания IntelliSample (по-прежнему применяется Accuview), поэтому уровень сглаживания можно выставить максимально до 4X (OpenGL и DirectX) или 4XS (DirectX) и отсутствует возможность применения адаптивной анизотропной фильтрации.
Очевидно, ядро было получено путем усечения NV25 и последующего добавления CineFX-шейдеров, таким образом, FX5200 — видеоадаптер начального уровня с поддержкой DirectX 9.0 .

Видеокарта GF FX 5600 (XT, Ultra)

Графические платы FX 5600 основаны на чипе NV31.
В отличие от NV34, он является урезанной версией NV30.
Облегчение коснулось только архитектуры чипа (уменьшено количество конвейеров и разрядность шины памяти), в то время как технологическое новшество в виде IntelliSample присутствует в полном объеме.

Видеокарта GF FX 5800 (Ultra)

Средства анизотропной фильтрации и полноэкранного сглаживания в видеокартах NVIDIA серии GF FX 5800 изменились по сравнению с 4-м поколением.
Они получили новое название — IntelliSample (вместо Accuview).
Так появились новые режимы сглаживания 6XS (только для DirectX) и 8X (OpenGL и DirectX).
Вместе с этим карты серии 5800 оснащены средствами адаптивной фильтрации.
Благодаря данной технологии освобождаются ресурсы видеосистемы за счет снижения уровня анизотропии, без значительного потери качества изображения.

Видеокарта GF FX 5900 (XT, Ultra, 5950, 5950 Ultra)

Предыдущая High-End-видеокарта оказалась во многом неудачной.
Высокая тактовая частота ядра и памяти требовали громоздкого охлаждения, а 128-битная шина памяти сильно ограничивала пропускную способность.
Исправляя ошибки, NVIDIA весной 2003 года анонсировала новый чип — NV35.
Помимо улучшения самой архитектуры графического ядра, инженеры NVIDIA разработали и новую версию средств анизотропной фильтрации и полноэкранного сглаживания — IntelliSample HCT (High Compression Technology).

Основными отличиями явились более эффективный алгоритм сжатия цветовых данных при полноэкранном сглаживании (эффективность выросла примерно на 50 процентов), а также технология расчета теней Ultra Shadow.
Стоит отметить, что последняя технология очень интенсивно используется в хите нынешнего лета — DOOM 3.
Суть Ultra Shadow состоит в следующем: для каждого источника света можно указать область, за пределом которой создаваемые им тени будут невидимыми.
Это дает возможность ограничить ненужные вычисления и повысить скорость в играх с большим количеством теней.

Видеокарта GF FX 5700 (LE, Ultra)

Данный видеоадаптер получен по образу и подобию FX5600 — путем урезания флагманского изделия.
На этот раз таковым явился чип NV35.
Произведенное на свет ядро NV38 оснащено полным набором фирменных технологий, направленных на увеличение скорости и качества изображения, присутствующих в NV35.

Настройка ForceWare

Рассмотрим возможности настроек драйвера ForceWare с целью нахождения оптимального соотношения «скорость-качество».

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

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

Следующий режим — Quality — является компромиссным вариантом, и оптимизация не сильно портит качество изображения.
Режим Perfomance отключает трилинейную фильтрацию, и становятся отчетливо видными полосы MIP banding’a (резко выделены границы MIP-уровней).

Последний режим — High performance (разреженное положение MIP-уровней, отсутствие трилинейной фильтрации) значительно портит качество изображения в играх.
Его использование оправдано лишь в редких случаях катастрофической нехватки производительности.

Применительно к играм надо сказать, что нежелательно выставлять режим ниже, чем Quality, конечно, если позволит скорость.
В ином случае все навороты придется просто отключить.

В настройках полноэкранного сглаживания присутствуют такие режимы (расположены по мере улучшения качества): 2X, Quincunx, 4X, 4XS, 6XS, 8X.
Режим 4Х используется, как правило, в качестве основного, так как обеспечивает наиболее принципиальное улучшение изображения, к сожалению, в ущерб скорости.
При нехватке производительности видеосистемы можно использовать режимы Quincunx и 2X.
Четкость картинки будет хуже, но и нагрузка на видеокарту значительно меньше.

Видеоадаптеры ATI

Рассмотрим фирменные технологии, применяемые в видеоадаптерах ATI Radeon 9XXX.

Видеокарта Radeon 9100

Этот видеоадаптер есть ни что иное, как реинкарнация старого доброго Radeon 8500.
Архитектура полностью соответствует R200, за исключением добавленной поддержки AGP 8X.
Соответственно, он содержит такие технологии, как HyperZ II, Smooth Vision, полноэкранное сглаживание, реализованное за счет использования суперсэмплинга.

Видеокарта Radeon 9000 (PRO), 9200 (PRO)

Ядро этого видеоадаптера RV250 не имеет ничего общего с R300.
Radeon 9000 построен на основе урезанной версии чипа R200, применявшегося в графических платах Radeon 8500.
На момент появления он конкурировал с DX7 видеокартами NVIDIA GeForce 4MX и обладал одним существенным преимуществом — полной поддержкой DX8.1.
Видеокарта Radeon 9200 является практически точной копией Radeon 9000 с единственным отличием – поддержкой AGP 8X.

Видеокарта Radeon 9500 (PRO), 9700 (PRO)

Видеокарта ATI Radeon 9700 являлась первым представителем DX9.0-совместимых видеоплат.
Ее основа — чип R300.
Он оснащен улучшенными средствами полноэкранного сглаживания и анизотропной фильтрации второго поколения — SmoothVision 2.0.
Для улучшения изображения также применяется адаптивная фильтрация и аппаратная гамма-коррекция.
Суть адаптивной фильтрации состоит в том, что для получения качественного отображения объектов при малых углах зрения и некоторой удаленности можно применить более низкий уровень анизотропной фильтрации, что позволяет увеличить скорость без значительной потери качества.

Для достижения бескомпромиссного качества в драйверах присутствует возможность выключения адаптивной фильтрации — с помощью переключателя Performance/Quality, размещенного в меню драйвера вместе с настройками уровней анизотропной фильтрации.
R300 был оснащен улучшенными средствами экономии пропускной способности шины памяти — HyperZ III (сжатие Z-данных с коэффициентом 2:1 и 4:1).
Видеоадаптеры 9500 и 9500 PRO также основаны на ядре R300 и, соответственно, имеют аналогичные технологии.

Видеокарта 9800 (SE, PRO, XT)

В ответ на выпуск NV35, ATI анонсировала новый графический процессор — R350.
По сути, он является модификацией R300.
Усовершенствования коснулись алгоритмов анизотропной фильтрации и полноэкранного сглаживания, а также работы контроллера видеопамяти.
Новые средства фильтрации и сглаживания получили название SmoothVision 2.1 .
По сравнению с SmoothVision 2.0 увеличена скорость в режимах полноэкранного сглаживания 4Х и 6Х благодаря более высокой эффективности работы с памятью.
Также повышена эффективность сжатия цветовых данных – максимальное сжатие 1:6 против 1:4 в NV35.

В этом ядре впервые была применена разработка F-buffer (Fragment Stream FIFO Buffer), что привело к новому обозначению версии пиксельных шейдеров — SmartShader 2.1 .
Его применение позволяет теоретически выполнять программы пиксельных шейдеров бесконечной длины.
Основным изменением в технологии отсечения невидимых поверхностей (HyperZ III+) стало достижение более эффективного сжатия Z-данных (максимальное значение 24:1 против 8:1 у R300) и оптимизация работы с двухсторонним буфером шаблонов.
Это позволяет снизить нагрузку на графический процессор при расчете динамических теней, что должно способствовать увеличению скорости в приложениях, подобных DOOM 3.

Видеокарта 9600 (PRO, XT)

Данный видеоадаптер построен на совершенно новом ядре RV350 и не является усеченной моделью Radeon 9800.
Ядро RV350 получено путем своеобразного скрещивания технологий R300 и R350.
От R300 досталась прежняя версия пиксельных шейдеров — SmartShader 2.0 и технология отсечения невидимых поверхностей — HyperZ III, а от R350 Radeon 9600 унаследовал средства анизотропии и сглаживания SmoothVision 2.1 .

Настройка ATI Catalyst

Для настройки параметров полноэкранного сглаживания и фильтрации необходимо установить контрольную панель или утилиту.
Одна из наиболее простых и в то же время достаточно содержательных утилит — RadLinker.
Во вкладках DirectX и OpenGL можно увидеть множество настроек, касающихся режимов FSAA и AF.
Для каждого из режимов AF существует два варианта — Quality и Performance.
В режиме Quality, в отличие от Performance, присутствует трилинейная фильтрация.
Наличие трилинейки существенно влияет на качество изображения в положительную сторону, но опять же снижает скорость работы.

Полноэкранное сглаживание представлено следующими вариантами: 2X, 4X, 6X.
Естественно, скорость растет при использовании менее качественного режима.

Выводы

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

Фильтрация и сглаживание

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

Автор: Руслан Юсипов