Возвращаясь ко вчерашней дискуссии о нагрузках, потоках и прочей ерунде хочу поделиться анализом игры. В качестве подопытного кролика выступает вышеупомянутая Shadow of Colossus.
Начну с общих деталей: несмотря на то, что почти все играли в нее с определенной степенью комфорта, это одна из самых тяжело эмулирующихся игр в плане нагрузки на железо. Нагрузка эта не везде равномерна, но в разных местах можно попасть на моменты, где нагрузка на определенный модуль будет буквально запредельной. Настолько, что без использования стилинга получить
абсолютный фуллспид (т.е. фпс не просаживающийся ниже 50/60 никогда и нигде) во всех вместе взятых частях игры
невозможно ни на одном ныне существующем железе.
Причиной тому невероятная нагрузка на блок VU в некоторых местах (одно из самых ярких мест, демонстрирующих это - выезд на мост в интро). Никакой MTVU и SuperVU (хотя он и заметно быстрее MicroVU ) при этом не спасет, даже с камнем класса моего профильного, нужна гораздо более высокая частота либо более высокий кпд ядра, а это явно дело далекого будущего. Конечно, это ненормально и является недоработкой эмуляции VU, но поскольку ситуацию изменить невозможно, остается вытягивать железом... и стилингом, который в самом первом положении резко снижает нагрузку, тем самым поднимая фпс вчетверо. Традиционно за использование стилинга надо расплачиваться, в данном случае побочным эффектом будет довольно ощутимый фреймскип. Итак: без использования стилинга в исследуемой игре в некоторых местах будут слоудауны на любом существующем топовом процессоре с любой тактовой частотой (для примера: выезд на мост в интро "упёр" профильный процессор в 20фпс, да. Варианты разгона с охлаждением жидким гелием мы тут рассматривать не будем). Точка.
Хотя медленный VU и дает местами страшные просадки, но таких мест совсем немного, а вот серьезные нагрузки на видеокарту будут происходить в течение всей игры. На сей раз основным элементом карты, который нагружает игра, является сам GPU. И вновь одним из самых медленных мест является интро, самое начало.
Для замера чистой нагрузки на карту и ее производительности использовалось сразу несколько утилит: MSI Afterburner, Fraps и GSDumpGUI. Предварительно был записан короткий дамп, на котором и тестилась карта. Особенностью плеера дампов является его двухпоточность, никакие настройки эмулятора на него не влияют, но и нагрузка на процессор гораздо ниже, чем в реальных играх, тогда как рендер и скейлинг обрабатываются по полной программе. Хотите точно знать, виновата ли карта в тормозах? Проигрывайте GS-дампы. Ссылки на тестовые дампы ниже.
Итак, дамп одного из самых тяжелых для видеокарты мест в игре. Кому нужно интро, скажет большинство... ну, мы же ищем абсолют без каких-либо поблажек, не забыли?
Тут меня ждал облом номер два. Мало мне было VU, который нельзя вытянуть на 5ГГц, так оказалось, что еще и профильная карта неспособна тянуть картинку выше натива в абсолюте, т.к. игра уже при рендере х2/720р вздумала подтормаживать, что можно увидеть на скрине выше. К счастью выяснилось. что включение прогрессивной развертки заметно снижает нагрузку на карту, что все-таки позволяет использовать х2 скейл без просадок по вине карты. Но не более того, дальше, как и в случае с VU, может помочь только стилинг или замена карты. Какая карта нужна для того, чтобы поиметь хотя бы х3? Это могут сказать только владельцы таких карт, прокрутив тестовый дамп на своей машине.
Осталось понять, что происходит с ЕЕ блоком. В принципе, запредельной нагрузки именно на него мне обнаружить не удалось, а вот высокая (не настолько, как в описанных выше случаях, но все же) нагрузка встречается сплошь и рядом в игре. При этом равномерно под завязку нагружаются все три блока эмулятора и в зависимости от ракурса тормоза случаются по вине то одного, то другого, то третьего, как правило с небольшим перевесом. Примером такой нагрузки служит главное меню игры, но побегав вокруг точки старта пару минут я обнаружил такие места и в самой игре, которых очень много, и в одном из которых я снял еще один GS дамп.
И что же мы видим? Во-первых, тормоза. Не убойные, но хорошие такие тормоза. И виноваты два блока сразу, ай да игрушка. Причем карте до тормоза по ее вине тоже осталось совсем немного. Без стилинга просело все - и проц и без пяти минут карта. И эти пять минут быстро закончились, стоило лишь отбежать на два десятка метров - нагрузка на ЕЕ и VU упала до 85%, а на карту наоборот подскочила до упора. Осталось прокрутить дамп с этого места и посмотреть - а хватает ли в этом месте хотя бы карты с х2? Т.е. с прогрессией ее конечно хватит, это уже выяснилось раньше, но тест полностью проводился на обычной чересстрочке.
А вот и наглядное подтверждение моих вчерашних слов о том, что замена наиболее медленного компонента необязательно избавит вас от тормозов - производительность так или иначе уперлась в видеокарту, хотя тормоза и гораздо меньше, чем когда игра уперлась в CPU. И вновь - либо стилинг, либо снижение рендера, либо замена карты. С учетом параллельных тормозов на всех блоках единственное спасение - стилинг, как бы это ни было неприятно осознавать.
Итак, у вас есть выбор - стилинг и фреймскип (и не совсем честные 60фпс на счетчике) или апгрейд до предела, так себе картинка и периодические подтормаживания. Вот такая она, Shadow of Colossus.
Архив с GS дампами, использовавшимися для тестирования видеокарт:
http://ifolder.ru/26363179. Каждый может пощупать сам, на что способна его карточка. Наличие самой игры не требуется.