Программно-аппаратные интерфейсы видеокарт

Программные средства

DirectX
DirectX — это набор API функций, разработанных для решения задач, связанных с игровым и видеопрограммированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. На данный момент самой новой версией является DirectX 11. Зачастую, свежие версии DirectX поставляются вместе с игровыми приложениями, так как DirectX API обновляется достаточно часто, и версия, включённая в ОС Windows зачастую является далеко не самой новой. Практически все части DirectX API представляют собой наборы COM-совместимых объектов.

Пока в природе не существовало API DirectX, большинство графических программ для персональных компьютеров работали под управлением операционной системы MS-DOS или напрямую с видеокартой. Разработчики программного обеспечения были вынуждены создавать различные драйверы для каждой разновидности видеоадаптеров, джойстиков, звуковых карт.

В 1995 г. компания Microsoft представила первую версию библиотеки DirectX (тогда она называлась Game SDK). В 2004 г. вышла девятая версия DirectX (реально выпущено восемь версий, по каким-то причинам Microsoft пропустила четвертую версию). DirectX — это корпоративный стандарт, все права на который принадлежат компании Microsoft. И только Microsoft определяет, что включать в очередную версию API, а какие предложения игнорировать. Такой диктаторский подход позволил быстро привести к единому знаменателю игры и графические процессоры, избавил пользователей от большинства проблем с совместимостью программи железа. С недавних пор и программы, и видеоадаптеры принято даже разделять на поколения согласно поддерживаемым версиям DirectX.
API DirectX предназначен для:

· программирования двухмерной графики (модуль DirectDraw);

· создания трехмерной графики (модуль Direct3D);

· работы со звуками и музыкой (модули DirectSound и DirectMusic);

· поддержки устройств ввода (модуль Directlnput);

· разработки сетевых игр (модуль DirectPlay).

Таким образом, DirectX представляет собой набор из нескольких сравнительно независимых API, позволяющих разработчикам игр и других интерактивных приложений получать доступ к специфическим функциям аппаратного обеспечения, без необходимости написания аппаратнозависимого программного кода. DirectX основан на наборе интерфейсов Component Object Model (компонентная модель объектов), а объекты СОМ могут описываться практически любыми языками программирования, например C/C++, Delphi и даже Basic.

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

· DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:

· DirectDraw: интерфейс вывода растровой графики.

· Direct3D (D3D): интерфейс вывода трёхмерных примитивов.

· DirectInput: интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.

· DirectPlay: интерфейс сетевой коммуникации игр.

· DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)

· DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.

· DirectShow: интерфейс, используемый для ввода/вывода аудио и/или видео данных.

· DirectSetup: часть, ответственная за установку DirectX.

· DirectX Media Objects: реализует функциональную поддержку потоковых объектов (например, энкодеры/декодеры)

OpenGL
В 1982 г. фирма Silicon Graphics в рабочей станции Silicon IRIS реализовала конвейер рендеринга, опирающийся на систему команд графической библиотеки IRIS GL. На основе библиотеки IRIS GL в 1992 г. был разработан и утвержден графический стандарт OpenGL (Open Graphics Library — открытая графическая библиотека). Программы, написанные с помощью OpenGL, можно переносить практически на любые платформы, будь то персональный компьютер или графическая станция, получая при этом одинаковый результат.

Базовый набор OpenGL включает в себя около 150 различных команд, с помощью которых реализуют основные функции: определение объектов, указание их местоположения в трехмерном пространстве, установку других параметров (поворот, масштаб), изменение свойств объектов (цвет, текстура, материал), положение наблюдателя. Дополнительные библиотеки OpenGL (расширения) реализуют функции, отсутствующие в стандартной библиотеке. Например, библиотека GLAUX разработана фирмой Microsoft для применения OpenGL в операционной среде Windows. Разработчики видеодаптеров создают собственные расширения OpenGL, учитывающие возможности конкретного графического процессора.

Технология SLI

Аббревиатура SLI расшифровывается как Scalable Link Interface (масштабируемый соединительный интерфейс). Технология nVidia SLI требует наличия двух одинаковых видеокарт с поддержкой SLI, системнойплаты, также поддерживающей SLI, переходника MIO, связывающего видеокарты, драйвера ForceWare соответствующей версии. На момент написания книги технологию SLI поддерживали видеокарты семейств nVidia GeForce 6800 и 6600GT и системные платы с чипсетами nVidia nForce4 SLI (для процессоров AMD Athlon 64), Intel 7525 (для процессоров Xеоn) и nForce4 SLI Intel Edition (для процессоров Pentium 4).

Технология SLI поддерживает два режима работы пары видеокарт: Split Frame Rendering (SFR) и Alternate Frame Rendering (AFR). Для запуска устаревших игр предусмотрен режим совместимости, когда задействуется лишь одна графическая карта. В режиме Split Frame Rendering (SFR) происходит разделение кадра на две части, за рендеринг каждой из

которых отвечает отдельный видеоадаптер. При этом кадр разделяется динамически в зависимости от сложности сцены. Такой режим позволяет добиться максимальной производительности, так как нагрузка на каждую карту распределяется равномерно. Метод разделения называется Symmetric Multi-Rendering with Dynamic Load Balancing (SMR), то есть симметричный мультирендеринг с динамическим распределением нагрузки. В режиме Alternate Frame Rendering (AFR) происходит поочередный рендеринг кадров каждым видеоадаптером.

Учитывая высокую пропускную способность интерфейса PCI Express, можно было ограничиться передачей данных по этой шине, однако с целью минимизировать возможные задержки видеокарты SLI оснащаются интерфейсом MIO. Когда карты установлены в системную плату, оснащенную двумя слотами PCI Express xl6, их требуется соединить специальным переходником – небольшой текстолитовой платой, оснащенной двумя разъемами соответствующего типа. Для включения режима SLI и его корректной работы необходимо два условия: оба слота PCI Express xl6 должны поддерживать конфигурацию ≪16 линий + 8 линий≫, либо конфигурацию 8 линий + 8 линий; чипсет должен поддерживаться драйверами ForceWare. В случае успешного запуска конфигурация SLI демонстрирует повышение производительности в некоторых играх до 80%.

CrossFire
В ответ на разработку и продвижение старой-новой технологии SLI (МК №30(357) 2005) компанией NVIDIA, главный конкурент на рынке видеоускорителей, компания ATI, разработала и внедрила свое аналогичное решение — технологию CrossFire. Так же, как и SLI от NVIDIA, она позволяет объединять ресурсы двух видеокарт в одном компьютере между собой, повышая производительность видеоподсистемы. Технология CrossFire в корне отличается от SLI, соответственно, имеет мало общего с конкурентом. Отдавая предпочтение определенным преимуществам той или иной технологии, в недалеком будущем пользователи будут выбирать между NVIDIA и ATI не только исходя из годами сформировавшихся мнений о брэндах, но и базируясь на фактах о технологиях SLI или

Техническая база

По аналогии с NVIDIA, для размещения двух видеокарт ATI в одной «упряжке» потребуется материнская плата с чипсетом того же производителя (планируется, что поддерживать CrossFire также будет чипсет Intel i975X), с двумя слотами PCI Express. Как и SLI, CrossFire требовательна к системным ресурсам, что потребует качественного БП. Рассмотрим требования к системе более детально.

Материнская плата
- должна быть основана на чипсете ATI Radeon Xpress 200 CrossFire и выше. Данные платы выпускаются как для процессоров AMD Sempron/Athlon 64, так и для Intel Pentium 4/Celeron. Так что ATI теперь будет зарабатывать и на чипсетах, производство которых ранее не достигало больших масштабов.

Видеокарты.
Для работы технологии необходима ведущая карта CrossFire master (детальнее об этом — ниже) и любая другая видеокарта на базе чипа из того же семейства, что и ведущая карточка. Ведущую карточку от других отличает наличие разъема DMS–59 (соединяемого с DVI на ведомой карте), чипа CrossFire, ну и, конечно же, стоимость.

Блок питания. Для содержания такого серьезного комплекта понадобится БП с мощностью 400–450 Вт минимум, желательно более мощный.

Ну вот, собственно, и все что нужно для сборки видеосистемы CrossFire. Как вы заметили, ATI более гибко относится к своим покупателям, не привязывая их, как землю к колхозу, к обязательной покупке двух карточек с одинаковым чипом от одного производителя. Привязка осуществляется только к семейству видеочипа, на котором основан ускоритель. То есть, можно приобрести ведущий видеоускоритель Radeon X800 и ведомый Radeon X800 XL. Master Radeon X800 будет совместим с карточкой любого производителя на базе любой модификации чипа X800. Это безусловное преимущество над конкурентом — если брать один ускоритель, с перспективой дальнейшей модернизации путем доустановки еще одной видеокарты, то не придется рыскать в поисках карточки какого-то определенного производителя на базе конкретного чипа. На данный момент технологию CrossFire поддерживают видеокарты на базе X800 и X850, а также новинки на базе X1xxx.

Основные принципы

На ведущей видеокарте (master CrossFire) находится специальный чип, позволяющий совмещать усилия ускорителей. Он попиксельно (в реальном времени) обрабатывает изображения, сгенерированные каждой карточкой, и объединяет их в единую картинку. Вся информация с ведомой видеокарты ведущей передается по соединению через разъемы DMS-59 и DVI. Длина кабеля между двумя карточками в таком случае довольно мала, что позволяет избежать потерь при передаче данных (теоретически).

Особенности и режимы работы CrossFire
Всего для CrossFire доступно 3 режима рендеринга: SuperTiling, AFR, Scissor. В отличие от SLI-систем свободный выбор режимов недоступен и нужный режим выбирается драйвером автоматически.

Scissor
Достаточно известный метод обработки изображения. Его суть заключается в разделении кадра на две части, каждую из которых обрабатывает отдельная видеокарта. В теории кадр может делиться пропорционально мощности видеочипов установленных в ПК видеокарт. Для одинаковых карточек кадр делится в соотношении 50:50; если одна из них более мощная, то выбирается соотношение 30:70 или 40:60. Однако, как может показаться на первый взгляд, не для всех игровых приложений такой режим будет предпочтителен. К примеру, в 3D–шутерах нижняя часть кадра мало меняется на протяжении игры, чего не скажешь о верхней. Для этого предусмотрено увеличение обрабатываемой в кадре зоны для карточки, простаивающей в данный момент времени. Правда, для расчета геометрии сцены также потребуются дополнительные ресурсы.

SuperTiling
Стандартный режим CrossFire. Делит изображение на множество квадратиков, визуально напоминающих шахматную доску. Часть таких квадратиков обрабатывает одна видеокарта, часть — другая. Это позволяет грамотно распределить нагрузку между видеокартами в пиксельных приложениях. Однако обе карточки должны просчитывать всю геометрию сцены. Известно, что данный режим не поддерживают игры на основе API OpenGL.

Alternate Frame Rendering (AFR)
Один из самых быстрых режимов работы CrossFire. Его суть заключается в том, что одна карточка рассчитывает четные кадры, вторая — нечетные. Таким образом, между обеими ускорителями равномерно распределяется нагрузка на графические процессоры. В принципе, данный метод — не новинка, AFR был задействован и на старых двухчиповых картах ATI. Единственный недостаток режима — он не будет работать в компьютерных играх, использующих функции render-to-texture. Также стоит помнить, что производительность CrossFire в режиме AFR будет зависеть от особенностей обрабатываемой сцены. Наконец, учтите, что обрабатываемый и отображаемый в данное время — разные кадры. Так что AFR будет эффективен для отображения качественной картинки в приложениях, не требующих плавной смены кадров для комфортной работы с ними. Говоря простым человеческим языком, в шутерах и симуляторах AFR будет менее эффективен, чем, скажем, в стратегиях.

Super AA
Режим, позволяющий существенно улучшить качество изображения в ущерб дополнительным FPS. Суть работы SuperAA заключается в том, что обе карточки генерируют одну сцену с разными шаблонами FSAA. Затем чип CrossFire объединяет их в единое целое. Это позволяет добиться лучшего сглаживания «зернистости», известной под именем aliasing.

По количеству режимов работы ATI таки обошла NVIDA, однако не факт, что качество их реализации на должном уровне. Режимом AFR обладают технологии обеих компаний, а Scissor — просто несколько переработанный режим Split Frame Rendering от NVIDIA. Режим SuperAA повышает качество в ущерб производительности, а практичность SuperTiling вызывает сомнения. Так что пока не известно, кто победит в борьбе за дополнительные FPS.

Как уже было сказано выше, существуют версии чипсетов как для процессоров AMD, так и для Intel. Материнские платы на основе чипсета ATI не требуют установки режимов работы с одной или двумя видеокартами — связку CrossFire плата определяет автоматически, чем опять-таки выгодно отличается от NVIDIA nForce4 SLI. 130-нанометровый техпроцесс изготовления чипов обеспечит неплохие возможности для разгона без применения дорогих высококачественных систем охлаждения. Да и вообще, сама технология максимально нацелена на энтузиастов и оверклокеров.

Проведем параллели
Думаю, будет разумно взвесить все за и против, сравнив недостатки и преимущества технологий ATI CrossFire с NVIDIA SLI.

Преимущества CrossFire:

· для ATI CrossFire необязательна адаптация игры под данную технологию, она работает со всеми играми на основе API DirectX и API OpenGL;

· нет необходимости покупать карточки одного и того же производителя с одинаковыми чипами и версией BIOS — карты ATI CrossFire могут быть произведены разными компаниями;

· ATI CrossFire работает и с уже продававшимися моделями Radeon X800/X850;

· у ATI CrossFire больше режимов работы, чем у NVIDIA SLI, однако один из них делает акцент на качество, но вовсе не на производительность.

Недостатки CrossFire:

· стоимость ведущей (master) карточки CrossFire заметно выше, чем у ведомой, в то время как стоимость обеих карт NVIDIA одинакова;

· малая доступность технологии на рынке.

В общем, с уверенностью можно сказать, что у обеих технологий есть будущее.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: