Кадр на экране — результат работы двух устройств, соединённых последовательно. Процессор готовит описание сцены, видеокарта превращает его в пиксели. Скорость всей цепочки задаёт то звено, которое тратит на кадр больше времени. Когда таким звеном оказывается процессор, видеокарта простаивает в ожидании работы, и никакие изменения графических настроек не поднимают частоту кадров. Разобраться, где именно упор, можно без специальных инструментов — достаточно понимать механику распределения работы.

Что процессор делает внутри кадра

На каждый кадр процессор выполняет фиксированный набор действий: обновляет состояние объектов, считает физику и логику, проверяет столкновения, обрабатывает ввод, отсеивает невидимую геометрию, формирует и отправляет драйверу команды отрисовки. Драйвер, в свою очередь, транслирует их в команды для видеокарты и управляет загрузкой ресурсов. Заметная часть этой работы плохо распараллеливается: последовательность команд должна быть выстроена в определённом порядке, и во многих движках её собирает один поток.

Ключевой момент — стоимость этой работы почти не зависит от разрешения экрана. Количество объектов в сцене, число вызовов отрисовки и объём логики одинаковы и при малом разрешении, и при большом. Видеокарта же с ростом разрешения получает кратно больше пикселей и тратит на кадр пропорционально больше времени.

Признаки упора в процессор

Первый и самый надёжный признак — загрузка видеокарты стабильно ниже полной при отсутствии внешних ограничителей вроде синхронизации с частотой обновления экрана или лимита кадров. Карта не занята, потому что команды приходят реже, чем она успевает их выполнять.

Второй признак — потолок частоты кадров, не реагирующий на графические настройки. Снижение качества теней, отключение сглаживания, уменьшение разрешения дают прирост в единицы процентов или не дают вовсе. Если после снижения разрешения вдвое частота кадров осталась прежней, узкое место находится до видеокарты.

Третий признак — характер загрузки процессора. Полная загрузка всех ядер здесь не обязательна и часто вводит в заблуждение. Типичная картина при упоре — одно-два ядра близко к пределу, остальные загружены умеренно, суммарная цифра выглядит скромно. Смотреть нужно на распределение по ядрам, а не на общий процент.

Обратная ситуация — упор в видеокарту — выглядит зеркально: карта загружена полностью, снижение разрешения или качества сразу поднимает частоту кадров, а процессор занят частично. Порядок проверки узлов при подборе конфигурации разобран в разделе сборка.

Почему упор смещается с разрешением и настройками

Одна и та же связка при малом разрешении может упираться в процессор, а при большом — в видеокарту. Причина в асимметрии, описанной выше: подъём разрешения нагружает только один узел. Это же объясняет частое недоразумение при обсуждении конфигураций: два человека с одинаковым набором комплектующих получают разные результаты просто потому, что играют на разных экранах.

Похожий эффект дают настройки, влияющие на дальность прорисовки, плотность объектов и качество теней с большим количеством источников. Они увеличивают число вызовов отрисовки, то есть нагружают именно процессорную сторону, и при их снижении картина упора может измениться. Настройки постобработки и разрешения текстур, наоборот, ложатся на видеокарту и на объём видеопамяти.

Высокая частота кадров как отдельный режим

Есть сценарий, в котором упор в процессор возникает даже при мощной конфигурации: цель в виде высокой частоты кадров на скоростном мониторе. Стоимость подготовки одного кадра фиксирована, значит для вдвое большей частоты кадров процессор должен выполнить вдвое больше работы за секунду. С какого-то момента он перестаёт успевать, и потолок фиксируется — независимо от того, насколько быстра видеокарта. Именно в этом режиме разница между процессорами по скорости одного ядра проявляется наиболее отчётливо.

Ровный упор и рывки — разные явления

Упор в процессор даёт ровный потолок: время кадра стабильно, картинка плавная, просто частота не растёт выше определённой отметки. Это неприятно, но предсказуемо.

Рывки устроены иначе. Они выглядят как редкие всплески времени кадра на фоне нормального среднего значения и вызываются другими причинами: компиляцией шейдеров при первом появлении эффекта, подгрузкой ресурсов с накопителя, сборкой мусора в движке, фоновой активностью системы, нехваткой оперативной или видеопамяти с последующей подкачкой. Средняя частота кадров при этом может выглядеть отличной, а ощущение — рваным.

Различить эти явления помогает наблюдение за временем кадра, а не за усреднённой частотой. Ровная линия с невысоким значением — упор. Ровная линия с редкими высокими пиками — внешние помехи, и увеличение мощности процессора их не устранит. Смешанная картина означает, что работать нужно с обеими причинами, начиная с той, которая даёт больший вклад в ощущаемую плавность.

Практический порядок диагностики сводится к трём шагам: посмотреть загрузку видеокарты, затем снизить разрешение и оценить реакцию частоты кадров, затем взглянуть на распределение нагрузки по ядрам. Три ответа однозначно указывают, какое звено цепочки задаёт темп.