[Разработка игр, Настольные компьютеры, Процессоры, Игры и игровые приставки] Cyberpunk 2077 игнорирует многопоточность микропроцессора AMD
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Пользователи сайта 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, планировщик выделяет для игры меньше потоков.
Один из пользователейпояснил, что ранее, когда AMD начала продавать процессоры серии FX, то компания подвергалась критике за неправильный маркетинг своей продукции. Проблема заключалась в том, что их «8-ядерные» процессоры вводили покупателей в заблуждение и должны были продаваться как 4-ядерные 8-поточные процессоры или 4-ядерные процессоры с гиперпоточностью. То же самое с другими вариантами подсчета ядер. Другая проблема заключалась в том, что они пытались скрыть этот факт от программного обеспечения, что означало, что, когда программы пытались проверить, сколько ядер и потоков имеет ЦП, он неверно сообщал, что имеет «8 ядер и 8 потоков» вместо «4 ядер и 8 потоков" в примере с «8-ядерным» процессором. AMD устранила эту проблему с процессорами в серии Ryzen. Однако, проверка в Cyberpunk 2077 того, установлен ли процессор AMD, и как нужно соответствующим образом настроить количество ядер, работает неправильно и соответствует подсчету, который использовался до выхода новых процессоров AMD.
Устаревший фрагмент кода для расчета потоков, который, как предположили пользователи, используется в:
WORD cores, logical;
getProcessorCount(cores, logical);
DWORD count = cores;
char vendor[13];
getCpuidVendor(vendor);
if ((0 == strcmp(vendor, "AuthenticAMD")) && (0x15 == getCpuidFamily())) {
// AMD "Bulldozer" family microarchitecture
count = logical;
Новый фрагмент кода для расчета потоков:
DWORD cores, logical;
getProcessorCount(cores, logical);
DWORD count = logical;
char vendor[13];
getCpuidVendor(vendor);
if (0 == strcmp(vendor, "AuthenticAMD")) {
if (0x15 == getCpuidFamily()) {
// AMD "Bulldozer" family microarchitecture
count = logical;
}
else {
count = cores;
}
}
Пользователи пояснили, что, вероятно, эта проверка не «неправильная» сама по себе, но, возможно, ее не следовало изначально использовать в 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, исправляющее многочисленные ошибки в игре, включая механику квестов, геймплей, визуализацию персонажей, а также улучшающий производительность и стабильность как версий игры на ПК, так и для игровых консолей.
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка игр, Игры и игровые приставки] Бесплатный онлайн-круглый стол «Тенденции игрового рынка 2021. Какие игры делать в новом году»
- [Читальный зал, Компьютерное железо, Старое железо, Игры и игровые приставки] Обратная совместимость консолей Sony
- [Разработка игр, Игры и игровые приставки, IT-компании] Руководство CD PROJEKT RED взяло на себя ответственность за баги на старте Cyberpunk 2077. Сотрудники получат все бонусы
- [Информационная безопасность, Игры и игровые приставки] Valve исправила уязвимости в Steam, которые позволяли удаленно выполнять код
- [Разработка игр] Баланс в настольном геймдизайне: строим графы с помощью Google App Script и Gephi
- [Процессоры, IT-компании] Apple приступила к разработке собственного сотового модема на замену чипу Qualcomm
- [Open source, Разработка игр, Финансы в IT, IT-компании] Верховный суд отказал Wargaming в иске к своим бывшим сотрудникам
- [Высокая производительность, GPGPU, История IT, Процессоры] Software ecosystems: принципы построения
- [.NET, C++, Обработка изображений, C#] Сравниваем производительность C# и C++ в задачах обработки изображений
- [Игры и игровые приставки, IT-компании] Запуск Cyberpunk 2077 стал рекордно крупным в истории компьютерного игропроизводства
Теги для поиска: #_razrabotka_igr (Разработка игр), #_nastolnye_kompjutery (Настольные компьютеры), #_protsessory (Процессоры), #_igry_i_igrovye_pristavki (Игры и игровые приставки), #_cyberpunk_2077, #_smt, #_amd, #_intel, #_proizvoditelnost (производительность), #_razrabotka_igr (
Разработка игр
), #_nastolnye_kompjutery (
Настольные компьютеры
), #_protsessory (
Процессоры
), #_igry_i_igrovye_pristavki (
Игры и игровые приставки
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 21:32
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Пользователи сайта 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, планировщик выделяет для игры меньше потоков. Один из пользователейпояснил, что ранее, когда AMD начала продавать процессоры серии FX, то компания подвергалась критике за неправильный маркетинг своей продукции. Проблема заключалась в том, что их «8-ядерные» процессоры вводили покупателей в заблуждение и должны были продаваться как 4-ядерные 8-поточные процессоры или 4-ядерные процессоры с гиперпоточностью. То же самое с другими вариантами подсчета ядер. Другая проблема заключалась в том, что они пытались скрыть этот факт от программного обеспечения, что означало, что, когда программы пытались проверить, сколько ядер и потоков имеет ЦП, он неверно сообщал, что имеет «8 ядер и 8 потоков» вместо «4 ядер и 8 потоков" в примере с «8-ядерным» процессором. AMD устранила эту проблему с процессорами в серии Ryzen. Однако, проверка в Cyberpunk 2077 того, установлен ли процессор AMD, и как нужно соответствующим образом настроить количество ядер, работает неправильно и соответствует подсчету, который использовался до выхода новых процессоров AMD. Устаревший фрагмент кода для расчета потоков, который, как предположили пользователи, используется в: WORD cores, logical;
getProcessorCount(cores, logical); DWORD count = cores; char vendor[13]; getCpuidVendor(vendor); if ((0 == strcmp(vendor, "AuthenticAMD")) && (0x15 == getCpuidFamily())) { // AMD "Bulldozer" family microarchitecture count = logical; Новый фрагмент кода для расчета потоков: DWORD cores, logical;
getProcessorCount(cores, logical); DWORD count = logical; char vendor[13]; getCpuidVendor(vendor); if (0 == strcmp(vendor, "AuthenticAMD")) { if (0x15 == getCpuidFamily()) { // AMD "Bulldozer" family microarchitecture count = logical; } else { count = cores; } } Пользователи пояснили, что, вероятно, эта проверка не «неправильная» сама по себе, но, возможно, ее не следовало изначально использовать в 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, исправляющее многочисленные ошибки в игре, включая механику квестов, геймплей, визуализацию персонажей, а также улучшающий производительность и стабильность как версий игры на ПК, так и для игровых консолей. =========== Источник: habr.com =========== Похожие новости:
Разработка игр ), #_nastolnye_kompjutery ( Настольные компьютеры ), #_protsessory ( Процессоры ), #_igry_i_igrovye_pristavki ( Игры и игровые приставки ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 21:32
Часовой пояс: UTC + 5