Оптимизация Steam Deck в один клик, или как я с Богом Войны воевал
Не так давно с подачи одного (не станем называть имени) господина довелось мне стать консольщиком. Да не абы каким, а портативным. И ты все понял верно, дружочек-пирожочек - я купил себе Steam Deck.
И тут такое началось... Но об этом в другой раз.
Наверное, самое первое, что я пошел забивать в поиск магазина Steam - конечно же, God of War.
Так как до сего момента консолей у меня не имелось (Dendy и Sega не в счёт), мне оставалось лишь смотреть на Кратоса, слышать про Кратоса, думать о Кратосе. Но вот теперь то я наваляю всему пантеону Богов!
К моему разочарованию в Steam представлен только "унылый дед".
Конечно же, я купил его не думая, но (!) история, помимо того, что должна быть закончена, она ещё и начало должна иметь.
Было решено пройти все части God of War согласно сюжета, но это отдельная история об установке и работе различных эмуляторов на Steam Deck.
Итак, убив Зевса и изучив серию арт-буков, мы начинаем свой путь в качестве лесоруба в Мидгарде.
Поковырявшись в настройках самой игры и деки, стало понятно, что 60 fps мы тут не увидим. Ну, да и ладно, сменившийся жанр игры позволяет быть неповоротливым черным троллем (А?! А? Выкупил отсылку?). Выставляем все как надо - красивая картинка на стабильных 40 fps - более чем хорошо.
Но вдруг Кратос будто бы говорит нам...
Час игры - падение fps до 1 и... полный фриз деки. Что за дела?! Перезагружаемся - час игры - полный фриз деки... Перезагружаемся...
Так дело не пойдет, подумал я и пошёл искать помощи на просторах интернета в изыскании причин данного неприятного недоразумения. Долго искать не пришлось. Много разных статей, много буков на всех известных мне языках (а это ровно two), но смысл всегда сводился к одному - out of memory / memory leak / критическая нагрузка объема оперативной памяти и т.д. и т.п.
Ну, что ж, причину мы теперь знаем, нужно идти за устранением. Конечно же, решение тоже себя долго ждать не заставило, и привело нас от долгого вступления к нашей сегодняшней теме.
Итак, сегодня в рубрике "Гайды для твоей мамки" оптимизация Steam Deck в один клик. Подробно и просто, как в азбуке Буратино - от А до Я с замечательными картинками.
И если Вы ждёте, что я буду открывать Америку, то спешу Вас огорчить, но нет. Зачем изобретать велосипед, когда можно просто сесть и крутить педали?
Все уже придумали за нас. Представляю Вам CryoUtilities.
Это - разработанная пользователем CryoByte33 утилита, представляющая собой набор твиков для повышения производительности и управления хранилищем в Steam Deck. Приступим?
Шаг первый. Скачать
Качать желательно прям с деки. Тыкаем правой кнопочкой вот СЮДА или пытаемся скачать с сайта самой утилиты (в моем примере я качаю как раз оттуда), и выбираем "Сохранить ссылку как...".
Сохраняем...
По итогу получаем такой вот файлик...
Шаг второй. Установка пароля администратора
Открываем терминал. Пуск - Система - Konsole.
В открывшемся окне пишем "passwd ***", где *** это пароль, который мы задаём.
Шаг третий. Установка
Запускаем наш скачанный файл...
...и ждём пока он все установит.
В результате на рабочем столе увидим три ярлыка CryoUtilities, CryoUtilities - Update и CryoUtilities - Uninstall.
Ярлыки также создадутся в разделе Служебные меню приложений.
Шаг четвертый. Запуск и оптимизация
Тут клацаем Yes.
Далее приложение предложит нам ввести наш пароль администратора, без него дальнейшая работа невозможна.
Как только ввели и нажали Submit, приложение встретит нас главным экраном.
Тут особо думать не нужно, просто доверься мне, жми кнопку Recommended, и дальнейшая магия свершится сама собой. Оговорочка: сама собой свершится ПОЧТИ вся магия, но об этом чуть позже.
Что же этот таинственный зверь сделал с нашей паровой палубой? Ну, давай по порядку (WARNING - будет много текста и мало картинок).
SWAP
Что такое swap-файл или файл подкачки нужно ли тебе объяснять? Если ты - такой же древний мамонт как я, и не раз пытался сделать своего старенького winXP-win7 друга чуточку побыстрее, то наверняка знаком с этим термином.
Если вдруг нет, то вот тебе коротенькое объяснение "на пальцах" - swap-файл это место на жёстком диске, которое выделяется для переброса туда информации из оперативной памяти, когда ее начинает не хватать.
В нашем случае Cryo увеличивает размер swap'а до 16Гб (по дефолту в деке 1Гб подкачки). Зачем? Увеличивая размер подкачки, мы можем сделать несколько вещей:
- значительно снизить нагрузку на память - это позволяет больше кэшировать, одновременно позволяя немного увеличить объем VRAM (наша видеопамять);
- увеличить запас "аварийной памяти" на случай, если физическая закончится;
Теперь разберём, что такое Swappiness. Тут все тоже достаточно просто. Это - приоритет, с которым дека использует файл подкачки. Значение его варьируется от 0 до 200. Чем выше значение, тем выше приоритет.
Зачем? По умолчанию дека имеет очень высокую степень подкачки, равную 100, что может привести к подкачке данных, когда осталось много физической памяти, что, в свою очередь, чревато следующим:
- чрезмерная запись может сократить срок службы вашего диска;
- swap намного медленнее, чем память, и его использование замедляет работу;
Посему, уменьшив Swappiness до минимального значения 1, мы можем убедиться, что подкачка используется только в самую последнюю секунду, когда это необходимо, и сохраняем в добром здравии свой SSD, уменьшив число перезаписи информации на него.
Memory
Huge Pages. Что за зверь?
Виртуальная память поделена на страницы. Каждая отдельная страница указывает на определенную физическую память. Она может указывать на область в оперативной памяти, а может на адрес, назначенный физическому устройству, например, видеокарте.
Когда ЦП выделяет память процессам, которым она требуется, он обычно делает это частями страниц по 4 КБ. Выделение страниц обходится "дорого". Огромные страницы значительно легче выделять и искать, и они уменьшают заикание при работе с большими объемами памяти.
Shared Memory in THP может уменьшить некоторую задержку при управлении памятью.
Compaction Proactiveness. Эта функция активно дефрагментирует память, когда Linux обнаруживает «время простоя». Зачем? По сути, даже несмотря на то, что Linux пытался определить подходящее время для сжатия, во время игр никогда не бывает подходящего момента, поэтому лучше отключить его.
Hugepage Defragmentation. Это то же самое, что и превентивное сжатие, но для "огромных страниц". Отключаем по той же причине - у нас на это нет времени - мы играем!
Page Lock Unfairness. Настраивает, сколько раз процесс может пытаться заблокировать "страницу", прежде чем сработает «справедливое» поведение, и гарантирует этому процессу доступ к "странице". Зачем? Может иметь негативные побочные эффекты, особенно в играх. Постоянное ожидание процессов может привести к тому, что в играх возникнет множество проблем с зависанием, а некоторые из них будут переходить в спящий режим, хотя этого делать не следует. Выключаем.
Storage
Не спрашивай, вот честно, не знаю, не пробовал. Cryo в эти процессы сама не лезет, давая тебе возможность показать кривизну твоих рук самостоятельно. Если очень интересно, ну, что ж, тогда спрашивай - пойду изучать, разберусь и доложу.
VRAM
Video Random Access Memory - оперативная память видеокарты. Вот тут магия и заканчивается. Этот параметр Cryo не меняет (физически не может), предоставляя возможность поколдовать непосредственно тебе самому.
Помнишь, я говорил "оптимизация в один клик"? Что ж, я жестоко тебя обманул, уж извини.
Увеличивать графическую память (коей с завода у нас 1Гб) мы будем самостоятельно, отгрызая ее от оперативной.
Шаг пятый. Увеличение VRAM
Не бойся, даже токарь-станочник с 15-летним стажем своими тремя пальцами одной руки сможет это сделать, у нас то и пальцев побольше, не правда ли?
Перво-наперво выключай деку. Нет, не в сон отправляй, отключай ее основательно.
А вот дальше нам твои целые пальцы то и пригодятся.
Зажимаем клавишу увеличения громкости "+" и тыкаем ВКЛ. Вуаля, мы попали в BIOS.
Сразу прошу простить за качество фото, профессиональной зеркалки под рукой не имеется и... О чем это я? Ах, да. Идём дальше.
Клацаем Setup Utility.
Далее идём в Advanced и находим там UMA Frame buffer Size.
Меняем значение с 1 Гб на 4 Гб.
Клацаем Save and Exit и загружаемся.
Заходим в свойства системы и видим, что наша видеопамять теперь 4 Гб, но и оперативной стало поменьше.
Важная оговорка! Как упоминается и в самой Cryo, увеличение VRAM не является панацеей и в ряде игр может даже оказать негативное влияние на производительность (в пример там приводят RDR2).
Засим всё! Мы провели обряд экзорцизма, изгнав наши "тормоза" и "фризы".
Сразу скажу - ждать того, что теперь ты сможешь играть в CyberPunk 2077 на ультрах в 60 fps, конечно же, не стоит.
Однако, в целом производительность подрастает. Как пример, God of War теперь играется великолепно и не кладет деку на лопатки из-за проблем с памятью.
BTW, Сообществом ProtonDB Cryo Utilities рекомендуется в большинстве гайдов по запуску и настройке игр.
Следующим этапом оптимизации будет андервольтинг нашей колоды. Но это - совсем другая история...
Спасибо, что осилили дочитать до конца!
Автор: felix The F