Как включить многопоточность в cyberpunk 2077
Пользователи и обозреватели заметили, что Cyberpunk 2077 имеет проблемы с использованием потенциала процессоров AMD Ryzen, в частности технологии SMT (многопоточности). Это легко заметить в диспетчере задач Windows — игра явно привязана к физическим ядрам ЦП, а не логическим. Проблема отсутствует на процессорах Intel, то есть код, очевидно, не был оптимизирован для процессоров AMD.
Пользователь UnhingedDoork предложил решение этой проблемы для энтузиастов: оно, по-видимому, улучшает поддержку многопоточности игрой и, как следствие, повышает минимальную и среднюю частоту кадров, делая игровой процесс более плавным. Решение требует модификации исполняемого файла игры, что, по-видимому, влияет на то, как игра распознает процессор.
Очень странно, что игра, которая столько раз откладывалась, не получила элементарных оптимизаций для процессоров AMD Ryzen. Было ли это недосмотром со стороны разработчиков или что-то другое, остаётся неясным. Будем надеяться, что CD Projekt RED сможет улучшить поддержку многопоточности и обеспечить дальнейшую оптимизацию не только для процессоров Ryzen, но и для видеокарт Radeon, на которых игра по-прежнему не поддерживает трассировку лучей.
Использование потоков в Cyberpunk 2077 на AMD Ryzen 9 5950X до и после модификации (u/BramblexD)
Краткое руководство по модификации исполняемого файла предоставлено участником форума Reddit с псевдонимом chaosxk. Мы не рекомендуем каким-то образом изменять исполняемые файлы — делать это можно только на свой страх и риск. Тем не менее:
- загрузите шестнадцатеричный редактор HxD;
- найдите Cyberpunk2077.exe — у пользователей GOG он находится в Cyberpunk 2077/bin/x64;
- сделайте резервную копию Cyberpunk2077.exe на всякий случай;
- перетащите Cuberpunk2077.exe в HxD — должны появиться шестнадцатеричные числа (например, 01 FF 0D и т. д.);
- нажмите CTRL + F, измените столбец на Hex-Values;
- введите «75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08» в строку поиска без кавычек, эти значения должны выделиться;
- скопируйте «EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08» без кавычек;
- вернувшись в HxD, щёлкните правой кнопкой мыши выделенные значения и выберите вставку;
- перейдите на верхнюю панель и щёлкните значок сохранения.
Также опубликована видеоинструкция по модификации. Тем не менее, советуем дождаться официального решения от разработчиков, а не самостоятельно вносить изменения в игру. Напомним, что несмотря на три переноса (с апреля на сентябрь, с сентября на ноябрь, с ноября на декабрь), Cyberpunk 2077 добралась до релиза в далёком от идеала техническом состоянии.
Сегодня, 10 декабря, состоялся релиз Cyberpunk 2077, который уже успел стать знаковым событием. Ролевой экшен привлёк к себе невероятное внимание публики и отметился выдающимся количеством одновременно играющих в Steam. Однако далеко не все покупатели проекта на площадке Valve остались им довольны — отрицательных отзывов накопилось больше четверти. Многие пользователи жалуются на оптимизацию, озвучение и критические сбои.
GametraiN: «Настройки графики ничего не решают, вам нужно лучшее оборудование, а иначе просто не получится играть с приемлемой кадровой частотой. Рекомендуемые спецификации — полная ложь».
Историческая игр: «Люди тратят десятки лет на обучение ремеслу актёра озвучки, вкладывают свою душу, становятся легендами кино, игр, делают карьеру. А поляки зовут репера и Поперечного».
Кроме того, немало людей сообщают о критических сбоях в Cyberpunk 2077, из-за которых проект попросту невозможно пройти.
Пользователи сайта Reddit утверждают, что игра Cyberpunk 2077 игнорирует одновременную многопоточность (Simultaneous Multithreading, SMT) и в основном использует только физические ядра ЦП на ПК с процессорами AMD. На компьютерах с чипами Intel игра использует все доступные физические и логические ядра центрального процессора.
На форуме было предложено решение — изменить несколько байт в EXE-файле игры. Нужно в Hex-редакторе найти строку 75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08 и изменить ее на EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08 . В этом случае на ПК с процессорами AMD станут использоваться все логические ядра центрального процессора, а производительность игры улучшится на 10-20%.
Пример распределения нагрузки на ядра процессора AMD при запущенной игре Cyberpunk 2077 без изменений в Hex-редакторе.
Пример использования всех ядер процессора AMD при запущенной игре Cyberpunk 2077 после внесения изменений в Hex-редакторе.
Некоторые пользователи предположили, что это происходит из-за того, что Cyberpunk 2077 использует компилятор Intel C++, который препятствует оптимизации игры при работе на процессорах сторонних производителей. Однако, они не нашли подтверждения этой теории.
Сейчас основная версия пользователей — при запуске игры происходит проверка производительности текущей системы с помощью библиотеки GPUOpen, чтобы планировщик игры мог использовать оптимальное количество ядер, в зависимости от семейства процессоров, которые используют игроки. По какой то причине после проверки на ПК с процессорами AMD, которые не на архитектуре Bulldozer, планировщик выделяет для игры меньше потоков.
Устаревший фрагмент кода для расчета потоков, который, как предположили пользователи, используется в игре:
Новый фрагмент кода для расчета потоков:
Пользователи пояснили, что, вероятно, эта проверка не «неправильная» сама по себе, но, возможно, ее не следовало изначально использовать в Cyberpunk 2077 в качестве способа оптимизации производительности системы пользователя и использования потоков. В любом случае, команда разработчиков игры может выпустить новый патч, где будет устранена эта проблема.
Первоначально пользователи пробовали заменять строку 75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08 на значения 74 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08 . Однако скоро выяснилось, что такая замена не совсем оптимальна, так как она инвертировала некорректную проверку библиотеки GPUOpen, а не нейтрализовала ее проведение. На ПК с процессорами Intel такую замену производить не рекомендуется даже ради тестов.
Вчера руководство студии CD PROJEKT RED взяло на себя ответственность за баги и проблемы, обнаруженные пользователями на старте игры Cyberpunk 2077.
11 декабря вышел патч 1.04 для Cyberpunk 2077, исправляющий многочисленные ошибки в игре, включая механику квестов, геймплей, визуализацию персонажей, а также улучшающий производительность и стабильность как версий игры на ПК, так и для игровых консолей.
Моддер Scorpija выпустил мод, позволяющий компьютерным геймерам запускать Cyberpunk 2077 на процессорах, отличных от AVX. Кроме того, существует настройка, с помощью которой владельцы AMD Ryzen могут улучшить производительность игры на своих системах.
Начнем с исправления ЦП, отличного от AVX. Все, что вам нужно сделать, это скачать мод отсюда и поместить исполняемый файл в папку Cyberpunk2077\ bin\x64. Очевидно, вам придется заменить файл .exe. Также обратите внимание, что это исправление работает только для GOG-версии игры.
Что касается владельцев AMD Ryzen, реддитор UnhingedDoork предоставил следующий твик руководство, с помощью которого владельцы AMD Ryzen могут улучшить производительность игры. Эта настройка направлена на улучшение поддержки многопоточности, что увеличит минимальную и среднюю частоту кадров.
Вот что вам нужно сделать, чтобы улучшить производительность игры.
- Загрузите HxD Hex Editor.
- С помощью HxD откройте Cuberpunk2077.exe
- Найдите "75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08"
- Замените на "EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08".
- Сохраните файл и запускайте игру
Будем надеяться, что CD Projekt RED включит эти настройки в новое обновление для ПК.
Ну и для тех, у кого слабые видеокарты, можете воспользоваться данным твиком, благодаря которому можно отключить практически любые графические эффекты, и получить до 60 фпс, если до этого при низких выдавало всего лишь 20-30.
Читайте также: