957e7ed3

Microsoft рассказала о том, как работает обратная совместимость на Xbox One

Обратная совместимость на Xbox One крупное технологическое достижение в нынешнем поколении консолей. Два с половиной года назад Фил Спенсер (Phil Spencer) продемонстрировал в Лос-Анджелесе оригинальную версию Mass Effect для Xbox 360, работающую на аппаратной платформе Xbox One. После впечатляющего периода раннего доступа программа обратной совместимости развернулась в полную силу, и теперь игрокам доступны сотни проектов эпохи Xbox 360 для запуска на Xbox One, есть несколько улучшенных игр с поддержкой 4K на Xbox One X. О том, как именно работает обратная совместимость, журналисты Eurogamer побеседовали с Microsoft.



Кое-что просачивалось и ранее. Так, оригинальные исполняемые файлы Xbox 360 для архитектуры PowerPC, похоже, разбираются в промежуточный формат, а затем перекомпилируются в код, близкий к x86. Также упоминались некие блоки аппаратной совместимости, интегрированные в однокристальную систему Xbox One, чтобы упростить задачу эмуляции, но в целом до сих пор известно было мало.

«В принципе, у нас есть VGPU — графический процессор Xbox 360, перекомпилированный для x86, — и мы исполняем весь пакет операционной системы Xbox 360 в виртуальной машине, — пояснил Билл Стиллвелл (Bill Stillwell), руководитель Xbox Platform. — Мы берём каждую игру и перекомпилируем её так, чтобы она работала, но по сути она запускается по-прежнему в окружении Xbox 360, и наша команда трудится над игрой в несколько этапов».

На первом этапе команда собирает GPU-шейдеры, и то, что господин Стиллвелл называет «Просветления (Enlightenments)» — специальный термин, описывающий отправные точки для улучшения процесса перекомпиляции игр, предъявляющего требования к мощностям CPU, а не GPU. Это информация о том, какие инструкции игры предназначены для прямого доступа к оборудованию, точки вызова функций и так далее.

Задачу эмуляции значительно облегчает тот факт, что некоторые аспекты аппаратного дизайна Xbox 360 действительно встроены в чип Xbox One — в частности, поддержка форматов текстур и звука. Задача эмуляции весьма непроста, учитывая тот факт, что процессор Xbox 360 использует архитектуру PowerPC, весьма далёкую от x86 в Xbox One. Например, расчёты с плавающий запятой нужно адаптировать из 40-бит инструкций в 32-бит с потенциальными последствиями для таких аспектов игры, как обнаружение столкновений, но цель Microsoft ясна — иметь возможность исполнять игровой код на своей виртуальной Xbox 360 как можно ближе к оригинальному оборудованию. Так, чтобы сам исполняемый проект и не понял, что работает не на настоящей Xbox 360: то есть вне зависимости от того, как эмулятор преобразовывает данные, игре возвращаются ожидаемые ею от консоли значения.

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

Задача адаптировать код, разработанный для трёхъядерного 6-поточного 3,2-ГГц процессора PowerPC, под маломощные низкочастотные ядра x86 весьма нетривиальна. Теоретически, шесть аппаратных потоков Xbox 360 можно назначить на конкретные ядра процессора Xbox One, но всё несколько сложнее. Например, у Xbox One есть похожий на Windows планировщик потоков, который распределяет нагрузку, а у 360 он был фиксированным и предельно непротиворечивым. Поэтому при эмуляции Microsoft пришлось в целях совместимости переписать собственный планировщик потоков: как только запускается логотип Xbox 360, на консоли управление потоками переводится на рельсы старой консоли.

В основе своей обратная совместимость с Xbox 360 почти целиком полагается на эмуляцию. Она частично опирается на специальные аппаратные блоки и на некоторый секретный ингредиент (например, Microsoft не распространяется о том, как в эмуляторе реализована поддержка векторных блоков VMX128 из Xbox 360). Однако команда Microsoft сейчас находится на том этапе, что все возможности и функции Xbox 360 актуальная консоль Xbox One может повторить программно. И это впечатляет, ведь в конце эры Xbox 360 многие разработчики стали куда меньше опираться на программные стандарты вроде DirectX API и часто использовали доступ к оборудованию на более низком уровне, чтобы выжать из платформы больше — всё это делает перекомпиляцию кода сложнее.

 На Xbox One стали появляться и проекты для оригинальной Xbox в режиме обратной совместимости

На Xbox One стали появляться и проекты для оригинальной Xbox в режиме обратной совместимости

При разработке эмулятора важным этапом стала Halo Reach: после выхода обратной совместимости начали поступать сообщения прессы о том, что эта сложная игра исполняется хуже, чем на Xbox 360. Microsoft пришлось вложить немало сил и средств в разработку новой процедуры и инструментов тестирования, выявить проблемные места и обеспечить более высокую эффективность эмуляции. Теперь даже высококлассные игры порой исполняются лучше и плавнее, чем на оригинальной консоли. Частично это обусловлено тем, что команда ставила такую цель изначально, понимая, что мощности Xbox One позволяют выжимать из старых игр больше.

Microsoft придерживается в отношении обратной совместимости ряда принципов. Например, компания не меняет ни единой строчки кода или ресурсы игры, даже в сценариях, где это было бы нелишним. К примеру, проблемы с неравномерным рендерингом кадров в Halo 3 на Xbox 360 исправлены на Xbox One, но лишь за счёт дополнительной мощи GPU. Все улучшения осуществляются исключительно средствами эмулятора.

Кстати, новая методика тестирования помогла улучшить и работу игр Xbox One на обновлённой платформе Xbox One X, которая в силу некоторых архитектурных изменений тоже отчасти потребовала эмуляции. Xbox One X принесла не только улучшенную производительность, но и уменьшенное время загрузки ресурсов, 16-кратную аппаратную анизотропную фильтрацию и даже поддержку технологи FreeSync для синхронизации частоты кадров в играх с частотой дисплея. Вдобавок уже семь игр Xbox 360 получили принципиальные улучшения на Xbox One X вроде поддержки исполнения в родном разрешении 4K благодаря методу Хеччи, названному в честь разработчика Эрика Хеччи (Eric Heutchy), придумавшего технологию.

 Gears of War 3 исполнялась на Xbox 360 в разрешении 720p, а на Xbox One X масштабируется до полноценного 4K, так что разница оказывается колоссальной, вдобавок производительность существенно лучше

Gears of War 3 исполнялась на Xbox 360 в разрешении 720p, а на Xbox One X масштабируется до полноценного 4K, так что разница оказывается колоссальной, вдобавок производительность существенно лучше

«Когда игра визуализируется в оригинальный целевой рендер, наш виртуальный GPU Xbox 360 распознает размеры и масштабирует целевой рендер, так что мы получаем, по сути, копию ресурса с высоким разрешением, спрятанную в памяти Xbox One, — объясняет Билл Стиллвелл. — Игра не знает об этом, но поскольку мы имеем дело с эмулятором, когда эта поверхность используется как текстура на экране, мы можем подменить её на версию с высоким разрешением. Используются исключительно игровые ресурсы, и поскольку мы задействует этот RAM-кеш, всё это происходит очень быстро. Это случай, когда подход скорее штучный, чем фабричный. Нам приходится проходить каждую игру и оценивать, как она меняется, особенно когда мы используем ресурсы более высокого разрешения и масштабируем конечное разрешение в 9 раз (в 3 раза по каждой оси). В итоге мы добиваемся той же самой или более высокой производительности с текстурами повышенного разрешения».

 В Gears of War 3 на Xbox One X также появляются тени там, где их не было на оригинальной платформе: оказывается, они просто не успевали подгружаться из-за ограничений Xbox 360

В Gears of War 3 на Xbox One X также появляются тени там, где их не было на оригинальной платформе: оказывается, они просто не успевали подгружаться из-за ограничений Xbox 360

Порой результат улучшений на Xbox One X оказывается весьма впечатляющим. И не только с точки зрения роста количества пикселей, но и в области фильтрации текстур и повышенной детализации моделей, как в Fallout 3 и Halo 3. В играх Assassin’s Creed для Xbox 360, получивших улучшения на Xbox One X, существенно улучшены тени (они рассчитываются с повышенной в 9 раз детализацией). Точно так же предварительно рассчитанные и совмещённые с текстурами тени в Mirror’s Edges остались без изменений, а вот динамические получили возросшее разрешение.

 Игры не знают, что исполняются в гораздо более высоком разрешении, так что некоторые эффекты вроде освещения или глубины резкости могут выглядеть не так, как было задумано

Игры не знают, что исполняются в гораздо более высоком разрешении, так что некоторые эффекты вроде освещения или глубины резкости могут выглядеть не так, как было задумано

Halo 3 и Mirror’s Edge вдобавок получили поддержку HDR, что стало результатом работы команды обратной совместимости и группы продвинутых технологий (Advanced Technology Group). В теории все игры поколения Xbox 360, имевшие 10-битный конвейер рендеринга (вывод ранее осуществлялся всегда в 8-бит режиме), могли бы получить поддержку HDR, но это непросто. Например, не все игры использовали 10-битную обработку цветов на всём конвейере рендеринга. Вдобавок HDR-режим может несколько изменить игру визуально, и некоторые разработчики не согласны с этим.

 В Mirror's Edge на Xbox One X поддержка HDR несколько меняет стиль игры помимо роста разрешения

В Mirror’s Edge на Xbox One X поддержка HDR несколько меняет стиль игры

 В Mirror's Edge, несмотря на рост разрешения, предварительно обсчитанные тени не улучшаются при исполнении на Xbox One X

В Mirror’s Edge, несмотря на рост разрешения, предварительно обсчитанные тени не улучшаются при исполнении на Xbox One X

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

 В Assassin's Creed на Xbox One X улучшается не только разрешение, но и качество теней

В Assassin’s Creed на Xbox One X улучшается не только разрешение, но и качество теней

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

 В Fallout 3 полноценное разрешение 4K не мешает работе движка постобработки, включая полноэкранное сглаживание 4x MSAA. Впрочем, на дальней дистанции на Xbox One X, как видно, пропали некоторые деревья

В Fallout 3 полноценное разрешение 4K не мешает работе движка постобработки, включая полноэкранное сглаживание 4x MSAA. Впрочем, на дальней дистанции на Xbox One X, как видно, пропали некоторые деревья

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий