Новые возможности панели настроек ForceWare 2.0 (56.56)

Появившиеся в сети с подачи The Inquirer слухи о скором появлении семейства драйверов NVIDIA ForceWare 2.0, обладающих новыми полезными интерфейсными возможностями в панели настроек и в очередной раз обещающих магический двадцатипроцентный прирост, несколько дней назад материализовались в реальность в виде утечки в сеть неофициальных драйверов версии 56.55, а затем и 56.57 (которые можно было найти на сайтах некоторых партнеров NVIDIA). Благодаря усилиям неизвестных бета-тестеров, скачать их и посмотреть собственными глазами на новые возможности панели настроек, а также попытаться найти обещанный прирост в производительности может теперь каждый желающий. Сегодня мы оставим за кадром вопросы производительности и качества изображения новых драйверов — это тема другого детального исследования, поскольку отношения к такого рода вещам после всех допинговых скандалов в драйверах NVIDIA у нас, мягко говоря, неоднозначное и каждый резкий скачок производительности приходится рассматривать чуть ли не под лупой (да и в традиционных ежемесячных 3DGiТогах рассматриваются все аспекты производительности и качества очередных бета- или официальных версий). Сейчас же мы поговорим о более материальной вещи, а именно о «лице» драйвера — панели настроек нового семейства ForceWare 2.0. Отрадно осознавать, что и NVIDIA и ATI, похоже, наконец начали понимать, что возможности и внешний вид панели настроек драйвера играют далеко не последнюю роль в конкурентоспособности их собственной продукции. В особенности это касается NVIDIA, поскольку их флагман NV38 явно проигрывает конкурирующему с ним R360 в аппаратной части и львиная доля нагрузки по спасению репутации и конкурентоспособности семейства GeForce FX лежит на плечах программистов компании, пытающихся всеми правдами и неправдами буквально за уши вытянуть продукцию NVIDIA вперёд. Не обойдена вниманием программистов и панель настроек, активно развивающаяся начиная с серии Detonator 40.xx. Собственно, не отстаёт от NVIDIA и ATI, также экспериментирующая со своей панелью настроек и совершенствующая её в последних версиях драйверов Catalyst. На наш взгляд, это правильная тенденция, и наметившееся развитие в этой области после нескольких лет топтания обеих сторон практически на месте — это очень хороший знак. Именно крайне ограниченный функционал панели настроек драйверов Detonator и полный застой в её развитии и подтолкнули нас в своё время к началу разработки утилиты RivaTuner, предоставляющей пользователям функциональные возможности, которым разработчики панели настроек не уделили должного внимания. И тот факт, что собственные панели настроек драйверов NVIDIA и ATI сейчас начинают активно впитывать в себя функционал сторонних утилит, обеспечивая конечного пользователя практически всем необходимым инструментарием, не может нас не радовать. Итак, давайте посмотрим, какие инновации нам приготовила NVIDIA в новом поколении драйверов, и чем же они отличаются от предыдущих ForceWare.

Первое, что бросается в глаза при взгляде на панель настроек новых драйверов, — это дальнейшее эволюционное развитие закладки Performance & Quality:

Как Вы, наверное, помните, впервые эта закладка появилась в драйверах Detonator 40.xx, совместив в себе поддающиеся унификации настройки качества изображения для API Direct3D и OpenGL. Цели, преследуемые разработчиками панели настроек при реализации унифицированного доступа к опциям совершенно разных 3D API, на наш взгляд были такими: избавить неопытного пользователя от необходимости знать, какой именно 3D API использует нужное ему 3D приложение, и, тем самым, облегчить навигацию по панели настроек. Что же, вполне разумно. Отметим, что сходным путём пошли и ATI, также совместив в Catalyst 3.8 настройки Direct3D и OpenGL в одну закладку 3D.

До последнего времени унифицированными в панели драйверов NVIDIA были лишь настройки полноэкранного сглаживания и анизотропной фильтрации, а также ползунок качества фильтрации, именуемый в разных версиях драйверов как Image quality либо как Intellisample settings (читателям, не знакомым с аспектами внутренней реализации алгоритмов повышения скорости анизотропной фильтрации, регулируемых данным ползунком, напомним, что мы уже касались этой темы ранее). В новом поколении драйверов к списку упомянутых выше унифицированных настроек добавился и ползунок настройки вертикальной синхронизации, позволяющий форсировать либо, наоборот, отключать её во всех 3D приложениях. Видимо для того, чтобы иметь возможность предоставления пользователю неограниченного набора унифицированных настроек на одной закладке, выбор нужной настройки теперь производится из списка Driver settings, а нужное значение настройки выбирается ниже в поле Setting value. Весьма удобно. Стоит также отметить и ещё одно удобное нововведение: всплывающую подсказку, объясняющую, почему та или иная настройка неактивна в данный момент времени. Стоит остановить курсор мышки на нужной опции, и панель настроек объяснит, почему она заблокирована:

Думаем, неопытные пользователи, не догадывающиеся о существовании системы контекстной помощи, по достоинству оценят это нововведение.

Предусмотрены и некоторые настройки для продвинутых пользователей. По умолчанию, список Driver settings содержит лишь четыре вышеупомянутых унифицированных опции, однако с помощью флажка Show advanced settings его можно расширить, дополнив рассчитанными на опытных пользователей настройками:

Дополнительные настройки включают в себя:

  • Force mipmaps — если верить контекстной помощи, отвечает за возможность форсирования генерации и режим мип-фильтрации для приложений, не имеющих своей собственной поддержки мипмэппинга. Позволяет форсировать для таких приложений либо билинейную, либо трилинейную фильтрацию. По сути, представляет собой тот же самый автоматический мипмэппинг, работающий ранее только на чипах семейства TNT и убранный за ненадобностью из драйверов ещё в серии 6.xx. Здесь, однако, надо сделать две пометки. Во-первых, наши попытки заставить эту опцию работать не увенчались успехом. Анализ внутренностей драйвера и панели настроек показал, что ключ реестра, изменяемый панелью настроек при выборе данной опции, пока просто неизвестен ни Direct3D ни OpenGL драйверу. Так что пока эта опция — не более, чем задел на будущее, что, впрочем, простительно, поскольку драйвер пока неофициальный. Остаётся только надеяться, что в официальной версии в панели настроек не останется «висячих» опций и в теле Direct3D и OpenGL драйверов появится соответствующий код. Во-вторых, рискнём отметить, что актуальность данной опции, по крайней мере в таком виде, как её на данный момент описывает контекстная помощь, близка к нулю. Гораздо полезнее было бы иметь возможность форсирования режима мип-фильтрации и в приложениях, умеющих генерировать мип-уровни самостоятельно. Надеемся, что программисты NVIDIA прислушаются к нашему совету, и данная опция научится делать и это.
  • Conformant texture clamp — знакомая по предыдущим версиям драйверов Enable conformant OpenGL texture clamp behavior. Как видно из названия, влияет только на OpenGL приложения.
  • Extension limit — позволяет OpenGL драйверу ограничить размер строки, содержащей список поддерживаемых OpenGL расширений. Предназначена для обхода ошибок некоторых приложений, ожидающих, что размер строки, содержащей список расширений, не превысит какого-то определённого предела, и страдающих из-за переполнения внутреннего буфера в том случае, если список расширений слишком велик. По умолчанию доступ к этой опции блокирован, об особенностях её использования мы поговорим далее.
  • Hardware acceleration — — знакомая по предыдущим версиям драйверов Multi-display hardware acceleration. Также влияет только на OpenGL приложения.

Как Вы могли заметить, хотя список унифицированных настроек и пополнился некоторыми действительно общими для двух API опциями, добрая часть от их общего количества (например, Extension limit, Conformant texture clamp) всё равно жёстко привязана только к одному API. И от этого факта никуда не деться, поскольку у каждого API своя специфика, свои особенности и свои проблемы, которые нужно учитывать с помощью тех или иных настроек в панели управления. Хорошо это или плохо? С одной стороны, при такой организации настроек неопытному пользователю быстрее и проще добраться до нужной опции. С другой стороны — далеко не любому опытному пользователю приятно видеть в одном месте неструктурированную кашу из опций, относящихся к разным API. Хотя мы и предпочли бы по-прежнему видеть разделение опций, абсолютно не поддающихся унификации, мы понимаем, что выбранный NVIDIA подход, вероятнее всего, диктуется ещё одним нововведением, появившимся в семействе ForceWare 2.0, а именно системой профилей для разных приложений. Итак, встречайте центральное и, несомненно, самое полезное нововведение панели настроек этого семейства драйверов — менеджер профилей, позволяющий задавать независимые настройки для каждого 3D приложения.

Мы думаем, что не ошибёмся, если скажем, что добрая половина игроков, пользующихся сторонними утилитами для настройки своих видеоадаптеров, делают это в первую очередь из-за возможности создания профилей, позволяющих установить свои настройки для каждого 3D приложения. Такой функциональной возможностью в той или иной мере сейчас обладает практически каждый более или менее развитый программный продукт, принадлежащий к категории так называемых твикеров. Для нас остаётся загадкой, почему ни один из двух основных конкурентов, доминирующих сейчас на рынке графических ускорителей, до сих пор не включал данную наиполезнейшую функциональную возможность в свои драйвера. Как это ни странно звучит, но до появления ForceWare 2.0 полноценной схемой создания независимых профилей для 3D приложений обладали только драйвера малораспространённой STM Kyro. Справедливости ради стоит отметить, что ещё с давних времён в драйверах Detonator существовала система создания профилей Direct3D / OpenGL настроек, позволяющая сохранить состояние всех опций, а затем быстро восстановить его при необходимости из списка в панели настроек либо из контекстного меню в панели задач. Безусловно, такой подход облегчал жизнь пользователям, он не решал основной проблемы — перед запуском нужной игры всё равно приходилось выбирать нужный профиль вручную. Да, пускай и не целиком перенастраивать драйвер, а просто подгружать профиль, но всё равно приходилось выполнять лишние рутинные действия перед каждым запуском. Не так давно анонсировали появление системы профилей в своей панели настроек и ATI, однако за расписанной в пресс-релизе Catalyst 3.8 системой игровых профилей, обеспечивающих возможность задания уникальных настроек для каждого 3D приложения, скрывалась такая же точно чахлая идея ручной подгрузки профилей, поэтому ничего, кроме разочарования пользователей, это нововведение, к сожалению, не вызвало. Сейчас же пользователям ATI, мечтавшим о появлении полноценной системы профилей 3D приложений, остаётся только позавидовать бело-зелёному фронту, поскольку в ForceWare 2.0 NVIDIA удалось довести идею системы профилей 3D приложений до совершенства и воплотить мечты многих пользователей в реальность. Признаемся, и наши тоже. Искренне надеемся, что ATI также не останется в долгу, и подобный функционал появится в будущем и в драйверах Catalyst.

Давайте посмотрим, как же подошли к этому вопросу программисты NVIDIA. Как говорится, всё гениальное — просто. Многие опытные пользователи наверняка знают, что при создании контекста (т.е. при запуске того или иного 3D приложения) и Direct3D и OpenGL драйвер считывают свои настройки из ключей реестра. Именно значения этих ключей и изменяют утилиты-твикеры да и сама панель настроек для управления теми или иными возможностями драйвера. Идея реализации профилей со стороны драйвера проста и красива до безобразия. Теперь при создании контекста драйвер вначале пытается считать из реестра ключ, префиксом в имени которого является имя исполняемого файла, создавшего контекст Direct3D / OpenGL приложения, а уже только потом оригинальный ключ. Так, например, при запуске нестареющего Quake III драйвер вначале попробует считать режим управления вертикальной синхронизацией из ключа _quake3.exe:OGL_DefaultSwapInterval, а уже только если он отсутствует — из оригинального OGL_DefaultSwapInterval. Преимущества такого подхода очевидны: драйверу можно «передать» собственные значения каждой из настроек (в том числе и недокументированных, то есть не поддерживаемых панелью настроек драйвера) для каждого исполняемого файла. При отсутствии персональных настроек под определённое приложение драйвер будет использовать привычные ранее глобальные настройки. Бесспорно, такой подход открывает неограниченные возможности перед разработчиками сторонних твикеров, и можно прогнозировать, что в скором времени программные продукты на основе данной технологии начнут плодиться, как грибы. По крайней мере, поддержку этой технологии как минимум в одном программном продукте мы, как разработчики RivaTuner, можем Вам гарантировать :) Остаётся только поблагодарить NVIDIA за технологически красивое и, самое главное, универсальное решение.

Со стороны же панели настроек драйвера поддержка данной технологии выглядит следующим образом: управление профилями осуществляется группой настроек Application profiles в той же самой закладке Performance & Quality и уже знакомым нам списком Driver settings. Элементы управления группы Application profiles позволяют Вам как выбрать и изменить настройки уже существующего профиля (кнопка Modify), так и добавить новый (кнопка Add). При добавлении нового профиля Вам предложат выбрать один из уже существующих в базе данных панели настроек исполняемых файлов, либо указать местоположение нового, а также ввести имя для создаваемого профиля:

Отметим, что при создании профиля Вы можете ассоциировать с ним сразу несколько приложений, отметив их в вышеприведённом списке. Полезно это, в первую очередь, для игр, имеющих несколько независимых исполняемых файлов (например, присутствующая в списке Soldier of Fortune II имеет сингл и мультиплеер версии, размещённые, соответственно, в файлах sof.exe и sof2mp.exe).

После создания либо выбора уже существующего профиля внешний вид закладки Performance & Quality модифицируется следующим образом:

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

Отметим, что помимо возможности создания пользовательских профилей, панель настроек по умолчанию содержит также несколько десятков так называемых предопределённых профилей, созданных программистами NVIDIA для тех или иных игровых приложений и предназначенных для обхода специфичных для этих приложений проблем или для улучшения качества изображения. В отличие от пользовательских, предопределённые профили не могут быть удалены, однако вы можете модифицировать их, добавив в них свои, либо изменив рекомендованные NVIDIA настройки. Запрет на удаление предопределённых профилей, на наш взгляд, связан с тем, что они несут несколько более расширенный по сравнению с пользовательскими функционал и управляют также и доступностью тех или иных опций в панели управления. Так, например, предопределённый профиль для Splinter Cell в силу особенностей движка запрещает выставлять в панели настроек опции полноэкранного сглаживания для этого приложения; профиль для Medal of Honor делает доступной для этого приложения заблокированную по умолчанию опцию Extension limit и т.д. Нельзя не согласиться, что это достаточно разумный подход.

Итак, Вы вправе спросить нас: неужели NVIDIA действительно удалось реализовать идеальную систему персональных профилей для 3D приложений? Ответ наш будет следующим: да, по нашему мнению, технология персональных настроек для приложений со стороны драйвера идеальна, и развивать её дальше уже просто некуда. А вот воплощение этой технологии в жизнь со стороны панели настроек хотя и достаточно удобно и красиво, но пока всё же немного хромает. Самым главным недостатком, на наш взгляд, является отсутствие проверок на пересечение связанных с приложением настроек при создании либо редактировании профиля. На данный момент никто не мешает Вам создать n-ное количество профилей, связанных с одним и тем же исполняемым файлом и задающим для него разные значения одной и той же настройки. Крайне нелогично и не интуитивно для пользователя. Да, мы понимаем, что действовать будет только последний профиль, который мы выбрали и нажали после этого кнопку Apply, но для того, чтобы это понять, нам пришлось заглянуть во внутренности панели настроек. Как до этого должен доходить обычный пользователь? На наш взгляд, панель настроек должна отслеживать такие вещи и, как минимум, предупреждать пользователя о возможной коллизии, либо вообще блокировать ему доступ к пересекающимся настройкам. Есть и вторая не менее неприятная проблема: даже если настройки и не пересекаются, то всё равно возможно создать несколько профилей для одного и того же приложения, которые будут изменять независимые настройки (к примеру, первый профиль для Quake III форсирует анизотропную фильтрацию, второй — полноэкранное сглаживание). А теперь представьте, что будет, если мы захотим использовать настройки по умолчанию для того же самого Quake III, особенно если список профилей велик, а их имена не полностью соответствуют содержимому? Задача, к сожалению, сведётся к полному перебору. На наш взгляд, панель настроек должна либо иметь функционал по поиску всех профилей, связанных с нужным нам приложением, либо, опять же, уметь блокировать создание двух и более профилей для одного исполняемого файла. Что же, нам остаётся только надеяться, что эти логические «ляпы» будут устранены в публичной версии ForceWare 2.0. Ну а пока давайте посмотрим на остальные нововведения этого семейства драйверов.

Нельзя не обратить внимания на изменившуюся закладку More Direct3D (напомним, что за её включение отвечает нулевой бит DWORD ключа CoolBits, расположенного в реестре в ветке HKLM\SOFTWARE\NVIDIA Corporation\Global\NVTweak). Хотя практически все появившиеся в этой закладке новые опции и предназначены в первую очередь для разработчиков и вряд ли будут полезны игрокам и простым пользователям, обойти их вниманием мы не можем:

Во-первых, нас очень порадовал усовершенствованный граф производительности, на котором теперь может отображаться и легенда, а также появилась информация о количестве полигонов в кадре и объёме используемой набортной / AGP памяти. В будущем будут полезными также и опциональные графы температуры для карт семейства NV3x, обладающих термодатчиком (пока они заблокированы в данной версии). Весьма полезный инструмент для разработчиков (отметим однако, что графы по-прежнему некорректно отображаются при включении полноэкранного сглаживания):

Во-вторых, достаточно полезны при определении «бутылочного горлышка» того или иного Direct3D приложения и опции Force textures to lowest MIP level и NULL fixed function / NULL PS1.x / NULL PS 2.x, позволяющие, соответственно, сократить нагрузку на блоки текстурирования либо заменить «пустышками» пиксельные шейдеры той или иной версии в нужном нам приложении. Думаем, что обозреватели, ломающие голову над тем, что именно ограничивает производительность того или иного бенчмарка, по достоинству оценят это нововведение.

В-третьих, надо отметить, что наконец-то из данной закладки исчез ползунок Texel alignment для тех видеоадаптеров, для которых он физически не работает. Мы разговаривали об этой проблеме с разработчиками драйверов, и приятно видеть, что к нашему мнению прислушались и неработающая настройка больше не «мозолит глаза» владельцам чипов NV20 и старше.

Нельзя также обойти вниманием и усовершенствованную встроенную утилиту разгона (напоминаем, что за её включение также отвечает первый бит ключа CoolBits). В первую очередь бросается в глаза появившееся в ForceWare 2.0 Overclocking License Agreement, которое нас вынуждают принять при активизации разгона:

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

Эту идею NVIDIA, очевидно, позаимствовала у ATI и известной там под маркой Overdrive технологии автоматического контроля частоты графического процессора в зависимости от температуры. Собственно, Overdrive мы упомянули не случайно. Разгон средствами этой технологии в драйверах Catalyst, к сожалению, оставляет желать лучшего и вряд ли получит широкое распространение, поскольку на большинстве систем с топовым видеоадаптером RADEON 9800XT прирост при её активизации просто мизерный и составляет всего 7MHz по частоте ядра, поэтому нам весьма интересно, что же противопоставит им в этом плане конкурент. Давайте посмотрим, как подошли к реализации этого вопроса программисты NVIDIA и удалось ли им сделать автоматический разгон более эффективным.

Несмотря на всю заманчивость новизны, реалии оказались более банальными. Мы все помним про AutoDetect в ForceWare, который позволяет узнать максимально безопасные частоты работы карты в 3D. Новый параметр Auto Overclocking по сути делает то же самое, но в фоновом режиме, то есть пользователь не ждет окончания тестирования частот, а это происходит само по себе. В результате устанавливается предельная частота работы в 3D, на которую ускоритель ориентируется (при повышении нагрева выше критической отметки частоты сбрасываются на номинал и, в отличие от OverDrive, больше не восстанавливаются при снижении температуры). Выводы

Приятно отметить, что семейство драйверов ForceWare 2.0 действительно принесло в панель настроек давно ожидаемые многими пользователями и, не побоимся этого слова, инновационные и действительно полезные возможности. Надеемся, что программисты NVIDIA и далее будут направлять свои силы в правильное русло. Мы уверены, что вещи такого рода приносят пользователям гораздо больше пользы, чем очередное «размножение попугаев» в очередном бенчмарке.




2 марта 2004 Г.

ForceWare 2.0

ForceWare 2.0 (56.56)

The Inquirer NVIDIA ForceWare 2.0, , 56.55, 56.57 ( NVIDIA). -, , . — , NVIDIA , , ( 3DGi - ). , «» — ForceWare 2.0. , NVIDIA ATI, , , . NVIDIA, NV38 R360 GeForce FX , NVIDIA . , Detonator 40.xx. , NVIDIA ATI, Catalyst. , , — . Detonator RivaTuner, , . , NVIDIA ATI , , . , , NVIDIA , ForceWare.

, , — Performance & Quality:

, , , Detonator 40.xx, API Direct3D OpenGL. , 3D API, : , 3D API 3D , , , . , . , ATI, Catalyst 3.8 Direct3D OpenGL 3D.

NVIDIA , , Image quality Intellisample settings (, , , , ). , , , 3D . , , Driver settings, Setting value. . : , , . , , :

, , , .

. , Driver settings , Show advanced settings , :

:

  • Force mipmaps — , - , . , . , , TNT 6.xx. , , . -, . , , , Direct3D OpenGL . — , , , , , . , «» Direct3D OpenGL . -, , , , , . - , - . , NVIDIA , .
  • Conformant texture clamp — Enable conformant OpenGL texture clamp behavior. , OpenGL .
  • Extension limit — OpenGL , OpenGL . , , , , - , - , . , .
  • Hardware acceleration — — Multi-display hardware acceleration. OpenGL .

, API , (, Extension limit, Conformant texture clamp) API. , API , , . ? , . — , API. - , , , NVIDIA , , , ForceWare 2.0, . , , , — , 3D .

, , , , , - , 3D . , . , , , . , ForceWare 2.0 3D STM Kyro. , Detonator Direct3D / OpenGL , , . , , — . , , , . ATI, - Catalyst 3.8 , 3D , , , , , , . ATI, 3D , - , ForceWare 2.0 NVIDIA 3D . , . , ATI , Catalyst.

, NVIDIA. , — . , (.. 3D ) Direct3D OpenGL . - . . , , Direct3D / OpenGL , . , , Quake III _quake3.exe:OGL_DefaultSwapInterval, — OGL_DefaultSwapInterval. : «» ( , ) . . , , , , . , , RivaTuner, :) NVIDIA , , .

: Application profiles Performance & Quality Driver settings. Application profiles ( Modify), ( Add). , , :

, , . , , , (, Soldier of Fortune II , , , sof.exe sof2mp.exe).

Performance & Quality :

, , , , . , . , , , , — .

, , , NVIDIA . , , , , NVIDIA . , , , . , , Splinter Cell ; Medal of Honor Extension limit .. , .

, : NVIDIA 3D ? : , , , . , . , , . n- , . . , , , Apply, , , . ? , , , , . : , , ( , Quake III , — ). , , Quake III, , ? , , . , , , , , . , , «» ForceWare 2.0. .

More Direct3D (, DWORD CoolBits, HKLM\SOFTWARE\NVIDIA Corporation\Global\NVTweak). , :

-, , , / AGP . NV3x, ( ). ( , - ):

-, « » Direct3D Force textures to lowest MIP level NULL fixed function / NULL PS1.x / NULL PS 2.x, , , «» . , , , , .

-, , - Texel alignment , . , , « » NV20 .

(, CoolBits). ForceWare 2.0 Overclocking License Agreement, :

, — , , , GeForce FX, :

NVIDIA, , ATI Overdrive . , Overdrive . Catalyst, , , RADEON 9800XT 7MHz , , . , NVIDIA .

, . AutoDetect ForceWare, 3D. Auto Overclocking , , , . 3D, ( , OverDrive, ).

, ForceWare 2.0 , , . , NVIDIA . , , « » .