DirectX 11

Основные особенности DirectX11:
Низкоуровневая поддержка аппаратного обеспечения и операционной системы
Улучшенная многопоточная обработка
Новые этапы аппаратной обработки изображения для тесселяции
Улучшенное сжатие текстур
Shader Model 5.0
Вычислительные шейдеры (Compute shader)

Новые возможности
Давайте пройдемся по порядку и более подробно остановимся на каждом из обещанных нововведений.

Низкоуровневая поддержка аппаратного обеспечения и операционной системы
Windows Vista и DirectX 10 были спроектированы с целью улучшения базовой модели Windows Display Driver Model (WDDM) и создания широких возможностей повышения производительности драйвера. Кроме того, API DirectX 10 был разработан более «чистым» и простым, максимально лишенным ненужных возможностей, делая тем самым клиентский код более простым для чтения и избавляя разработчиков от лишней головной боли. DirectX 11 содержит в себя достаточно много новых возможностей, чтобы считаться полновесным обновлением, однако он строится на основе DirectX 10 и расширяет его возможности. Любой, кто знаком с DirectX 10 и 10.1, будет также уверенно себя чувствовать и в работе с DirectX 11. С DirectX 11 разработчики смогут использовать аппаратные возможности уровней 10, 10.1 и 11, работая с одним и тем же набором функций.
Время релиза финальной версии DirectX 11 будет соотнесено с релизом новой версии Windows, но этот API будет доступен и для Windows Vista. Таким образом, к моменту выхода нового API все аппаратные средства уровня 10 и 10.1 смогут работать с ним.

Улучшенная многопоточная обработка
Предыдущие версии Direct3D были нацелены прежде всего на работу с конфигурациями с одноядерным CPU и потому имели ограниченную поддержку многопоточности. В DirectX 11 были внесены изменения, которые позволят разработчикам улучшить управление GPU со стороны многоядерного CPU. DirectX 11 улучшает масштабирование ресурсов CPU через изменения в моделях API и драйвера. Асинхронный доступ к устройствам становится возможным благодаря двум ключевым особенностям объекта Direct3D 11 Device.
Во-первых, усовершенствованный процесс синхронизации между объектом Direct3D Device и драйвером позволяет делать асинхронные вызовы API, включая распределение ресурсов. Direct3D 11 предоставляет разработчикам больше свободы при реализации параллелизма, разрешая при этом делать вызовы посредством множества потоков.
Во-вторых, интерфейс Direct3D Device теперь поддерживает несколько контекстов визуализации. 1) главный прямой контекст (Immediate Context), который руководит передачей команд на исполнение в GPU

2) дополнительные отложенные контексты (Deferred Contexts), создаваемые разработчиком приложения по мере необходимости. Работа, сопоставленная с каждым отложенным контекстом, может выполняться в отдельном потоке/ядре. Это позволяет командам GPU накапливаться параллельно основным процессам визуализации, и после это поступать на выполнение в GPU, когда основной контекст уже готов предоставить на выполнение GPU новую задачу.
На представленной ниже схеме отображается процесс создания очереди из задач визуализации параллельно основному прямому контексту и выполнение этих задач по мере готовности устройства

Эта функция DirectX 11 также поддерживает карты Direct3D класса 10 и 10.1, так что изменения в способе формирования изображения будут поддерживаться и сегодняшним аппаратным обеспечением.

Новые стадии аппаратной обработки изображения для тесселяции
DirectX 11 вносит три новых стадии (hull shader, tessellator и domain shader) в конвейер визуализации. Эти стадии обуславливают функционирование гибкой, программируемой аппаратной поддержки тесселяции.

Hull shaders и domain shaders – это программируемые части;

Tessellator – это фиксированная функция, но поддержка большого количества настроек обеспечивает контроль над сгенерированными данными позиции.

Комментарии запрещены.

Поиск