nVidia Detonator FX 45.23
На прошлой неделе nVidia выпустила драйвер Detonator FX. Однако он не оказался версией «Release 50», которую столь долго ждали и упоминали на многих форумах. И в то же время новый сертифицированный WHQL драйвер содержит несколько любопытных улучшений.

Помимо исправления нескольких ошибок, связанных с играми, драйвер v45.23 придерживается новых спецификаций nVidia по оптимизации и представляет собой попытку nVidia учесть критические замечания, высказанные по поводу предыдущих оптимизаций в драйверах Detonator FX.
В предыдущем драйвере nVidia использовала агрессивные методы улучшения производительности своих карт в тесте 3D Mark 2003, которые включали предварительный просчёт сцен и другие хитрости (см. Корректность тестирования: игры). Выход драйвера повлёк за собой ожесточённые споры о честности подобных способов оптимизации, а также о границе, за которой начинается жульничество.
Сегодня nVidia выпустила свои собственные спецификации по оптимизации, чтобы положить конец кривотолкам. Компания желает дать гарантию, что все будущие оптимизации будут «легальными», то есть они должны оптимизировать производительность в играх без ухудшения качества картинки.
Спецификации по оптимизации nVidia
Оптимизации можно разделить на два вида: те, которые решают проблемы в играх и исправляют ошибки, и те, которые улучшают производительность игр. В первую категорию попадают игры типа Splinter Cell, где активация полноэкранного сглаживания невозможна по причине 3D-движка. Драйвер отказывается включать FSAA, поскольку это может привести к дефектам картинки.
В категорию оптимизаций производительности можно отнести использование адаптивной анизотропной фильтрации, учитывающей особенности данной игры.
Правила, установленные nVidia для себя, просты и понятны:
- Оптимизация должна приводить к правильной картинке
Здесь nVidia пытается гарантировать, что оптимизация не будет осуществлена в ущерб качеству картинки. На картинке должно выводиться именно то, что должно. Поэтому мы сразу отказываемся от прироста производительности за счёт снижения качества.
- Оптимизация должна ускорять не только тест
Это правило снимает сознательную оптимизацию тестовых режимов (timedemo) в играх, когда пользователь не получит прирост производительности непосредственно в самих играх. Оптимизации, осуществлённые nVidia в более ранних драйверах специально для 3D Mark 2003, типа обрезки кадров, попадают под это правило.
- Оптимизация не должна содержать заранее вычисленных данных
Под заранее вычисленными данными мы понимаем вычисления, которые были предварительно осуществлены при создании драйвера. Это правило отбрасывает предварительно просчитанные данные в тестах.

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

В сфере графических карт оптимизация драйвера является стандартом, и ничего плохого в этом нет. В отличие от стандартов типа Direct 3D и OpenGL, графические чипы на рынке очень сильно отличаются друг от друга по своим архитектурам.
Даже последовательность команд в пиксельной программе-шейдере значительно влияет на производительность 3D-чипа, в зависимости от размера внутренних кэшей и регистров. В данной ситуации оптимизация имеет смысл, но до тех пор, пока она не ухудшает качество изображения. В новых спецификациях nVidia желает гарантировать, что этого не произойдёт. После всей шумихи с 3D Mark 2003 в начале этого года, такой шаг можно признать правильным для восстановления доверия со стороны скептически настроенных пользователей.
Новый драйвер v45.23
Мы протестировали новый драйвер и сравнили его с предшественником, v44.03, по отношению к качеству картинки и производительности. Вряд ли имело смысл сравнивать драйвер с неофициальными версиями, которые спорадически просачиваются в Интернет, поскольку эти версии, изначально не предназначавшиеся для публичного использования, часто содержат проверки различных сомнительных опций или помогают разработчику игры решить проблему в процессе создания игры. Часто эти драйверы, несмотря на увеличенные номера версий, не содержат всех опций «материнского» драйвера.
Тесты качества изображения были проведены на карте GeForce FX 5900 Ultra. При тестировании производительности мы также добавили результаты GeForce FX 5600 Ultra и GeForce 4 Ti 4800 (Ti 4600 с AGP 8x).
Качество изображения: Unreal Tournament 2003
Как было упомянуто в начале статьи, nVidia использует технику так называемой адаптивной фильтрации текстур, как и ATi. Цель адаптивной фильтрации заключается в экономии вычислительных ресурсов компьютера. Одной из особенностей адаптивной анизотропной фильтрации, к примеру, является разный уровень фильтрации текстур, который зависит от угла наклона текстуры по отношению к зрителю. Переходы между уровнями mipmap иногда тоже не полностью подвергаются трилинейной фильтрации. Пользователь может регулировать «адаптивность» драйвера с помощью движка управления качеством в меню драйвера.

Однако на практике это также означает, что драйвер не фильтрует текстуры одинаково для всех приложений. К примеру, nVidia реализовала специальную оптимизированную трилинейную фильтрацию в игре Unreal Tournament 2003. Здесь переходы между уровнями mipmap подвергаются трилинейной фильтрации только лишь в узкой области, при этом полная трилинейная фильтрация применяется только к детализованным текстурам.
Чтобы мы могли легче продемонстрировать уровни фильтрации, мы использовали новейшую версию Unreal Tournament 2003 Patch 2225, которая позволяет подсветить карты mipmap через консоль командой «firstcoloredmip 1». Каждый цвет обозначает собственную карту mipmap. Все скриншоты были получены при разрешении 1024×768, 32 бита. Чтобы осуществить оптимальное сравнение изображений вам следует выставить то же разрешение при их просмотре.

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Детальная текстура на балюстраде полностью фильтруется, как с помощью обычной трилинейной фильтрации, так и с 8x анизотропной. Земля, с другой стороны, подвергается неполной трилинейной фильтрации. Лишь только переходы отчасти используют трилинейную фильтрацию. Между версиями драйверов v44.03 и v45.23 не наблюдается различий.
Качество изображения: Unreal Tournament 2003, продолжение
Ниже вы можете сравнить старый и новый драйверы:

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Как видим, различий между двумя версиями нет.

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
При включении 8x анизотропной фильтрации ощутимых различий не выявляется.
Драйверы и приложения
Раньше повсеместной практикой считалась возможность выставления опций качества типа сглаживания (FSAA) и анизотропной фильтрации в драйверах. В последнее время разработчики игр предпочитают регулировать эти опции непосредственно в самой игре. То есть приложение запрашивает соответствующую функцию напрямую у драйвера. В качестве примера можно привести игру Gunmetal, которая позволяет устанавливать анизотропную фильтрацию и сглаживание.
Возможность выбора графических опций в игре может привести к конфликту между настройками драйвера и приложения. В новом драйвере v45.23 полноэкранное сглаживание может быть отключено или приписано приложению, чтобы драйвер мог полностью контролировать приложение. Что касается анизотропной фильтрации, то возможен лишь последний вариант.
Unreal Tournament 2003 не позволяет регулировать анизотропную фильтрацию в своих графических опциях, хотя графический движок вполне на это способен. Впрочем, у пользователя остаётся возможность ручного выставления опций через файл ut2003.ini. На следующей иллюстрации мы отключили анизотропную фильтрацию в драйвере nVidia и выбрали фильтрацию в приложении:

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Как вы можете заметить, даже в этом случае применяется оптимизированная фильтрация драйвера nVidia. То есть вы не получите настоящей трилинейной фильтрации или настоящей 8x анизотропной трилинейной фильтрации на картах nVidia в играх, поскольку драйвер не позволяет пользователю отключать оптимизацию.
Драйверы и приложения, продолжение
ATi справляется с этой работой лучше. Если пользователь решает выбрать управление фильтрацией через приложение, то драйвер выключает оптимизацию. То есть пользователи могут самостоятельно решать, нужен ли им оптимизированный способ с лучшей производительностью через настройки в меню драйвера или неоптимизированный качественный способ, активируемый через приложение. Впрочем, управление этими настройками в меню драйвера отнюдь не очевидно, как показано ниже.

Здесь ATi даёт пользователю выбор управления всеми настройками качества через приложение. Тогда в Unreal Tournament пользователь получит максимальное неоптимизированное качество фильтрации. Но вряд ли этот способ можно назвать идеальным, поскольку максимальное качество будет достижимо лишь при наличии соответствующей опции по выбору фильтрации в приложении.
Было бы неплохо, если бы nVidia, а также ATi, предоставляли общую опцию качества, которая позволяла бы пользователю активировать неоптимизированную фильтрацию. В данном отношении оба производителя наверняка опасаются того, что эта опция приведёт к ухудшению производительности, поскольку многие издания, скорее всего, будут проводить тестирование только с этой настройкой или тестировать карты при различных настройках (именно так и происходило с более ранними версиями драйверов nVidia, где была подобная опция).
Оба производителя не настолько доверяют друг другу, чтобы идти на этот шаг добровольно. Если производитель A даёт возможность выбора настоящей фильтрации, а производитель B реализует несколько незаметных оптимизаций, то последний получит существенное преимущество. Вполне очевидно, что на графическом рынке с высокой конкуренцией ни один из производителей не смеет интегрировать эту опцию в драйвер.
Когда мы спросили про оптимизированную фильтрацию в Unreal Tournament 2003, nVidia заявила, что она советовалась с игровым разработчиком Epic перед внедрением этой оптимизации в публичные драйверы. Компания не поясняет, в чём заключаются отличия между настоящей и оптимизированной фильтрациями.
Оптимизированная фильтрация nVidia в UT2003 иногда упоминается как «билинейная анизотропная фильтрация», но этот термин нельзя считать точным. Сравнение качества изображения в Quake 3, чуть ниже в статье, показывает, на что похожа билинейная фильтрация.
Драйверы и приложения, продолжение
Наконец, давайте сравним фильтрацию ATi Radeon 9800 PRO и nVidia FX 5900 Ultra:

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Ещё одна картинка:

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Как видим, оптимизация ATi оказывается существенно более агрессивной, чем у nVidia. Переходы предполагают использование чистой билинейной анизотропной фильтрации. Однако ATi использует более высокий уровень фильтра, чем nVidia (поверхности mipmap сильнее запаздывают). При передаче управления фильтрацией к приложению ситуация иная. В данном случае оптимизированная фильтрация отключается, и в дело вступает полная трилинейная анизотропная фильтрация.
Планировала ли ATi реализовывать данный эффект на самом деле — вопрос спорный, поскольку опция «настоящей фильтрации» отсутствует в меню драйвера. Файл помощи драйвера также не даёт какой-либо информации по этому поводу. Но до тех пор, пока приложение позволяет активировать анизотропную фильтрацию через драйвер, по крайней мере, с картами ATi, вы получите возможность использовать настоящую трилинейную фильтрацию.
При просмотре изображений не обращайте внимания на различия в яркости скриншотов, поскольку это зависит от функции гамма-коррекции программы по захвату Hypersnap.
Качество изображения: Quake 3 Team Arena
В Quake 3 мы не смогли найти оптимизации на том же уровне, как в Unreal Tournament 2003. Следующая иллюстрация демонстрирует возможные уровни фильтрации в игре.

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Различие между билинейной и трилинейной фильтрацией становится очевидным на скриншотах слева. Переходы между уровнями mipmap легко заметны по горизонтальным полоскам. При активации анизотропной фильтрации ситуация меняется. Хотя подсвеченные уровни mipmap демонстрируют драматические отличия, они будут заметны только при очень внимательном рассмотрении — по крайней мере, на статических изображениях.
Во время движения вы можете заметить небольшие отличия, в зависимости от структуры текстуры. Однако иллюстрации демонстрируют, как nVidia реализовала идею частичной трилинейной фильтрации переходов в UT2003, поскольку различие едва заметно, даже при движении.

Приведённое изображение сжато и может сбить с толку. Нажмите на него для получения версии в формате BMP.
Как демонстрируют скриншоты, между драйверами v44.03 и v45.23 нет различий в фильтрации.
Тестовая конфигурация
| Общее аппаратное обеспечение | |
| Материнская плата | ASUS A7N8X Deluxe. чипсет nVidia nForce 2 |
| Процессор | AMD Athlon XP 2700+ |
| Память | 2x 256 Мбайт Corsair CL2 |
| Драйверы и конфигурация | |
| Графический драйвер | Detonator FX v44.03 Detonator FX v45.23 ATI Catalyst v3.6 |
| Драйвер чипсета | nVidia |
| Версия DirectX | 9.0b |
| ОС | Windows XP Professional SP1 |
| Тесты | |
| Unreal Tournament 2003 | Version 2225 Antalus Flyby |
| Quake III Team Arena | Patch V1.32 Custom Timedemo |
| Gunmetal Benchmark | Version 1.20s |
| 3DMark 2003 | Version 3.3.0 |
| Nascar Racing 2003 OpenGL |
Demo Version Custom Timedemo FPS measured with FRAPS |
UT 2003 Standard



В 1024×768 новый драйвер с картами GeForce FX оказывается медленнее, но на высоких разрешениях ситуация исправляется. Результаты GeForce4 Ti практически идентичны.
UT 2003 Quincunx



При использовании сглаживания Quincunx карты GeForce4 Ti 4800 и FX 5900 Ultra оказываются несколько медленнее. Однако FX 5600 Ultra получает небольшой прирост с новым драйвером.
UT 2003 4x сглаживание



Как и в случае сглаживания Quincunx, Ti 4800 и FX 5900 в разрешении 1024×768 с новым драйвером оказываются медленнее. Однако в разрешении 1600×1200 обе карты FX получают существенный прирост в скорости.
В данном случае довольно трудно определить, что точно осуществила nVidia. Между двумя версиями драйвера нет чётких отличий. К сожалению, сделать скриншоты со сглаживанием в разрешении 1600×1200 не представляется возможным, поскольку на них не будет виден эффект сглаживания.
UT 2003 8x анизотропная фильтрация



Карты FX демонстрируют тенденцию к небольшому падению производительности. Однако результаты Ti 4800 оказываются практически идентичными при использовании обеих версий драйверов.
UT 2003 4x сглаживание + 8x анизотропная фильтрация



Здесь вновь карты FX получают преимущество от лучшей производительности сглаживания в разрешении 1600×1200.
Gunmetal 4x сглаживание



Gunmetal демонстрирует отсутствие существенных отличий между двумя версиями драйвера. Преимущество по производительности в UT при разрешении 1600×1200 здесь отсутствует.
Q3 Normal



В Quake 3 новый драйвер тоже демонстрирует тенденцию сниженной производительности по сравнению со старой версией.
Q3 4x сглаживание



При включении 4x сглаживания оба драйвера демонстрируют практически идентичный результат. Преимущество в разрешении 1600×1200, очевидное в UT2003, отсутствует в Quake 3.
Q3 8x анизотропная фильтрация



Мы получили практически идентичные результаты, хотя новый драйвер всё же чуть медленнее.
Q3 4x сглаживание + 8x анизотропная фильтрация



Практически идентичные результаты.
Nascar 2003 Normal



Результат, полученные с помощью FRAPS в Nascar 2003 (OpenGL) с максимальными установками качества демонстрируют отсутствие различий в двух драйверах.
Nascar 2003 4x сглаживание + 8x анизотропная фильтрация



Здесь тоже нет различий.
3D Mark 2003

Оптимизации в драйвере для 3D Mark 2003, которые Futuremark деактивировала с помощью Patch v330, вновь активны в новом драйвере.
| GeForce 4 Ti 4800 | GeForce FX 5600 Ultra | GeForce FX 5900 Ultra | ||||
| Драйвер | v44.03 | v45.23 | v44.03 | v45.23 | v44.03 | v45.23 |
| Результат | 1751 | 1793 | 2706 | 3325 | 4729 | 5715 |
| GT1 Крылья ярости | 116.3 | 122.1 | 123.8 | 135.7 | 160.1 | 169.7 |
| GT2 Битва за Проксикон | 10.7 | 10.7 | 18.9 | 23.1 | 37.6 | 42.5 |
| GT3 Логово троллей | 10.8 | 10.8s | 15.9 | 19 | 30.5 | 33.9 |
| GT4 Мать Природа | 0 | 0 | 9.3 | 15.2 | 19.1 | 33.9 |
| Результат процессора | 580 | 581 | 573 | 571 | 574 | 571 |
| Тест процессора 1 | 58.4 | 58.9 | 57.3 | 56.7 | 57.4 | 56.9 |
| Тест процессора 2 | 11.4 | 11.3 | 11.3 | 11.3 | 11.3 | 11.3 |
| Скорость заполнения (одна текстура) | 864.3 | 864.3 | 1112.5 | 1112.4 | 1479.9 | 1479.6 |
| Скорость заполнения (мультитекстурирование) | 2195.8 | 2196 | 1349.6 | 1349.2 | 3181 | 3180 |
| Вершинные программы | 6.1 | 6.1 | 5.3 | 7.5 | 10.9 | 17.1 |
| Пиксельные программы 2.0 | 0 | 0 | 7.5 | 18.3 | 19.4 | 47.7 |
При использовании нового драйвера результаты в 3D Mark 2003 драматически повышаются. Однако вы сами должны решить, насколько актуальным для вас является этот тест.
Заключение
Что касается производительности, то мы не смогли обнаружить какое-либо её увеличение с новым драйвером, за исключением 3D Mark 2003 и Unreal Tournament при 4x сглаживании в разрешении 1600×1200. Более того, драйвер работает на картах GeForce FX несколько медленнее, хотя разница невелика — от 1 до 3 fps. Что касается GeForce4 Ti, то никаких заметных отличий мы не выявили.
Оптимизации Futuremark, которые были деактивированы в исправлении 3D Mark 2003 Patch v330, похоже, вновь работают с новым драйвером. Однако степень оптимизаций для нас остаётся загадкой, поскольку THG не является участником бета-программы Futuremark, поэтому мы не имеем доступа к версии 3D Mark 2003 для разработчиков, которая необходима для рассмотрения оптимизаций типа обрезки кадров и отказа от очисток буфера, подвергавшихся критике. nVidia заверила нас, что оптимизации больше не присутствуют в новом драйвере — правила компании это запрещают. Возможно, доверие пользователей к тесту 3D Mark 2003 будет восстановлено.
Новые спецификации nVidia по оптимизации являются шагом в правильном направлении. Их можно рассматривать как реакцию на большое количество критических отзывов, которые компания получила за последние несколько месяцев. nVidia демонстрирует, что компания следует пожеланиям пользователей и принимает меры (то же самое мы видели по отношению к громкому уровню шума вентиляторов FX 5800 Ultra (NV30)).
Однако на один вопрос ответ так и не был получен: как насчёт возможности активации неоптимизированной, настоящей фильтрации? nVidia должна отреагировать на пожелания пользователей и добавить соответствующую опцию в драйвер. При этом желательно реализовать эту опцию через глобальную настройку качества, которая позволяла бы полностью снимать оптимизацию. Тогда можно было бы предотвратить конфликты между настройками, осуществлёнными через приложение, позволяя достичь максимального качества в играх, которые не имеют установок фильтрации.
То же самое относится и к ATi. Здесь настоящая трилинейная фильтрация возможна, только, если её способно включить приложение. Хорошо было бы добавить эту опцию в драйвер.
Было бы неплохо услышать официальную позицию ATi по поводу оптимизации драйвера. Хотя ATi уже высказалась несколько месяцев назад, что компания не будет осуществлять «нечестную» оптимизацию драйверов, она не опубликовала каких-либо спецификаций по оптимизации.
Для дальнейшего чтения:
nVidia даёт расширенную информацию об отдельных изменениях, внесённых в драйвер по сравнению с предшествующей версией в release notes (на английском).