Game development
Game testing
Game design
Games and game consoles
January 27

Как я искоренил причину stuttering и пропуска кадров во всех играх, а также случайно понизил температуру на 15 градусов

Tutorial


Буду краток, причина оказалась в непостоянстве частоты GPU (больше), и CPU(меньше). Используя MSI Afterburner, HWiNFO64, и RivaTuner экспериментальным путем я выяснил что пропуски кадров происходят из-за достижения powerlimit в gpu и pl4 limit в cpu. Лимиты есть и всегда будут. Даже если убрать лимиты для мощности и тока, упремся в температурный лимит, который ещё более наглый чем предыдущие, тк изменяет частоту более резкими скачками. Но есть решение. Прошу под кат.

Shuttering такого вида встречается даже на самых мощных компьютерах с 2080ti, 1080ti, и особенно в sli конфигурациях.

Я использую GPU GTX1070, CPU 6700K, экран 1080p@120hz, p750dm2 clevo (но скорее всего все нижесказанное будет относиться и к десктопам).

Мой девайс ноутбуком язык не поворачивается назвать из за десктопного процессора и соответствующего охлаждения.

Просто понизив частоту на где то 1-5% с прыгающих 1750-1680Mhz до стабильных во времени 1671Mhz с помощью функции curve в Afterburner, stuttering практически полностью исчез.
А после выключения turbo boost на 6700k(и фиксации частоты на 4Ghz) он исчез окончательно. При этом температура GPU упала с 88 до 73 градусов.
Далее я проводил тестирование с процессором на одной и той же частоте, 4Ghz. Эффект еще сильнее если учитывать эффект от отключения turbo boost.

Тестирование проводил в игре Rise of Tomb Raider тк у нее есть встроенный бенчмарк.
До:
image

После:
image

Результат бенчмарка:
До:
image

После:
image

Настройки графики средние:
image

image

Ну и самое главное, curve для моей видеокарты, с разгоном +148:
image

OSD я активировал в настройках MSI Afterburner Core clock, CPU clock, Power limit, и через плагин к HWiNFO64 использовал индикадоры throttling CPU:
image

Просто поиграв минут 15, определил минимальные частоты CPU и GPU после просадки из-за нагрева, и установил горизонтальную линию на 10 Mhz ниже. Power limit (и другие лимиты) должны быть всегда либо активны либо нет, а не дребезжать каждые несколько секунд.

Небольшое замечание, многие средства мониторинга, тот же task manager в Windows, и особенно HWiNFO64 очень хорошо видны на графиках, так что будьте внимательны, пропуски кадров через равные промежутки времени — это норма с этими программами на время тестирования. Я рекомендую установить интервал обновления графиков каждые 5 секунд.

Результат — падение производительности всего лишь на 0.14%(посчитал из общего количества кадров бенчмарка), повышение средрего fps(top 95%), и понижение температур GPU и CPU на 15 градусов при измерении на GPU ( тк радиатор у них общий) взамен на более плавный игровой процесс.

Итоги:
CPU full power, GPU full power — 88 C, 72 fps
CPU low power, GPU full power — 80 C, 72 fps
CPU low power, GPU low power — 73 C, 71 fps
Более подробно тестировать у меня к сожалению нет времени.

PS:
Насчёт CPU. Нужно не грубо отключать turbo boost, а с умом. До перехода на 4.0Ghz, я пробовал 4.4Ghz(overclock), 4.2Ghz, и 4.1Ghz. Они все без исключения не стабильны во времени, и производят просадки до 4.0Ghz. У вас может быть другая ситуация. Ещё от игры зависит, так что отключение turbo boost как универсальное решение не рекомендую, скорее ручной выбор максимальной стабильной во времени частоты.

Меня вдохновила на написание эта статья — habr.com/en/post/419043.

Если заметили ошибки, прошу писать в личку)
Если статья понравится, то переведу на english.
+46
36.8k 130
Comments 46