[Перевод] F1 2015: новый уровень реалистичности на PC

F1 2015 — самая свежая игра из серии Formula One. Она выпущена компанией Codemasters, в её основе — специальная версия их игрового движка EGO. Игра была создана практически полностью с нуля, новый движок значительно улучшил и качество картинки, и возможности искусственного интеллекта.

EGO — первая разработка Codemasters, нацеленная на восьмое поколение игровых консолей (PS4 и Xbox One) и на платформу PC. Архитектура нового движка была спроектирована из расчёта на работу с многоядерными процессорами, которые используются в вышеупомянутых консолях. Кроме того, компания стремилась создать масштабируемую платформу, которая позволила бы эффективно задействовать ресурсы современных компьютеров.

5793e2102f824743a309b8772489ea9b.jpg

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

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

03dcc92a4b7e38c7b457b047b2ff20c1.jpg


F1 2015

Адаптация к аппаратному обеспечению PC


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

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

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

В наши дни всё изменилось. Так, консоли восьмого поколения, и PS4, и Xbox One, теперь оснащают процессорами с восемью ядрами. Каждое из них — это высокоэффективный вычислительный блок, обладающий сравнительно низкой производительностью. Игра задействует шесть-семь таких ядер. То, что осталось, предназначено для операционной системы.

С современными компьютерами — та же история. В них устанавливают процессоры с числом ядер от двух до восьми. При этом, если ядро, с помощью технологии наподобие Intel Hyper-Threading (Intel HT), поддерживает технологию одновременной многопоточности, оно выглядит для ОС как два логических процессора.

d21f1945fa454cadb8bb25f4e61301ee.jpg

Болид RedBull 2016 года

Это означает, что PC-игра может задействовать до 16 логических процессоров, часть ресурсов которых достаётся и операционной системе. Поэтому старый подход не применим к новому аппаратному обеспечению, и, если код для консолей можно оптимизировать в расчёте на конкретную конфигурацию, то играм для компьютеров нужно уметь адаптироваться к имеющимся ресурсам.

Первые испытания на PC


Когда близилась дата выпуска игры, 10 июля 2015 года, стало ясно, что новый движок эффективно использует многоядерные процессоры, и то, что показатели его производительности серьёзно отличаются от ранних версий F1, которые были спроектированы для предыдущего поколения консолей. Вот как выглядит сравнение рабочих нагрузок на CPU и GPU для F1 2014 (слева), и F1 2015 (справа), которые запущены с максимальными настройками качества и ничем не ограниченной частотой кадров.

9cae5f2e8cb19ab1762ea125d4a1fbe0.jpg


Анализ F1 2014 (слева) и F1 2015 (справа) в GPUView

Изображения сделаны с использованием Microsoft GPUView (этот инструмент включён в Windows Performance Toolkit, как часть Windows Platform SDK). Здесь показано, насколько хорошо распределяется работа между процессором и видеоядром. GPUView, кроме того, можно использовать для поиска проблем с синхронизацией и недостаточной загрузкой видеокарты. Это можно видеть в верхней части изображения, ниже она показана в увеличенном виде.

78176069410b3b950e5062a676160524.jpg


Нагрузка на GPU в F1 2014 и F1 2015

Разрывы фиолетовой линии в верхней левой части изображения указывают на перерывы в работе GPU в F1 2014. Это означает, что видеокарта простаивает и ничего полезного не делает. При этом производительность F1 2014, на исследованных высокопроизводительных системах, не упирается в возможности GPU. На разрешении в 1080p игра была ограничена лишь производительностью процессора.

2cbe55230d504abd9e1f598497086dce.jpg
Болид Ferrari 2016 года

Соответствующая линия справа (синяя) разрывов не содержит. Это означает, что в F1 2015 GPU всё время нагружен. На рисунке, показывающем полную картину нагрузки системы, линии ниже жёлтого разделителя показывают загрузку потоков процессора. В F1 2014 (слева) один поток почти постоянно загружен, он ограничивает производительность. Взглянем ближе на эту часть изображения.

568aec04ad29d63419bad32bb3f9a072.jpg


Распределение нагрузки на потоки

Разные цвета, использованные для раскраски полосок, представляют логические процессоры системы. Изменение цвета потока означает, что он периодически исполняется на разных логических процессорах в пределах одного кадра.

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

Если совместить анализ CPU и GPU, можно заметить, что F1 2014 была ограничена критическим путём через движок, который готовит данные для графического API, нагружая один поток. Таким образом, F1 2014 представляет собой классический пример применения движка, спроектированного для работы на игровых консолях предыдущих поколений, когда нагрузка оптимизирована для хорошей работы на быстрых двухъядерных процессорах, с некоторыми улучшениями при переходе к четырёхъядерным. Но добавление большего количества ядер не даёт ощутимых преимуществ, так как ограничивающий фактор — это единственный главный поток рендеринга.

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

48ea2094e60ae1d0f26c74bf141ac6bc.jpg


Анализ F1 2015 в GPUView при 60 FPS

Программисты компании быстро обнаружили, что компьютеры значительно быстрее консолей, для которых они выполняли большую часть оптимизаций. Достижение обычной скорости обработки кадров в 60 FPS (на вычисления отводится 16 мс.) на консолях потребовало немалых усилий. А при испытаниях на 4-м поколении процессоров Intel Core (например, Intel Core i5–4670), оказалось, что процессор выполнял всю необходимую работу за меньшее время, чем требуется для создания кадра. Во многих случаях — быстрее, чем за 10 мс.

На вышеприведённом рисунке показан анализ игры в GPUView при ограничении скорости обновления экрана, установленном на 60 Гц. Более быстрые процессоры, например, такие как Intel Core i7–6900K 6-го поколения, делают дисбаланс ещё заметнее.

Вот, как выглядит анализ игры при разблокированной частоте кадров в системе с установленным процессором Intel Core i7–5960×5-го поколения и видеокартой NVIDIA GTX980.

ec3d57ad5665df8d264f6ba355b4606f.jpg


Игра с разблокированной частотой кадров, запущенная на Intel Core i7–5960x c 8 ядрами (16 потоков) в GPUView

В сравнении с четырёхъядерным процессором (самый первый рисунок, на котором сопоставлены F1 2014 и 2015), в системе, основанной на Intel Core i7–5960x с 16 логическими процессорами, CPU простаивает немалую часть времени, необходимую для подготовки кадра.
Всё это значит, что новый движок выигрывает не только от увеличения однопоточной производительности, но, что самое главное, способен извлечь пользу из дополнительных ядер процессора.

Результат показывает, что Intel Core i7–5960x с шестью задействованными ядрами, может обойти четырехъядерный i7–6700k, тактовая частота которого выше.

Эти первоначальные испытания, которые показали, что GPU уже был полностью загружен, изменили приоритеты оптимизации на PC. Улучшения, касающиеся видеокарты, продолжились, но вместо того, чтобы тратить ресурсы разработчиков на оптимизацию подсистемы рендеринга на CPU (такую, например, как передача части работы видеоядру), студия начала исследовать другие способы оптимизации использования процессора для улучшения впечатления пользователей от игры и повышения её реалистичности.

Улучшение реалистичности


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

f989d45254554794801f1c56fa932e89.png
Болид Mercedes-Benz F1 W07 Hybrid, представлен в 2016 году

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

Озвучивание игры


Улучшение игрового звука стало первым направлением оптимизации. Этот подход, с одной стороны, поддаётся масштабированию в зависимости от имеющегося аппаратного обеспечения, с другой, позволяет улучшить впечатления от игры, не затрагивая при этом игровой процесс.
Поддержка звука в F1 2015 реализована с помощью промежуточной подсистемы, которая создаёт собственный поток для микширования звука средствами процессора.

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

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

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

При наличии значительно более мощного процессора, с потенциально большим количеством процессорных ядер, для обработки задач микширования, операционная система вряд ли попытается запланировать выполнение неких дополнительных задач на логическом процессоре, назначенном потоку обработки звука. Соответственно, оказалось возможным добавить в PC-версию игры поддержку высококачественного звука. А именно, речь идёт о следующих улучшениях.

  • Увеличение числа автомобилей, вносящих вклад в звуковую картину, складывающуюся вокруг игрока. А именно, с 6 (5 автомобилей, которые контролирует искусственный интеллект и одна машина игрока) до 11 (соответственно, 10 противников и один игрок).
  • Удаление некоторых ограничений на число объектов, в результате больше источников звука воспроизводится при переходе от одного объекта к другому, что позволяет избежать внезапных «обрывов» звука.
  • Замена некоторых эффектов реверберации из используемой подсистемы обработки звука на более совершенные. Использование более сложных алгоритмов, обработка большего количества отражений звуков. Использование заранее созданных файлов импульсов для достоверной симуляции различных окружающих условий. Например, это проезд около трибун, движение по мостам, туннелям. Кроме того, в звуковую картину вносят вклад и барьеры вокруг трассы, и проезжающие мимо автомобили.


Система частиц и симуляция погодных условий


Ещё одним улучшением игры стала обновлённая система частиц. Прежняя версия этой системы была ограничена доступными ресурсами CPU и GPU игровых консолей. Визуальная составляющая строилась исходя из этих ограничений. Система частиц уже была основана на CPU. Вот, что рассказывает об этом программист графики из Codemasters Эндрю Райт.

«Мы предположили (и, надо сказать, правильно), что будем сильнее ограничены ресурсами GPU, нежели CPU, поэтому к разработке системы частиц всегда подходили с точки зрения её эффективной параллельной обработки на CPU.»

Это означает, что команда программистов начала работу с улучшения системы, которую можно масштабировать в зависимости от количества доступных ресурсов процессора. Более того, они могли это сделать так, чтобы улучшения, в то же время, не обязательно привели к увеличению нагрузки на видеоядро. У того, что поддержка системы частиц возложена на процессор, есть и другие преимущества, о которых рассказал Эндрю:
«Система, базирующаяся на CPU, отличается большой гибкостью. Она занимается обработкой столкновений с трассой для отдельных типов частиц, специально на это рассчитанных — в основном чего-то вроде гравия и травы. Это работает и для частиц, которые не видны, то есть, быстрое перемещение камеры покажет ранее невидные частицы в некоей промежуточной фазе движения. Столкновения могут вызывать звуковые эффекты. Эта часть работы очень сложно реализуется на GPU.»

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

12b156cb0c31ac1b309c8946ee48a138.png


Улучшенный эффект на гравии за пределами трассы

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

1b6008be0022f25fb4556387032fe17c.png


Улучшенное представление дымящихся шин

Хотя вышеописанные улучшения системы частиц весьма существенны, они видны лишь в короткие периоды, например, когда игрок или искусственный интеллект теряют контроль над автомобилем и он вылетает с трассы.

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

Одно из основных улучшений игры, на которое Codemasters делает особый упор в рекламных материалах — это усовершенствование управление автомобилями. В частности, значительно улучшено поведение машин на мокром дорожном покрытии. Езда во время дождя — это важная часть реальных гонок Formula 1. Многие трассы известны экстремальными погодными условиями, которые оказывают влияние на гонку. В таблице показана вероятность выпадения осадков во время гонки в режимах игры Champion и Pro. В среднем, при проведении 34% игровых гонок идёт дождь, по меньшей мене, некоторую часть гонки длительностью до четырёх часов.

Шанс выпадения осадков

Австралия (Мельбурн)
Малайзия (Куала-Лумпур)
Бахрейн (Сахир)
Китай (Шанхай)
Испания (Каталония)
Монако (Монте-Карло)
Канада (Монреаль)
Япония (Судзука)
Россия (Сочи)
США (Остин)
26.00%
55.00%
0.00%
48.00%
36.00%
38.00%
53.00%
33.00%
34.00%
24.00%
Австрия (Red Bull Ring)
Великобритания (Сильверстоун)
Германия (Хоккенхайм)
Венгрия (Будапешт)
Бельгия (Спа-Франкоршам)
Италия (Монца)
Сингапур
Бразилия (Сан-Паулу)
Абу-Даби (Яс Марина)
Мексика
43.00%
31.00%
37.00%
39.00%
47.00%
26.00%
39.00%
40.00%
3.00%
28.00%


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

17348a03735e40f7bbde6f5e1ad3aeab.pngБолид MP4–31 Макларен 2016 года

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

c387d7e83e9a7994941c3528c26cafb8.png


Отладочное изображение завихрений, показывающее движение водяных брызг

d303d6fe5820a9c9140c80cba681f3eb.png


Отладочное изображение завихрений, вид сзади

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

3827a0a412b60a46302c889d9659add9.png


Улучшение освещения

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

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

1d83e31b988747d2a81889abfe20b26d.png


Взаимодействие с водой на дороге

А вот капли воды, образующие след позади проезжающей машины в игре (слева) и при отладке в Intel INDE Graphics Performance Analyzer for DirectX.

ff590452008f354c171ab78b645110ce.png


След из капель воды

Последним усовершенствованием стала улучшенная симуляция дождя. Изначально в игре применялся простой алгоритм, использующий ресурсы видеокарты, который выводил несколько тысяч частиц дождя в каждом кадре, применяя к каждой капле силу тяжести, что заставляло их падать. В новой симуляции дождя большая часть обновлённой подсистемы переместилась на процессор, что позволило наладить её взаимодействие с данными о воздушных потоках, используемые в других частях игры. Число капель дождя было увеличено в десять раз, а отдельные капли уменьшены для того, чтобы пиксельное покрытие было примерно таким же. На рисунке ниже показаны отладочные изображения дождя, полученные с одной и той же позиции. На нижнем изображении — 217 тысяч капель, на верхнем, представляющем предыдущую версию игры, лишь 21 тысяча. Несмотря на возросшее число примитивов, реальное число пикселей, на которые подействовало улучшение, увеличилось незначительно — с 72 тысяч до 119.

09c7c9368a619e10b103a894d294eef1.png


Отладка симуляции дождя

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

Балансировка нагрузки на CPU в новых условиях


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

Контроль над нагрузкой на GPU достигнут благодаря двум подходам.

Первый заключается в том, что обработка вершин была перемещена из вершинного шейдера на CPU. Это уменьшило объём работы, выполняемый над вершинами на видеокарте. Такой подход не привёл к полному снятию нагрузки с видеоядра, но её удалось снизить вдвое. Таким образом, обработка в десять раз большего количества частиц означала пятикратный рост затрат на проведение операций с вершинами.

Второе значительное изменение состояло в снижении затрат на скорость заполнения кадра, например, при рендеринге дождя. Количество капель увеличилось в десять раз, но число пикселей, которые это затронуло, выросло лишь в 1,65 раза. В случае с завихрениями из водяной пыли, которые остаются позади машины, изменения оказались ещё более существенными. Так, увеличение числа вершин с 3 тысяч до 70, на самом деле, привело к уменьшению числа обрабатываемых пикселей с 5800 тысяч до 2500 тысяч, то есть — скорость заполнения пикселей, необходимая для реализации этого эффекта снизилась вдвое. В результате, эффект, для создания которого используется в 20 раз больше частиц, не потребовал серьёзного роста нагрузки на видеокарту при выводе изображения.

Балансировка нагрузки на CPU была выполнена благодаря распределению вычислений, связанных с частицами, между как можно большим числом доступных логических процессоров. На рисунке ниже показано распределение нагрузки на системах с четырьмя и шестью ядрами (и в первом и во втором случаях со включённой технологией Intel HT). Фиолетовые и красные блоки показывают системы обработки частиц и симуляции погодных условий во время очень сильного дождя на шестиядерном процессоре (12 логических процессоров). На таком процессоре расчётами для системы частиц занимаются 6 из 12 процессоров. На четырёхъядерном, соответственно, задействовано пять из восьми, но их ресурсы приходится делить с другими задачами в движке.

0c7bec248f59d2e68914f5e8e6cfa779.png


Балансировка нагрузки на CPU для 6-ядерной системы (слева) и 4-х ядерной (справа)

Игровой движок, задействованный в F1 2015, использует систему, основанную на задачах для распределения нагрузки. При этом есть предварительные установки для 2, 4, 8, 12 и 16 логических процессоров. Система пытается планировать задачи так, чтобы уменьшить любые зависимости и не перегрузить один из процессоров.

Как изменился внешний вид игры


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

46be936dc751d18c1662f5ef30e6df10.png


Водяные вихри, которые вызывают автомобили

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

c144e5b99c011f02c609083c972228b6.png


Занос

Масштабирование производительности


В F1 2015 имеется встроенный тест производительности, который использует текущие параметры графики и может быть настроен для запуска в различных погодных условиях. На рисунке показаны данные, полученные при выполнении встроенного теста в системе с Intel Core i7–5960x, с частотой, зафиксированной на 3.0 ГГц (это его базовая частота), и видеокартой NVIDIA TitanX. Там же можно видеть список использованных настроек. Показанные здесь данные — это среднее число кадров в секунду, полученное после полного выполнения теста.

38bc87617655d505720aadf9524a8b00.jpg


Масштабирование производительности на многоядерных системах

Количеств физических ядер процессора настраивалось через BIOS. Остальные параметры системы оставались неизменными. Тесты проводились и со включенной технологией Intel HT, и без неё.

b32b50ad4749027710dd1c50a6d15d95.png


Настройки теста

На системе, в которой были включены всего 2 ядра, при выключенной технологии Intel HT, игра не запускалась, так как такая конфигурация не соответствует минимальным системным требованиям. В целом, при прочих равных условиях, включение Intel HT увеличивало производительность примерно так же, как при подключении двух дополнительных ядер. А сравнение производительности в конфигурации с двумя ядрами и включённой Intel HT, и в конфигурации с Intel HT и четырьмя ядрами, дало увеличение частоты кадров на 79%. Переход к 6-ядерной конфигурации добавил ещё 17%. Использование же 8-ядерной конфигурации при включенной Intel HT дало увеличение производительности на 27% в сравнении с 4-ядерной конфигурацией и Intel HT. Тут нужно учитывать то, что полученные результаты нельзя рассматривать как некие абсолютные значения. Мы можем лишь утверждать, что они отражают результаты тестирования на конкретной системе.

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

Во всех тестах игре был доступен большой кэш размером 20 Мб, даже в сценариях с уменьшенным количеством работающих ядер. Полученные значения производительности нельзя автоматически распространить на системы с 4-ядерными процессорами той же архитектуры. Всё дело в другой тактовой частоте и в другом размере кэша. Фактически, большой размер кэша Intel Core i7–5960x позволяет игре показывать на нём лучшую производительность, нежели на процессоре с 4-мя ядрами, с похожей тактовой частотой, но с меньшим размером кэша.

Выводы


F1 2015 — передовой игровой проект, демонстрирующий то, как можно воспользоваться возможностями современных процессоров для улучшения звукового и графического оформления. Перераспределение нагрузки между CPU и GPU способно сделать игру привлекательнее без необходимости использования более мощной видеокарты. Благодаря наличию системы частиц, расчёты для которой проводятся на процессоре, в Codemasters смогли улучшить качество изображения F1 2015. Параллельно было усовершенствовано управление автомобилями, особенно — при плохой погоде. Было налажено моделирование визуальных эффектов с использованием игровой физики.

Позволив игровому движку полностью использовать возможности технологии Intel HT и всех доступных процессорных ядер, в Codemasters смогли достичь значительного повышения производительности игровых подсистем. Это позволило добиться быстрой работы игры даже с использованием сложного графического оформления.

© Habrahabr.ru