Перейти к основному содержанию

Технический провал консолей

Author: MadTeam / Дата: чт, 2016-11-03 05:04
Analytics

Смотря на консольные версии популярных игр нельзя не заметить плохую производительность. Куда делать « простая но мощная архитектура » или « консольная оптимизация с продвинутыми низкоуровневыми API »? Давайте разберёмся как консоли докатились до всего этого.

Поначалу, ещё до анонса от PS4 ждали Cell 2 с кучей ядер или же иной мощный CPU на основе PowerPC от IBM. Но Сони как и Microsoft удивили выбором платформы – SoC от AMD. Поначалу всё звучало очень интересно – 8 ядер, 8Gb GDDR5 (DDR3 для Xbox) и мощная графика, специально кастомизированная под консоли.

 

Частота процессора смущала сразу – 1.6Ghz против 3.2Ghz у PS3 и X360. Однако считалось, что это не будет проблемой, ибо GPU от AMD возьмёт на себя многие задачи CPU (GPGPU). AMD даже специально кастомизировала GPU консоли для лучшей работы GPGPU.

 

Фанаты как и PR отдел Сони орали во весь голос про простую но мощную архитектуру. Портировать игры будет легко, а мощный CPU вообще не нужен, всю емкую работу за него мол выполнит GPU.

 

Когда Unity стал выдавать 20 фпс в 900p на обеих платформах, это сразу же списали на плохую оптимизацию. Хотя что там оптимизировать если у них такая простая ПК архитектура? Затем в GTA5 были провалы до 20 фпс, которые потом фиксили пол года патчами. Тоже самое было и с Ведьмаком 3 и с Fallout 4. Все игры с открытым миром часто шли при 20-25 фпс. Иногда это удавалось пофиксить патчами через полгода-год, иногда наоборот после патча фремрейт становился ещё меньше... Just Cause 3 оказался вообще неиграбельным и выдавал 15 фпс, и никакие патчи ситуацию улучшить не смогли.


Что-то явно не вязалось с простой но мощной архитектурой. Скоро выйдет PS4 Pro, Eurogamer протестировал Rise of Tomb Raider и пришёл к выводу, что и у неё имеются серьёзные проблемы с 4К, и дело здесь не только в нехватки мощности для 4К рендеринга, но и в малом объёме памяти... Как так, хвалёных 8Гб оказалось тоже недостаточно?


Давайте обо всё по порядку.

 

CPU 

CPU всегда был главным элементом в консолях. На его разработку тратились огромные деньги, его делали специально с заделом на будущее. Emotion Engine на PS2 был уникальным, имея пару со-процессоров он очень шустро и гибко работал с графикой. По сути он опередил своё время. Но под него было очень сложно разрабатывать игры, и тем более портировать. Отсюда первые порты были как правило хуже чем даже на более старом Dreamcast, не говоря уже о мультиплатформе, которая в 99 случаев из 100 была хуже на PS2. Зато эксклюзивы заточенные под Emotion Engine блестали отличной графикой, часто опережающей своё время. И если Silent Hill 2 летал на PS2 (300Mhz, 32Mb RAM, 4Mb VRAM), то на ПК он требовал 1Ghz CPU, 128Mb RAM, 64Mb VRAM и GPU с поддержкой шейдеров. И даже со всем этим, пришлось упростить туман и тени. Т.е на то время на PS2 была лучшая версия требовавшая CPU с в 3 раза более низкой частотой, в 4 раза меньше RAM и в 16 раз (!!!) меньше VRAM. И на этой самой PS2 без всяких апгрейдов были ещё SH3, SH4... Что бы понять насколько уникальна была консольная архитектура, взгляните на системные требования для Silent Hill 4 – 2Ghz CPU, 512Mb RAM и GPU уровня GeForce 4 Ti (вышёл 2 года спустя после PS2).

 

С PS3 ситуация вышла похуже. Cell был уникальным и очень быстрым. В сониэксах был очень крутой на то время графон, в клочья рвавший Xbox 360. Читая PDFки разработчиков Uncharted и God of War 3, понимаешь, что Cell использовался ими в том числе и как второй GPU.


Да, в 2006 году у консоли был 8 (7) ядерный чип работающий на частоте в 3.2Ghz. В 2006 году у Intel например были лишь 2 ядерные CPU с частотой что-то вроде 2.13Ghz (2.93 у Core 2 Extreme). Это как если бы у PS4 было бы 20 мощных ядер по 6Ghz.


Представьте что было бы, если бы у PS3 стоял не Cell, а двухъядерный x86 2Ghz CPU? О графическом величии можно было бы просто забыть. Всё работа с графикой бы упала на GPU. А так Cell брал на себя часть работы с графикой (ту в которой его SPE блистали скоростью) и освобождал ресурсы GPU под другие нужды.

 

Но проблема заключалась в том, что Сони потратила более 1 млрд на разработку данного чипа, что слишком дорого для компании с таким сложным финансовым положением. И среди разработчиков была самая настоящая истерика связанная со слишком высокой сложностью разработки. Сони даже пришлось создавать спец команду программистов, которые помогали сторонним разработчикам оптимизировать код под Cell. Например Kojima Production смогли выпустить свой MGS4 только после помощи программистов из Сони.


Портировать игры с ПК и Xbox 360 оказалось сложно. Мультиплатформа страдала, и в ней преимущество было в целом за консолью от Microsoft с более простым (3 PPC ядра, против 1 PPC + 6 SPE ядер у Cell), но так же довольно мощным для своего времени (2005 год, он значительно опережал x86 аналоги) CPU.


Ситуация сложилась следующая – на создание мощного и уникального CPU нужно много денег, которые лучше потратить на маркетинг и игры. Используют его как следует только внутренние студии в эксклюзивах, а мультиплатформа в основном страдает, разработка игр становиться дольше и дороже. В эпоху мультиплатформы Сони (как и Microsoft и даже Nintendo) решила сделать ставку на гораздо более простую x86 архитектуру. Так их следующая консоль и получила 8-ми ядерный Ягуар.


Начнём с того, что для игр там доступно не 8, а всего 6 ядер (7 у Xbox One после оптимизации ресурсов OS). Это ОЧЕНЬ слабые ядра. PC аналог Athlon 5150 (4 ядра Ягуара на 1.6Ghz) выдаёт в GeekBench 4 2561 балл, на 6 ядер там будет 3841 балл. Для сравнения, Intel Pentium G3250 за 55$ выдаёт 4872 балла (2 ядра по 3.2Ghz). Даже смартфон Samsung Galaxy S7 (ARM, 8 ядер, Exynos 8890, 1.6Ghz) выдаёт 5204 балла. Будет смешно, если процессор Nintendo Switch выдаст больший балл, чем 8 ядерный Ягуар...

 

В PassMark AMD Athlon 5150 выдаёт 2070 баллов, на 6 ядер будет 3105 баллов. У Intel Pentium G3250 – 3298 баллов.


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


Вот ещё тест Dolphin Benchmark, в плане производительности на одно ядро, Athlon 5150 (Ягуар 1.6Ghz) показал результат в 3 раза хуже Nintendo Wii (PowerPC 729Mhz, это разогнанный в два раза процессор GameCube, консоли 2001 года). Да, вы не ослышались, разогнанный CPU Геймкуба (2001) показал в 3 раза лучший результат на ядро, нежели ядро Ягуара!

 

В GeekBench 4 на одно ядро Athlon 5150 выдаёт 884 балла, против 1786 баллов у Galaxy S7. Двукратное отставание от смартфона конечно впечатляет. Те кто говорят, что у PS4 планшетный CPU – отстали от жизни, даже у смартфонов теперь более быстрые и продвинутые CPU. У одного ядра iPhone 7 – 3298 баллов, это в 3.7 раза больше чем у PS4.


CPU Playstation 4 Pro соответствует примерно Athlon 5370 + 50% за 6 доступных ядер. Это ОЧЕНЬ слабый CPU.


У Xbox One дела чуть получше, вместо 6 ядер там доступно 7 по 1.75Ghz. Но сути это не меняет, хотя фремрейт иногда получше PS4. Это теже, очень медленные ядра. Надеюсь в Xbox Scorpio используют уже архитектуру AMD Zen.

 

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


Unity – эта игра очень процесcоро зависимая :

 

 

Memory


Во время анонса PS4 фанаты просто визжали от радости! 8Гб сверхбыстрой памяти для игр, кричали они. Реальность оказалась куда хуже. Под игры доступно всего 5Гб у PS4, и 5.5Gb у PS4Pro/X1. Остальное отдано под систему (куда ей интересно столько?).


Уже сейчас разработчики жалуются на недостаток памяти. Хотя ситуация получше, чем с PS2/PS3.


Хуже всего пришлось PS4 Pro, у неё всего на 512Мб больше памяти для игр, хотя она по идеи должна выводить картинку в более высоком разрешении. На ПК для 4К нужно гораздо больше VRAM под буфер без AA, и ещё больше если с AA. Т.е 10% увеличение доступной VRAM явно недостаточно для 4К консоли (но достаточно для 1440p). Но это только под буфер, о 4К текстурах и серьёзных графических улучшениях речи не идёт – под это просто нет места в памяти. В том же ROTR подняли разрешение, а всё остальное осталось как на Xbox One, включая текстуры. Ибо тупо не хватило памяти.

Т.е для обычной PS4 всё лучше, чем было ранее, а для PS4 Pro дела в этом плане обстоят очень плохо. У Nintendo Switch будет 4Gb, неизвестно сколько из них будет свободно для игр. Для 720p планшета с графикой PS3 это не плохо.

 

GPU


Видеочип Xbox One это полный провал. Аналог Radeon HD7790, только с медленной DDR3 памятью. Почти все игры для платформы идут в 720p-900p.


У PS4 дела гораздо лучше, у неё стоит аналог HD 7870. Хотя прямо сравнивать их нельзя, учитывая, что очень слабый CPU будет влиять на результаты. Слабый процессор урезает возможности более мощного видеочипа. На PS4 Pro всё ещё ГОРАЗДО хуже, там фактически удвоили мощь GPU, однако CPU стал быстрее лишь на 30%, а памяти стало больше лишь на 10%. Т.е смысл в таком апгрейде весьма сомнителен. О 60 фпс в 1080p во всех играх можно смело забыть для PS4 Pro, всё упрется в CPU, даже если GPU на такое способен.


Им надо было ставить второй CPU и добавлять ещё 2-3Гб VRAM.


Сложно сказать, почему данный GPU не тянет все игры в 1080p. 900p или даже 800p для аналога 7870 это как-то не очень. Может разрешение урезают в угоду Xbox 1 (хотя Order 1886 это опровергает), а может просто есть какие-то другие нюансы (трата ресурсов на GPGPU задачи, недостаток памяти под буфер итп).

 

Nintendo Switch


Это следующая консоль от Nintendo, которая будет экипирована SoC Tegra. CPU ядра будут скорее всего Denver 2. Как вы уже знаете из прочитанного выше, одно ядро A10 в iPhone 7, по скорости ровняется 3.7 ядрам Ягуара в PS4. Если Nvidia приблизится к этому показателю, то в теории 2 ядра Денвера могут оказаться быстрее шести жутко слабых ядер Ягуара.


GPU там будет на архитектуре Pascal с 256 ядрами CUDA. Для сравнения, у GTX 1050 (гораздо быстрее PS4 в реальных играх, 58 fps в GTA5 на ультре) их 640, хотя сравнивать так на прямую нельзя, у 1050 и частота чипа гораздо выше и память быстрее. Думаю производительность этой тегры будет 1/6 от GTX 1050.


Памяти будет 4Гб, однако не ясно насколько она будет быстрой у Свитча (у Тегры LPDDR4 50Gb/s) и сколько будет свободно для игр, а то фанаты Нинтендо сначала радовались 2Гб у Wii U, потом выяснялось что под игры выделено только 1Гб жутко медленной памяти.


Но всё это только теория. Реальность мобильных платформ совсем иная. Playstation Vita хвасталась 4-х ядерным CPU с частотой 2Ghz и мощной трехъядерной графикой. Коридорные шутеры шли с крутой графикой. Однако игры с большим миром выдавали совершенно неиграбельные 10-15 фпс. Это было странно видеть 10 фпс в Jak & Daxter, который в оригинале на PS2 летал при 60 фпс.


Тайна слабости Виты была раскрыта уже потом. Оказывается её CPU работал на дефолтной частоте в 333Mhz (максимум 444Mhz, минимум 44Mhz), а GPU на 111Mhz (222Mhz в Killzone только при отключённом WiFi).


Такова реальность мобильных игровых платформ. Даже если в Switch и будет стоять самая мощная мобильная SoC, то она всё равно упрется в слабую батарейку. 2Ghz Виты превратились в 333Mhz в реальных играх, из-за чего игры с открытым миром показывали слайдшоу. Автономность при этом была тоже не ахти – 3 часа. Той же Nvidia для нормальной автономности Tegra 4 и пришлось ставить большую батарейку (7350mAh для устройства с 5 дюймовым экраном, против 2200 mAh у Vita, это в 3 раза больше батарейки Wii U с 6.2 экраном) в Shield Portable и активное охлаждения чтобы чип мог долго работать на максимальной частоте без троттлинга.

 

Выводы следующие – современные консоли страдают от очень слабых CPU. Эту ситуацию уже не исправить. GPU у Xbox One явно недостаточно для 1080p. У PS4 стоит мощный GPU, но его производительность упирается в слабый CPU. PS4 Pro наименее сбалансированная система – при мощном GPU, 6 ядер её CPU слабее двух ARM ядер нового Айфона 7... Так же она страдает от недостатка памяти для 4К текстур и прочих графических фишек, которые могли бы улучшить, будь у неё больше памяти.


Если в Xbox в 2001 году поставили Pentium III 733Mhz (довольно мощный CPU по тем временам) и GPU опережающий всё что тогда было на ПК рынке. То в PS4 уже поставили CPU слабее самых бюджетных Пентиумов и GPU двухлетней давности. Консоли получились без потенциала и задела на будущее. Мультиплатформа всё чаще идёт в 900p и 20 фпс.


Я считаю, что Сони нужно было добавить в PS4 ещё и Cell (например новую версию PowerXCell 8i, у которой производительность SPE выше почти в 8 раз). Тогда бы они смогли сделать и обратную совместимость, и у платформы было бы куда больше (во много раз) CPU мощи. Для OS там нужно было ставить 2Гб DDR3, оставив все 8Гб GDDR5 под игры.

 

OS консолей это отдельная тема. Операционная система Xbox 360 использовала 32Mb общей памяти. OS PS3 использовала 52Мб (XDR) + 32Мб (VRAM) после долгих оптимизации (поначалу было 120Мб XDR). OS Wii U уже требовала 1Гб, PS4 – 3Gb, X1 – 2.5Gb. Куда простым консольным OS 2-3Gb памяти – загадка... Они вполне могли бы уложится и в 512Mb.

 

Я очень надеюсь на мощный AMD Zen CPU в Xbox Scorpio + 12Gb RAM и мощная графика. Если эта платформа станет успешной, тогда в PS5 тоже могут поставить мощный процессор. Так же я желаю провала Switch, чтобы Нинтендо наконец-то осознала всю никчёмность своего похода (должна была осознать сразу после провала Wii U). А пока, лучшую графику и 60 фпс может предложить лишь мощный ПК.

 

сорри за ошибки и опечатки. давно ничего не писал.

Комментарии (161 Комментарий)