Windows Vista и видеокарты | Введение
30 января мир пополнился новой операционной системой Windows Vista. Немногим раньше для разработчиков программного и аппаратного обеспечения была выпущена RTM-версия новой ОС.
Нам было интересно оценить графические возможности новой системы. Посмотрим, что Vista может предложить нам сегодня. В нашей статье мы поговорим о графическом интерфейсе и его текущем состоянии. Наконец, мы сравним игровую производительность Vista Ultimate и Windows XP Professional.
Windows Vista и видеокарты | Нужна ли она?
Когда на рынок выходит новый продукт, призванный заменить предыдущее поколение, то в интересах компании улучшить его новыми функциями и добавками. Напротив, в некоторых случаях хорошо сократить изменения до минимума, чтобы он напоминал оригинал. В качестве примеров можно привести Coca-Cola или Ford Mustang. На технологической сцене потребители требуют улучшений с сохранением ощущения знакомого продукта. Поэтому Vista во многих отношениях – это XP после пластической хирургии с новыми утилитами.
В боковую панель можно добавить последние новости и другие приятные утилиты.
Если вы хотите улучшить свою производительность или получить доступ к полезным утилитам, то боковая панель – прекрасное место для размещения заметок, адресной книги, калькулятора и даже игр.
Если отойти от рабочего стола, то окна теперь могут быть прозрачными, полупрозрачными или любыми другими по вашему желанию. Переход в 3D-пространство позволяет пользователю внести новые изменения во внешний вид ОС. Нам понравилась опция предварительного просмотра содержимого окна без перехода к нему. Оно будет выводиться, если перемещать курсор мыши по заголовкам приложений в панели задач. Ещё одной любопытной возможностью можно назвать слой окон в трёхмерном пространстве.
Windows Vista и видеокарты | Обзор графического интерфейса
Как вы уже, наверняка, знаете, Windows Vista смотрится по-новому, да и работа с этой ОС вызывает другие ощущения. Но изменения не только поверхностные. На самом деле они вплетены в ядро. Предыдущие версии Windows использовали API (интерфейс прикладного программирования) под названием “graphical device interface/GDI)”, которое отвечало за вывод изображений в 2D-режиме. Если GDI занималось 2D-графикой и пользовательским интерфейсом, то для 3D-игр и приложений были разработаны интерфейсы DirectDraw и Direct3D. Начиная с Windows 2000, драйверы устройств должны были соответствовать новой модели Windows Driver Models/WDM. То есть все драйверы режима ядра должны были соблюдать стандарт. Каждая новая версия должна содержать предыдущие функции WDM, если только не требовалась существенная переработка драйвера. Ниже представлена модель драйверов Windows XP (XPDM), включая взаимодействие с другими API и библиотеками.
Собственность Microsoft Corp.
Все предыдущие версии Windows использовали 2D-интерфейс. Пользователи же Vista получили в своё распоряжение трёхмерный рабочий стол. Благодаря росту вычислительной мощности современных видеокарт Microsoft взяла совершенно иной подход с моделью драйверов Windows Vista Display Driver Model (WDDM).
Собственность Microsoft Corp.
До последнего времени крах графической подсистемы приводил к краху всей ОС. Ситуация с Vista изменилась. От Windows NT до XP драйверы являлись частью ядра. Подобный шаг позволял улучшить графическую производительность, но за счёт стабильности, поскольку сбойный драйвер мог вывести систему из строя. Процессы, работающие в режиме ядра, могут перезаписывать память, принадлежащую другому процессу, да и вообще, творить что угодно.
Ситуация с драйверами практически вышла из под контроля, поэтому Microsoft пришлось с этим что-то делать, тем более что современные графические процессоры ничуть не проще, чем центральные. Эта сложность требует повышенного внимания к надёжности драйверов. Перевод части драйверов из режима ядра в режим пользователя (WDDM User) позволяет снизить проблемы, связанные со сбойными драйверами. Драйвер в режиме ядра (KMD) работает там, где нужно, но основная часть драйвера находится вне пределов драгоценного ядра. Причём графика – не единственное место, где изменились драйверы. Подобные перемены произошли с драйверами USB, принтера, звука и других устройств. Кстати, перевод драйверов в пользовательское пространство привёл к ещё одному принципу, который получался не всегда: после установки драйвера перезагрузки не требуется.
Windows Vista и видеокарты | Графическое API в Vista
Windows Vista и видеокарты | OpenGL
Изначально Microsoft планировала создать свою реализацию OpenGL. Но потом этот подход был признан тупиковым с точки зрения поддержки и интересов независимых разработчиков программ. Поэтому интерфейс был открыт аппаратным разработчикам, которые должны были создать собственную версию. Если в системе нет драйвера от аппаратного разработчика, Vista вернётся к драйверу по умолчанию. Если судить по статье разработчика Microsoft Чака Валбурна (Chuck Walbourn), опубликованной на Microsoft Developer Network, существуют три особенности Vista, касающиеся 3D-ускорения и OpenGL (перевод THG.ru).
#1 Программный рендеринг MS OpenGL (поддерживается OpenGL 1.4).
“Если драйвер ICD не установлен, то система, в большинстве случаев, откатится обратно до программной поддержки OpenGL v1.1”.
#2 Драйвер OpenGL от производителя.
“Windows Vista обеспечивает ту же поддержку OpenGL, что и Windows XP. Это позволяет производителям видеокарт предлагать драйвер ICD (installable client driver) для OpenGL, который обеспечивает аппаратное ускорение. Обратите внимание, что для полной поддержки Windows Vista могут потребоваться обновлённые версии драйверов ICD”.
#3 Vista возьмёт старое API и встроит его в D3D.
“Графическая подсистема Windows Vista была разработана с учётом широкой поддержки аппаратных ресурсов и пользовательских сценариев, чтобы не только обеспечить доступ к новым технологиям, но и продолжать работать на существующих системах. Текущие графические интерфейсы, такие как GDI, GDI+ и старые версии Direct3D, будут продолжать работать под Windows Vista, но внутри их, по возможности, привязки будут изменены. Это означает, что большинство существующих приложений Windows будет работать и под Vista. Новая ОС поддерживает те же самые интерфейсы Direct3D и DirectDraw, как и Windows XP, вплоть до версии DirectX 3 (за исключением режима Direct3D Retained Mode, который был удалён). Как и в случае Windows XP Professional x64 Edition, 64-битные приложения Windows Vista ограничены Direct3D9, DirectDraw7 или новыми интерфейсами. Высокопроизводительным приложениям, если они хотят получить максимум от аппаратных возможностей, следует придерживаться Direct3D 9 или более поздних API”.
Нам представилась возможность пообщаться со специалистом по архитектуре OpenGL Бартольдом Лихтенбелтом (Barthold Lichtenbelt). Он пояснил, что если ICD от производителя нет, то будет использоваться перевод на D3D. Таким образом, OpenGL 1.4 будет работать программно под D3D. Поэтому лучше всего устанавливать драйвер OpenGL от производителя видеокарты.
Насчёт будущего OpenGL под Vista и других разработок Бартольд дал ясно понять: интерфейс OpenGL прочно “врос” в Vista. И, как предсказывает Бартольд, OpenGL даст более высокую производительность по сравнению с D3D после грядущих изменений в стандарте. Всё-таки OpenGL насчитывается 14 лет, а в этом году запланировано два выпуска новых спецификаций.
“Мы вновь возвращаемся на OpenGL, – сказал Бартольд, – чтобы разработчики могли писать приложения быстрее и легче, чтобы они были более стабильны и содержали меньше ошибок, что отнюдь не плохо”.
“ARB будет очень агрессивно продвигать OpenGL в этом году”, – считает Лихтенбелт.
Первым выйдет Longs Peak. Эта спецификация будет предназначена для существующих графических процессоров. Следующая спецификация Mt. Evans (по названиям вершин в Колорадо) нацелена на графические процессоры нового поколения, которые поддерживают геометрические шейдеры и другие новшества, появившиеся в GPU класса D3D10.
Windows Vista и видеокарты | DirectX10
В прошлом году мы уже опубликовали статью, посвящённую DX10, где разобрали и спецификации Direct3D. Не будем повторяться и уделим основное внимание графической части API DirectX10. В целом, можно отметить пять важных изменений в новом API.
- Улучшенные возможности для программистов по созданию кода (Shader Model 4.0 и геометрические шейедеры);
- строгие аппаратные спецификации;
- улучшенная производительность (меньшее число команд на кадр);
- унифицированный набор инструкций (High Level Shader Language 10);
- потоковый ввод/вывод (геометрические шейдеры могут записывать в память).
Если улучшенные возможности кода и строгие аппаратные спецификации импонируют независимым разработчикам ПО и “железа”, то для энтузиастов более интересны три последние пункта. Их возможности просто поражают.
Если взглянуть с позиции архитектуры, то унифицированный подход для решения задач кажется логичным. Кому нужны фиксированные блоки, которые могут только обрабатывать вершинные или пиксельные шейдеры, когда появилась возможность отобрать необходимое число блоков для решения задачи? Унифицированный набор инструкций позволяет всем потоковым процессорам внутри ядра менять свои функции “на лету”. Подобная гибкость в решении задач позволила nVidia G80 (линейка GeForce 8800) выполнять в два раза больше работы по сравнению с предыдущим поколением. Конечно, число транзисторов при переходе с G70 на G80 удвоилось, но обычно это не приводит к удвоению производительности. Теперь, не ограничиваясь “узкими местами”, ядро может изменять функции блоков, оптимизируя нагрузку.
Мощный блок обработки Input Assembler (IA) обеспечивает компоненты графического процессора достаточным числом потоков, чтобы они были загружены на 100%. IA также тегирует данные, чтобы их можно было использовать вместе с другими потоками, и даже дублирует данные. Собственно, это и скрывается под термином instancing. IA теперь может создавать и тегировать сотни, если не тысячи готовых объектов, и выводить их на сцену. В предыдущих архитектурах это было попросту невозможно.
Подобные изменения привели к повышению эффективности выполнения задач на процессоре. Кроме того, были сделаны определённые шаги, чтобы снизить избыточность количества информации, связанную с большими драйверами. Как мы уже упоминали, большая часть драйвера вынесена из режима ядра Vista. Меньшая избыточность означает, что центральному процессору и другим компонентам можно будет выполнить больше другой работы. Высвобожденные ресурсы можно пустить на другие нужды. Например, в случае игр можно обеспечить больше кадров в секунду или лучшее качество картинки. Либо добавить ещё и физические вычисления, сохранив fps на прежнем уровне.
Наконец, отметим геометрические шейдеры (Geometry Shader, GS). Если существующие игры и не получают от них преимущества, то про будущие игры такого не скажешь. И сила геометрических шейдеров заключается в возможности записи в память. Эта технология названа потоковым выводом (Stream Output, SO). С помощью SO геометрический шейдер может возвращать данные в процесс в любой его части. То есть подача данных с IA и блока вершинных шейдеров вообще может прекратиться, и сцена будет отрисовываться только за счёт манипуляции существующими данными. Просто подумайте об играх, которые можно генерировать в реальном времени.
Windows Vista и видеокарты | Сравнение производительности
Во время тестирования мы нередко сталкивались с какими-то проблемами. Операционная система готова к отгрузке покупателям, но, как понимаете, множество ошибок выплывают только после массового тестирования новой ОС. После их исправления производитель выпускает патчи или даже целые пакеты обновления Service Pack. Тем более, что разработчикам программного и аппаратного обеспечения приходилось работать с RTM-версией, которая ещё более “сырая”, чем финальная. Говоря о разработчиках аппаратных средств, следует упомянуть команды разработки драйверов nVidia и AMD (ранее ATi), которые высказались в том ключе, что драйверы для новой платформы собирать было несложно. Но обе команды признались, что проблемы тоже пришлось преодолевать.
“Ты что-нибудь поправишь, потом займёшься оптимизацией и окажется, что нарушил что-то другое, – сказал Guennadi Riguer, инженер по разработке ПО из AMD. – У платформы стабильный фундамент, но разные мелочи постоянно дорабатываются, поэтому и новые сборки драйверов выходят ежедневно”.
Мы использовали ту же самую аппаратную платформу, что и для других наших сравнительных тестов. Единственное изменение касалось другой ОС и драйверов. Как вы увидите ниже, работы Microsoft предстоит немало. Кстати, у драйвера nVidia обнаружилась любопытная черта.
Мы последовали стандартной процедуре установки драйвера nVidia, но Vista отказалась его принимать. На странице драйвера была указана карта nVidia GeForce 7900 GTX, но без добавки “Microsoft Corp.-WDDM”. После нескольких попыток мы всё же заставили Windows Vista принять драйвер. Но во время тестирования обнаружили ужасную производительность OpenGL-приложений, хотя nVidia поставляет OpenGL ICD в сборке ForceWare 97.46.
Под OpenGL мы обнаружили некоторые проблемы с Fraps, поэтому использовали отдельную карту захвата для видео. OpenGL-драйвер вообще не использовался, и нам пришлось заняться поиском проблемы. Как оказалась, она была связана с английской сборкой ForceWare 97.46. Установщик Windows Vista не смог правильно поставить этот драйвер. Поэтому нам пришлось установить международную версию драйвера. Она решила проблему, и мы смогли приступить к тестированию.
По графикам производительности видно, что мы использовали nVidia GeForce 7900 GTX, а не GeForce 8800 GTX. Причина кроется в ситуации с драйверами. На момент тестирования (конец января) публичные драйверы для линейки 8800 ещё не вышли. Собственно, мы хотели сравнить производительность между Vista и XP, так что вариант 7900 GTX нас вполне устроил.
Windows Vista и видеокарты | Тестовая конфигурация
Системное аппаратное обеспечение | |
Процессор | Intel Core 2 Extreme X6800 Conroe, 2,93 ГГц, FSB 1 066 МГц, кэш L1 32 кбайт + 32 кбайт, кэш L2 4 Мбайт |
Платформа | eVGA 122-CK-NF68-AR, LGA 775, nVidia nForce 680i SLI, BIOS 2.053.57 |
Память | Corsair CM2X1024-9136C5D, 2x 1024 Мбайт @ 800 МГц (CL5-5-5-15) |
Жёсткий диск | Western Digital Raptor, WD1500ADFD, 150 Гбайт, 10 000 об/мин, кэш 16 Мбайт, SATA150 |
Сеть | Встроенная nForce4 Gigabit Ethernet |
Видеокарты | ATi Radeon X1950 XTX 512 Мбайт GDDR4, ядро 650 МГц, память 1 000 МГц (2,00 ГГц DDR) nVidia GeForce 7900 GTX 512 Мбайт GDDR3, ядро 675 МГц, память 820 МГц (1,64 ГГц DDR) |
Блок питания | PC Power & Cooling Turbo-Cool 1 000 Вт |
Кулер CPU | Zalman CNPS9700 LED |
Системное ПО и драйверы | |
ОС | Microsoft Windows XP Professional 5.10.2600, Service Pack 2, Microsoft Windows Vista RTM – Ultimate |
Версия DirectX | Windows XP – 9.0c (4.09.0000.0904) Windows Vista-Ultimate – 10 |
Графические драйверы | ATi – Catalyst 8.31.100.3.2.1 Vista 32 RTM nVidia – ForceWare 97.46 International |
Windows Vista и видеокарты | Результаты тестирования
Windows Vista и видеокарты | 3DMark05
Мы провели тесты во всех разрешения, причём, во время первого прогона мы выключили сглаживание и анизотропную фильтрацию. Второй прогон проходил при настройках 4xAA (сглаживание) и 8xAF (анизотропная фильтрация).
По графику производительности видно, что у AMD (ранее ATi) драйвер Vista даёт производительность на таком же уровне, как в Windows XP. Microsoft утверждает, что вполне можно ожидать ситуации, когда графическая производительность под Vista упадёт на 5-10% по сравнению с Windows XP. nVidia ведёт себя схожим образом при отключённых сглаживании и анизотропной фильтрации. Но при их включении ситуация кардинально меняется. Мы провели тесты nVidia GeForce 7900GTX под Vista несколько раз, но каждый раз всё равно получали 50% падение производительности в разрешении 2048×1536 с 4xAA и 8xAF. В разрешениях 1600×1200 и 2560×1600 падение составило 37%.
Windows Vista и видеокарты | Doom 3
В стандартном прогоне Doom 3 мы использовали режим высокого качества, встроенный в игру. Он автоматически включает 8x анизотропную фильтрацию. Первый прогон мы провели без сглаживания, а второй – со сглаживанием 4x.
Ситуация в Doom 3 совершенно иная. Очевидно, что у AMD/ATi нет драйвера OpenGL в текущей сборке Vista RTM Catalyst. После общения с командой разработчиков драйвера мы узнали, что в текущей сборке действительно нет компонента OpenGL. Собственно, такую же ситуацию мы получим, если конечный пользователь не озаботится скачиванием OpenGL-драйвера с сайта производителя. Так что по встроенному в Vista драйверу AMD проигрывает. В Catalyst 7.1 драйвер OpenGL уже появился, и в ближайшем будущем мы опубликуем обновлённые тесты.
С нашим драйвером Vista карта Radeon X1950 XTX не смогла запустить Doom 3 в разрешении 2560×1600. На графике ниже мы указали это как 100% падение производительности. Драйвер 7.1 с поддержкой OpenGL был выпущен только 29 января, поэтому мы не смогли учесть его в нашем тестировании.
nVidia в тестах тоже ведёт себя не гладко. Если некоторые результаты вписываются в предполагаемое 10% падение, то в некоторых разрешениях производительность ухудшается вплоть до 27%.
Windows Vista и видеокарты | F.E.A.R.
Мы провели тесты F.E.A.R. в режиме, схожем с двумя предыдущими приложениями. Во время первого прогона мы устанавливали максимальные настройки качества, но выключали AA, AF и мягкие тени. Во втором прогоне мы устанавливали AA в 4x и AF в 8x. Обычно F.E.A.R. показывает лучшие результаты на картах nVidia. Но здесь результаты можно назвать плачевными. Похоже, с режимом без AA/AF наблюдаются некоторые проблемы. Мы не можем сказать, полностью выключает ли их драйвер, или нет. Но, похоже, что не полностью. Результаты с включёнными и выключенными AF/AF у nVidia почти идентичные в первых трёх разрешениях. AMD, с другой стороны, даёт более низкие результаты при выключении сглаживания и анизотропной фильтрации. Как мы надеемся, все эти проблемы будут решены в будущих версиях драйвера.
Вполне понятно, что обеим компаниям следует улучшить производительность в F.E.A.R. без активных опций AA/AF. AMD смогла сохранить тот же уровень производительности, что в XP, в тестах с AA/AF, за исключением разрешения 2560×1600, где отставание составило 33%. В том же тесте производительность nVidia под Vista упала почти на 70%. Всё это разработчикам драйверов необходимо исправить как можно быстрей.
Windows Vista и видеокарты | Oblivion
Наконец, перейдём к весьма “тяжёлой” DX9-игре Elder Scrolls IV: Oblivion. Единственная настройка, которую мы не “выкрутили” на максимум – HDR и мягкие тени. Мы отключили HDR, поскольку nVidia GeForce 7900 GTX не может работать с одновременным HDR-рендерингом и полноэкранным сглаживанием. Включение же мягких теней приводило к артефактам, когда на лицах персонажей появлялись тени, выглядящие как бороды.
На внешней сцене очень большой радиус видимости, день уступает место ночи, а листва колышется под ветром. Серьёзная сцена для нагрузки видеокарты. Здесь нужна чистая высокая производительность. Ситуация с внутренней сценой противоположная. Дело происходит в большой комнате с большим количеством текстурированных поверхностей, с высоко детализованным мечом в руке героя и периодически меняющимся освещением. Эта сцена менее “тяжёлая”, поэтому и производительность на ней выше. Две сильно различающиеся сцены позволяют хорошо проанализировать производительность.
Как показывают результаты, на внешних сценах у AMD под Vista даже есть некоторые преимущества по сравнению с XP. В этом тесте “узким местом” является видеокарта. Можно предположить, что в условиях пиковой загрузки рендеринга драйвер Vista демонстрирует лучшую производительность. Но тест внутри помещения даёт иной результат: производительность AMD падает на 10%, но у nVidia падение ещё больше. Опять же, в разрешении 2048×1536 мы получаем сильный удар по производительности.
Windows Vista и видеокарты | Заключение: стоит остаться с XP?
Картинка от Crytek. Хорошая прорисовка окружающей среды обеспечивает глубокое погружение в игру.
Vista кажется нам любопытной платформой для мультимедийных приложений, рабочих программ и игр. Microsoft приложила немало усилий, чтобы Vista получилась как надо. Сюда относится и тесное взаимодействие с разработчиками аппаратных ресурсов. Microsoft включила базовые драйверы “железа”, чтобы пользователь мог работать после установки “с нуля”, но для игр следует скачать и установить драйвер отдельно. Как видим, по результатам тестов AMD/ATi и nVidia следует немало поработать, чтобы вычистить все ошибки, включая установщик драйверов и сниженную производительность в некоторых играх.
В текущем состоянии Vista не всегда стабильна и хороша. Что касается графической производительности, то здесь следует сделать замечание. Мы воспользовались графическими драйверами на конец января 2007 года. Но уже сейчас вышли новые драйверы. Тесты проводятся не день и не два, поэтому нам пришлось зафиксировать состояние тестовой системы, иначе этот обзор никогда не вышел бы. В феврале мы опубликуем новые результаты с обновлёнными драйверами. Сейчас AMD и nVidia напряжённо работают над новыми версиями, так что ситуация с производительностью игр должна улучшиться.
Мы с нетерпением ждём игр, которые смогут использовать все возможности DX10, например, Supreme Commander, которая будет поддерживать геометрические шейдеры, и, конечно, новую “звезду” – Crysis.
Стоит ли мигрировать на Vista сейчас? Результаты наших тестов говорят сами за себя. Как и в случае с любым другим существенным обновлением, пройдёт не меньше года, прежде чем система будет “вылизана”. В принципе, попробовать систему можно. Но трогать рабочее место мы бы пока не решились.