PlayStation 3 — это устройство, опередившее свое время. Забавность ситуации состоит в том, что в него добавили видеокарту, морально устаревшую на старте. Две несовместимых технологии породили множество странных ситуаций. А потом появилась Microsoft с чемоданами и попросила забыть об оптимизации, ведь DirectX все уже сделал за вас.
PlayStation 3
Предисловие
За последние пару недель просмотрел сотни различных роликов о консолях Sony третьей итерации и заметил одну интересную особенность: практически в каждом ролике присутствует фраза "Архитектура процессоров PS3 была слишком сложной, и разработчики не смогли раскрыть потенциал устройства". Подобная фраза регулярно встречается у блогеров из разных стран на разных временных отметках истории. Для обывателя байка выглядит правдоподобной, но это полнейшая чушь.
Любая игра — это коммерческий продукт. В бизнесе нет фраз "сложно" и "не смогли". В бизнесе существуют только "сколько это стоит" и "сколько денег принесет данное вложение". Наиболее показательным примером можно назвать историю с игрой Cyberpunk 2077. Все в один голос твердят, что проект нужно было перенести на год и допилить до нормального состояния. Но это так не работает — всё и всегда упирается в баланс вложений и получаемой выгоды. Это БАЗА.
Я котик, и у меня лапки
Думаю, многие слышали, что мультиплатформа лучше работала на Xbox 360, а эксклюзивы — на PS3. В этом месте стоит немножко углубиться в вопрос и разобраться в причинах подобного. Летом прошлого года прошивку для игровой станции разобрали на винтики и смогли разогнать видеокарту RSX. Более подробно рассматривал материал в этой теме:
Разгон PlayStation 3 на 70%, кастомные прошивки заметно повышают частоту кадров в играх
Если изучить вопрос, то увеличение производительности видеокарты дает практически линейный рост частоты кадров в подавляющем числе мультиплатформенных игр.
Это наглядный пример того, что упора в процессор не было, а просадки и прочие непотребства — это проблема видеокарты. В подавляющем числе случаев худшая частота и картинка — это проблема чипа, отвечающего за обработку графики. Сложная архитектура Cell тут ни при чем.
RSX против Xenos
В 2006 году в мире видеокарт происходит глобальная революция. От пиксельных и вершинных шейдеров идет переход к унифицированным шейдерным процессорам. То, что на бумаге выглядело одинаково, в реальности имело космический разрыв в производительности. В старых играх разница была незначительной, но в новых отрыв с каждым днем увеличивался семимильными шагами.
В 2005 году это еще не было очевидно, но к 2007-му происходит настоящий коллапс. RSX улетает в бездну. Чтобы понять, насколько процессор Cell был избыточным для данной видеокарты, нужно смотреть на тесты разгона. Двукратное увеличение частоты шейдеров и памяти не упирается в возможности процессора. Абсолютно все проблемы PS3 — от неудачной видеокарты.
В дополнение к видеочипу Microsoft устанавливает eDRAM-буфер, который позволяет включать сглаживание MSAA без потери производительности. Разница в картинке просто колоссальная. Но не всё так однозначно...
Архитектура процессора Cell
Не буду приводить технические характеристики, а приложу скриншот материнской платы PlayStation 2. Скажу больше — можно приложить скриншот абсолютно любой игровой консоли за последние 30 лет.
Видите много разных прямоугольников? Это разные чипы, узлы и сопроцессоры. Они хаотично разбросаны по всей материнской плате. Японская корпорация унифицировала все кристаллы и засунула под одну крышку. Вместо клепания десятков вспомогательных устройств она подвела все под определенные стандарты.
Vector Processing Unit 0, Vector Processing Unit 1, DMA Unit, Image Processing Unit, MIPS и прочее — она создает универсальные сопроцессоры, они же малые ядра. Любой код любой игры мог быть адаптирован. Больше не было необходимости делить на виды потоков. Все универсально.
Отдельно подчеркну для тех, кто в танке: Cell — это всё в одном. Любая студия, что создавала игры для PS2 (и любой другой консоли), в пару кликов левой ногой могла адаптировать игру под новое устройство. Программисты всю жизнь так работали и писали код для консолей именно таким образом. Cell — это вершина инженерного мастерства. Подобная архитектура долгое время была СТАНДАРТОМ.
Что-то пошло не так, и случилось страшное
Если посмотреть первые релизы для консолей 7-го поколения, можно заметить, что японские студии великолепно оптимизируют игры под PS3, а американские — под Xbox 360. "Сложность" архитектуры никого не волнует. Но между двумя платформами есть принципиальная разница.
PS3 работает напрямую с железом. Xbox имеет прослойку DirectX. У первой нужно писать код ручками для каждого действия, у второго многие действия автоматизированы. Некоторые могут прокричать: "Бинго! Вот в чем корень всего сущего!" Но не всё так однозначно. Многие разработчики десятки лет работали напрямую с железом, и переучиваться на новые технологии не так просто, как может показаться. Более того, при работе напрямую с железом гораздо больше возможностей для оптимизаций. Если в DirectX что-то не предусмотрено, то поиск обходных путей займет вечность.
Яркий пример — Castlevania: Lords of Shadow. Мультиплатформа, где PS3 на голову превосходила альтернативный вариант по всем параметрам. И это задолго до раскрытия потенциала.
Нераскрытый потенциал PS3 и процессоров Cell
Отдельно хочется упомянуть игру Tekken 5: Dark Resurrection. Существует всего несколько подобных проектов. Уникальность состоит в том, что игра работала в разрешении 1080р при 60 кадрах и вышла на старте поколения.
Игра апскейлилась из разрешения 576p до 1080p средствами малых ядер процессора Cell. Подчеркну, не рендерилась, а апскейлилась. Задолго до появления DLSS. Инженерам нечего было делать, и они оптимизировали игру для улучшения ее визуальной части. Они решили, что вместо создания "ремастера" дешевле написать апскейлер. Уточню еще один момент: 90% апскейлов на PS3 работают через видеокарту и едят 5–10% ее мощности. Простой трюк — и получился сладкий пирожок.
Или еще один пример: Virtua Fighter 5. Снова на старте поколения. Мультиплатформа, разработанная для Xbox 360 и портированная на PS3. Разработчики снова написали апскейлер через малые ядра, и ущербная версия на слабой консоли стала выглядеть лучше, чем у конкурента. Стандартные 720p на американском ящике против 1080p у японцев. Разработчикам было не плевать, и они знали, для кого делают игру.
Послесловие
Процессор Cell — это квинтэссенция развития консольной архитектуры. Но пришла Microsoft и попросила перейти на DirectX. Хорошо это или плохо — отдельная дискуссия. Суть состоит в том, что у разработчиков был выбор, и они могли без лишних усилий углубиться в оптимизацию.
Пример с Virtua Fighter 5 наиболее яркий и демонстративный. Без лишних телодвижений они прикрутили апскейлер без явного изменения кода программы — и получили конфетку. Кто-то делал две разные версии игры и получил Castlevania: Lords of Shadow с заметной разницей в конечном продукте. Были более ленивые разработчики, которые использовали версию от PS2 с прикрученными улучшайзерами.
Вариантов была масса, и те, кто к ним прибегал, не отличались большими финансовыми резервами. Надо? Делали без вмешательства в основной код игры с минимальными финансовыми вложениями. Но DirectX автоматизировал часть процессов. Большие дяди в пиджачках предлагали простой способ с минимальными затратами.