Видеокарты

Групповое тестирование 20 видеокарт в Half-Life: Alyx

⇣ Содержание

Прошло уже больше четырех лет с того момента, когда на рынке дебютировал первый серийный шлем виртуальной реальности современного образца — Oculus Rift. Но вряд ли его создатели предполагали, что пройдет не меньший срок, прежде чем игровая индустрия начнет воспринимать инновационную (хотя в действительности уже очень старую) технологию всерьез, а первые владельцы VR-шлемов (их еще называют HMD, Head Mounted Display — дословно «монтируемый на голову дисплей») все это время будут радоваться любому редкому поводу пустить передовую технику в дело. Да и в случае с Half-Life: Alyx вернее сказать, что это производители VR-систем перестали ждать признания от игроделов и взяли ход истории в свои руки. Глядишь, если бы не планы Valve на собственный шлем Index, компания никогда не вернулась бы к давно заброшенной, но горячо любимой гемеймерами франшизе. Да и, честно говоря, тот факт, что Half-Life: Alyx все-таки не превратилась в долгожданную третью часть, свидетельствует о том, что даже Valve пока не готова сделать крупную ставку на виртуальную реальность.

Как бы то ни было, среди немногочисленных проектов, для которых HMD — не опция, а необходимость, приквел Half-Life 2 занимает первое место по масштабу и значимости. К тому же в этой статье ни к чему рассуждать о перспективах домашнего VR (все уже сказано в нашем обзоре). На повестке дня техническая сторона игры. У Alyx довольно либеральные по современным меркам системные требования (видеокарта уровня GeForce GTX 1060 или Radeon RX 580), но всюду говорят, что в действительности требуется более серьезное железо. Нет ли здесь какого-то подвоха? Как выяснилось, есть, и не один.

#Настройки качества графики

Качество изображения в Half-Life: Alyx подчиняется главному переключателю Fidelity (от Low до Ultra), который меняет девять отдельных опций (см. таблицу). Только параметр детализации текстур настраивается индивидуально: при запуске на новом железе игра выбирает позицию автоматически и поддерживает ее вне зависимости от регулятора Fidelity. Однако для тестирования производительности мы всегда использовали высшее качество текстур по той причине, что оно вносит сравнительно небольшой вклад в нагрузку на GPU, зато его отлично видно по изображению.

Настройки качества графики в тестах
Low Medium High Ultra
Textures Ultra Ultra Ultra Ultra
Shadows Low Medium High Ultra
Characters Low Medium High Ultra
Fog Low Medium High Ultra
Flickering Lights Off On On On
Particles Low Medium High Ultra
Audio Low Medium High Ultra
Soft Cloth Off On On On
Ragdoll Count Low Medium High Ultra
High Quality Holograms Off On On On

Напротив, эффект остальных опций даже в совокупности трудно обнаружить на скриншотах, а вот на производительность они влияют чрезвычайно сильно. Half-Life: Alyx — пожалуй, самый вопиющий пример среди современных проектов, когда усиление графических настроек только съедает быстродействие, хотя не выражается в пропорциональном росте качества изображения. Но, забегая вперед, предупредим, что, пусть игра работает на достаточно легковесном движке Source 2, сбросить все параметры до минимума не всегда достаточно, чтобы гарантировать необходимую в VR-среде кадровую частоту 90 FPS. Тогда вступают в дело иные, тайные механизмы оптимизации, о которых мы сейчас поговорим.

Low

 

Medium

 

High

 

Ultra

Low

 

Medium

 

High

 

Ultra

Low

 

Medium

 

High

 

Ultra

Low

 

Medium

 

High

 

Ultra

Low

 

Medium

 

High

 

Ultra

На более-менее мощных игровых ПК с подходящим объемом оперативной памяти GPU (в бенчмарках видеокарт мы опустились вплоть до GeForce GTX 1060 и Radeon RX 590) игра позволяет установить любые параметры детализации, включая Ultra Fidelity вместе с текстурами наивысшего качества. Тем не менее и качество изображения, и быстродействие в неменьшей степени зависит от скрытых переменных, которых вы не найдете в списке настроек графики. Дело в том, что движок Half-Life: Alyx стремится поддерживать частоту обновления кадров не больше и не меньше 90 (в случае HTC Vive, Vive Pro и Oculus Rift) или 144 Гц (Valve Index) с вертикальной синхронизацией — и делает это, варьируя разрешение рендеринга. Таким образом даже слабое железо остается на плаву при агрессивных настройках графики, а мощные видеокарты выдают более четкое изображение за счет суперсемплинга.

Отключить динамическое масштабирование через графическое меню настроек невозможно. Кроме того, оно действует независимо от разрешения рендеринга в настройках SteamVR (для шлемов HTC и Valve Index). Единственную возможность взять алгоритм под контроль (а это, само собой, необходимо для сравнительного тестирования GPU) дает встроенная консоль Half-Life: Alyx. Необходимо запустить игру с аргументами -console -vconsole, открыть консоль клавишей «~» и ввести следующие команды:

vr_fidelity_level_auto 0 (отключает динамическое масштабирование)

vr_fidelity_level [1–8] (задает масштаб разрешения)

vr_perf_hud 1 (выводит данные производительности на экран — опционально)

К сожалению, нужные параметры нельзя просто включить в строку аргументов для запуска игры, и действуют они в пределах сессии. То есть при каждом перезапуске необходимо заново открывать консоль и вводить команды. Ключевой параметр здесь — vr_fidelity_level, изменяющийся в пределах от 1 до 8. Valve не говорит, какой множитель суперсемплинга соответствует тому или иному аргументу команды, но, если судить по выводу консоли, vr_fidelity_level 3 полностью отключает масштабирование, а разрешение в таком случае равно 2016 × 2240 (что соответствует 100 % в настройках SteamVR для HTC Vive Pro). Заметим, что кадр Alyx больше размеров экрана HMD в пикселах (у HTC Vive Pro и Valve Index — 1440 × 1600 на каждый глаз), но так и должно быть: линзы шлема требуют заранее искаженную картинку, в которую заложен резерв пространства по краям для коррекции перспективы.

В свою очередь, параметр vr_fidelity_level 1–2 означает даунсемплинг: 75 или 87 % от целевой площади кадра. Аналогично в пределах от 4 до 8 происходит суперсемплинг вплоть до 200 % (исходное разрешение 2854 × 3171). Линзы шлема вряд ли позволят отличить невооруженным глазом двукратный суперсемплинг от 151 или 174 % (vr_fidelity_level 6–7), а вот 132 % (vr_fidelity_level 5) можно считать оптимальным значением. При масштабировании кадра с исходным размером меньше 120 % целевого уже не исключено снижение качества изображения в силу особенностей оптики HMD, при vr_fidelity_level 1–2 — и подавно.

Из-за динамического масштабирования Half-Life: Alyx на сравнительно маломощных видеокартах выглядит хуже, чем на высокопроизводительных, хотя общие настройки графики могут быть одинаковыми, как и быстродействие. Для бенчмарков всех GPU мы зафиксировали vr_fidelity_level на уровне 3 (разрешение 100 %). Вот только продемонстрировать на скриншотах, как выглядит игра при различных значениях даун- и суперсемплинга, увы, не представляется возможным: SteamVR записывает в файл кадр исходного размера, а масштабирование происходит дальше по цепочке (тем более что скриншоты VR — это «кроп», который не соответствует ни целевому, ни оригинальному разрешению). Воспроизвести алгоритм масштабирования в фоторедакторе тоже нельзя — он наверняка сложнее и, возможно, содержит временнýю компоненту, комбинируя пикселы из нескольких последовательных кадров.

vr_fidelity_levelРазрешение рендеринга
1 1750 × 1944 75 %
2 1876 × 2085 87 %
3 2016 × 2240 100 %
4 2159 × 2399 115 %
5 2314 × 2571 132 %
6 2481 × 2757 151 %
7 2663 × 2959 174 %
8 2854 × 3171 200 %

Последний нюанс, который мы должны осветить перед тем, как приступим к анализу производительности, — это требования Half-Life: Alyx к объему оперативной памяти GPU. Как видно из таблицы, даже при минимальных параметрах качества графики и с разрешением рендеринга в 75 % от размеров целевого кадра игра занимает больше 6 Гбайт VRAM и, следовательно, требует выгружать часть данных в системную память, если на видеокарте распаян именно такой объем. Не удивительно, ведь GPU в каждый интервал синхронизации приходится формировать сразу два кадра. К счастью, 8 Гбайт Half-Life: Alyx уже хватает для любых настроек, за исключением наивысшего качества в комбинации с 200-процентным суперсемплингом. Тем более что в последнем случае и запросы к производительности таковы, что их может удовлетворить лишь тот ускоритель, которому больше 8 Гбайт локальной памяти положено по стандарту (и это, как вы понимаете, GeForce RTX 2080 Ti, а вовсе не Radeon VII).

Качество графикиПотребление VRAM, Мбайт
Low + Fidelity Level 1 6366
Low 6705
Medium 7308
High 7822
Ultra 7819
Ultra + Fidelity Level 8 8273

#Методика тестирования, тестовый стенд

Сегодня золотым стандартом для измерения производительности VR-игр является программа FCAT VR от NVIDIA. Благодаря тому, что она напрямую отслеживает события в API шлема — через интерфейс ETW (Events Tracing for Windows) для Oculus Rift и Steam VR для HTC Vive и Valve Index, — с помощью FCAT VR можно выявить не только общие факторы быстродействия, но и ряд переменных, специфических для VR-среды. А именно, процент отброшенных и синтезированных (репроецированных) кадров. Кроме того, FCAT VR дает оценку неограниченной кадровой частоты, которую могла бы развить тестовая система, если бы фреймрейт не был привязан к частоте обновления HMD.

Увы, FCAR VR версии 3.26, которая была доступна на сайте NVIDIA в период работы над обзором, оказалась несовместимой с актуальными версиями Half-Life: Alyx и/или Steam VR. Мы связались с разработчиками FCAT VR, чтобы решить эту проблему, но пока пришлось воспользоваться альтернативным ПО — OCAT.

Последняя тоже умеет внедряться в API событий HMD, но в случае с Half-Life: Alyx опять-таки возможности утилиты ограничены и не позволили собрать расширенную статистику кадров (отброшенные и синтезированные, а также неограниченный фреймрейт). К счастью, даже через интерфейс Direct3D, который в OCAT является стандартным источником данных, можно получить индивидуальное время рендеринга кадра и построить график задержки в ходе тестового отрезка, а это главное, что нужно для анализа производительности в VR-среде.

Все тесты были выполнены с помощью шлема HTC Vive Pro, который отличается высоким разрешением (1440 × 1600 на каждый глаз) и стандартной для VR частотой обновления 90 Гц. В настройках SteamVR была отключена опция Motion Smoothing.

Тестовый стенд
CPU Intel Core i9-9900K (4,9 ГГц, 4,8 ГГц в AVX, фиксированная частота)
Материнская плата ASUS MAXIMUS XI APEX
Оперативная память G.Skill Trident Z RGB F4-3200C14D-16GTZR, 2 × 8 Гбайт (3200 МГц, CL14)
ПЗУ Intel SSD 760p, 1024 Гбайт
Блок питания Corsair AX1200i, 1200 Вт
Система охлаждения CPU Corsair Hydro Series H115i
Корпус CoolerMaster Test Bench V1.0
Монитор NEC EA244UHD
Операционная система Windows 10 Pro x64
ПО для GPU AMD
Все видеокарты AMD Radeon Software Adrenalin 2020 Edition 20.4.2
ПО для GPU NVIDIA
Все видеокарты NVIDIA GeForce Game Ready Driver 445.87

#Участники тестирования

Прим. В скобках после названий видеокарт указаны базовая и boost-частота согласно спецификациям каждого устройства. Видеокарты нереференсного дизайна приведены в соответствие с референсными параметрами (или приближены к последним) при условии, что это можно сделать без ручной правки кривой тактовых частот. В противном случае (ускорители серии GeForce 16, а также GeForce RTX Founders Edition) используются настройки производителя.

Следующая страница →
 
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме
⇣ Комментарии
Прежде чем оставить комментарий, пожалуйста, ознакомьтесь с правилами комментирования. Оставляя комментарий, вы подтверждаете ваше согласие с данными правилами и осознаете возможную ответственность за их нарушение.
Все комментарии премодерируются.
Комментарии загружаются...
window-new
Soft
Hard
Тренды 🔥