Настроение сейчас - злойНаконецто вышла статья, которую я очень ждал!
История вопроса
Со времени публикации первой статьи о процессорозависимости видеосистемы прошло довольно много времени. Тогда мы выяснили, что если производительность видеосистемы более чем достаточна, то результаты тестов в FPS практически линейно зависят от частоты центрального процессора. И наоборот, если мощность видеокарты недостаточна, график результатов с определенного момента выходит на горизонтальную «полочку», и практически не зависит от частоты центрального процессора.
Однако один момент в то время остался без внимания и с тех пор не давал покоя. Чтобы проиллюстрировать, о чем именно идет речь, приведем один из графиков старой статьи.
[показать]
Как видите, линия результатов для режима 1024х768 No AA/AF идет очень близко к наклонной синей линии, иллюстрирующей линейную зависимость от частоты CPU. В дальнейшем, для определенности, будем называть этот участок графика зависимости FPS от частоты CPU – линейным участком. Второй важный участок графика – горизонтальная «полочка», которую вы можете видеть в правой части графика, на примере линии для режима 1600x1200 4AA/16AF. Как видите, переход между этими крайностями происходит плавно, без изломов. Это хорошо видно по линиям результатов для режимов 1600х1200 No AA/AF и 1280х1024 4AA/16AF, например.
Область между линейной и горизонтальной частями графика назовем «переходной». Откуда она берется? Почему мы наблюдаем плавный изгиб линий, а не четкий излом? Чем это обусловлено? Ответы на эти вопросы мы и попытаемся найти.
Предварительные замечания
Как показывает опыт, какую бы видеокарту мы не взяли, на каком бы стенде и в каких режимах не проводили тестирование – в большинстве случаев график зависимости среднего FPS от частоты CPU будет иметь все три области – линейную, переходную и горизонтальную. Конечно, в отдельных случаях какие-то из указанных областей могут быть выражены не так четко. Например - если видеокарта не ограничивает производительность системы, то мы, разумеется, получим зависимость FPS от частоты CPU близкую к линейной. И наоборот, если видеокарта «слаба», а CPU довольно мощный, то график FPS от частоты CPU выродится в горизонтальную линию. Впрочем, эти две крайности являются частыми вариантами более общего случая, указанного выше.
Почему график зависимости среднего FPS от частоты CPU имеет именно такую «каноническую» форму? Для того, чтобы ответить на этот вопрос, давайте детально рассмотрим исходные данные, на которых он строится. Если вы читали предыдущие статьи этой серии, то метод получения этих данных вам должен быть знаком. Мы будем использовать данные о времени рендеринга каждого кадра, предоставляемые утилитой FRAPS
Тестовый стенд по нынешним меркам не самый современный, но вполне достаточный, чтобы продемонстрировать все ключевые идеи и выявить необходимые закономерности.
Шина PCI-E
CPU AMD Athlon64 X2 3800+ @ FSB=270 MHz
VGA ASUS EN8800GTS 320 Mb
MB ASUS A8N-SLI Premium
Memory Hynix PC3200 2x1024 Мб
OS WinXP + SP2 + DirectX 9.0c
PSU FSP 400 Вт
В качестве тестового приложения будем использовать игру F.E.A.R. Выводы, которые мы получим, легко применимы и к любой другой игре. Итак, приступим.
[показать]
Как и прежде, график зависимости FPS от частоты CPU строился путем изменения множителя процессора в сторону понижения, остальные параметры не изменялись. Средние FPS, полученные при каждой частоте CPU, отложены на графике. Как видите, для выбранного графического режима график имеет вид, близкий к «каноническому», хотя и не является в полном смысле «идеальным».
Дальнейшие рассуждения могут показаться несколько пространными, но они важны для существа дела. Позже мы подкрепим их графиками и диаграммами. Что есть средний FPS? По определению, это количество воспроизведенных кадров в демо-сцене, деленное на время длительности этой демо-сцены. Размерность этой величины – «1/сек». Если мы возьмем какой-то один кадр и разделим единицу на время рендеринга этого единственного кадра, то получим некую величину с той же размерностью, что и у среднего FPS. Давайте назовем полученную величину «мгновенным FPS», соответствующим данному конкретному кадру. То есть, если кадр рендерился в течение 20 миллисекунд, «мгновенный FPS» для этого кадра будет 1/0,02 секунды = 50 FPS. Зачем мы лезем такие дебри? А вот зачем. Понятно, что средний FPS будет тем выше, чем меньше время рендеринга сцены, то есть, чем меньше времени рендерится каждый кадр. Или же, говоря по-другому, чем выше доля кадров с высоким мгновенным FPS. От чего зависит время рендеринга каждого кадра? Казалось бы, ответ очевиден – от того, насколько видеокарта быстро этот самый кадр рисует. Но что будет, если видеокарта, говоря примитивно, способна очень быстро рисовать кадры? В какой-то
Читать далее...