Windows Display Driver Model
Windows Display Driver Model (WDDM) — это архитектура графического драйвера для операционных систем Microsoft Windows, начиная с Windows Vista. Она пришла на смену более старой модели Windows 2000 Display Driver Model (XDDM) и обеспечивает поддержку современных графических процессоров (GPU), многозадачности, виртуализации рабочего стола и интерфейсов DirectX 10 и выше. WDDM управляет взаимодействием операционной системы, графического ядра (Desktop Window Manager, DWM) и аппаратного обеспечения для отображения изображения на экране.
История развития
Предпосылки появления
До выхода Windows Vista в 2006 году в Windows 2000 и Windows XP использовалась модель XDDM, разработанная ещё в конце 1990-х годов. XDDM требовала, чтобы драйвер работал в режиме ядра и имел прямой доступ к видеопамяти, что создавало риски: сбой драйвера приводил к синему экрану смерти (BSOD). Кроме того, XDDM не поддерживала многозадачность графики (например, одновременную работу нескольких 3D-приложений) и новые возможности DirectX 10.
Версии WDDM
- WDDM 1.0 (Windows Vista, 2006) — первая версия. Ввела модель драйвера с разделением на пользовательский и режим ядра, поддержку Desktop Window Manager (DWM) и виртуализацию видеопамяти. Однако из-за высокой нагрузки на процессор и ограничений производительности вызывала критику.
- WDDM 1.1 (Windows 7, 2009) — улучшила производительность за счёт оптимизации работы с памятью и поддержки DirectX 11. Ввела технологию Hardware Scheduling для более эффективного распределения задач GPU.
- WDDM 1.2 (Windows 8, 2012) — снизила нагрузку на центральный процессор при обработке графики, добавила поддержку DirectX 11.1, улучшенное управление питанием и технологию Pre-emption (возможность прерывания выполнения задач GPU).
- WDDM 1.3 (Windows 8.1, 2013) — расширила возможности DirectX 11.2, включая поддержку аппаратного декодирования видео (HEVC) и улучшения в работе с несколькими мониторами.
- WDDM 2.0 (Windows 10, 2015) — кардинально переработанная версия. Ввела новую модель управления памятью (Memory Management), где драйвер пользовательского режима (UMD) получил больше контроля над выделением видеопамяти, что снизило задержки и улучшило производительность в играх и приложениях DirectX 12.
- WDDM 2.1–2.7 (Windows 10, 2016–2021) — последовательные обновления, добавлявшие поддержку новых версий DirectX (12.1, 12 Ultimate), аппаратного трассировки лучей (Ray Tracing), Variable Rate Shading (VRS) и Mesh Shaders.
- WDDM 3.0 (Windows 11, 2021) — оптимизирована для работы с DirectX 12 Ultimate и новыми функциями, такими как DirectStorage (ускорение загрузки текстур с SSD) и Auto HDR. Ввела более эффективное управление памятью для интегрированных и дискретных GPU.
Архитектура
WDDM состоит из двух основных компонентов: драйвера режима ядра (Kernel Mode Driver, KMD) и драйвера пользовательского режима (User Mode Driver, UMD). Такое разделение повышает стабильность системы: если UMD даёт сбой, он не вызывает BSOD, а лишь приводит к перезапуску драйвера или приложения.
Драйвер режима ядра (KMD)
Работает в привилегированном режиме ядра Windows. Отвечает за:
- Управление видеопамятью (выделение, освобождение, перемещение данных).
- Планирование задач GPU (графический планировщик).
- Обработку прерываний от аппаратного обеспечения.
- Взаимодействие с DirectX Graphics Kernel (Dxgkrnl.sys) — компонентом ядра, который координирует работу всех графических драйверов.
Драйвер пользовательского режима (UMD)
Работает в контексте конкретного приложения (игры, редактора, браузера). Отвечает за:
- Компиляцию шейдеров и команд DirectX в инструкции GPU.
- Управление ресурсами (текстуры, буферы) в пользовательском пространстве.
- Обработку ошибок и восстановление после сбоев без вмешательства в ядро.
Desktop Window Manager (DWM)
DWM — это оконный менеджер, использующий WDDM для композиции окон на рабочем столе. Каждое окно сначала отрисовывается в отдельный буфер, а затем DWM объединяет их в финальное изображение. Это позволяет реализовать эффекты прозрачности, анимации и Aero Glass (в Windows Vista/7). DWM работает в режиме пользователя и использует UMD для рендеринга.
Ключевые возможности
Виртуализация видеопамяти
WDDM вводит абстракцию «виртуальной видеопамяти», которая позволяет каждому приложению «видеть» собственное адресное пространство GPU. Операционная система управляет перемещением данных между физической видеопамятью и системной памятью (RAM) через механизм подкачки (paging). Это предотвращает конфликты между приложениями и позволяет запускать больше графических задач одновременно.
Графический планировщик (GPU Scheduler)
WDDM включает планировщик задач GPU, который работает в режиме ядра. Он распределяет вычислительные ресурсы GPU между несколькими процессами (например, игра и видео) в реальном времени. Планировщик поддерживает вытеснение (pre-emption): долго выполняющаяся задача может быть прервана для обработки более приоритетной (например, анимации курсора мыши).
Поддержка DirectX
WDDM тесно связана с версиями DirectX:
- WDDM 1.0 — DirectX 10.
- WDDM 1.1 — DirectX 11.
- WDDM 2.0 — DirectX 12.
- WDDM 2.7 — DirectX 12 Ultimate (Ray Tracing, VRS, Mesh Shaders).
- WDDM 3.0 — DirectX 12 Ultimate + DirectStorage.
Каждая новая версия WDDM добавляет поддержку новых функций DirectX, но сохраняет обратную совместимость со старыми версиями.
Управление питанием
WDDM позволяет графическому драйверу управлять энергопотреблением GPU: динамически изменять частоту и напряжение в зависимости от нагрузки. Это особенно важно для ноутбуков и мобильных устройств. В WDDM 1.2 и выше реализована технология Runtime Power Management, которая позволяет переводить GPU в режим пониженного энергопотребления при бездействии.
Требования к оборудованию
Для работы WDDM необходим графический процессор, поддерживающий DirectX 9 или выше (для WDDM 1.0) и имеющий собственную видеопамять. Встроенные (интегрированные) GPU, такие как Intel HD Graphics или AMD Radeon Graphics, также поддерживают WDDM, но могут иметь ограничения по производительности из-за разделения системной памяти.
Минимальные системные требования для WDDM 2.0 (Windows 10):
- Процессор: 1 ГГц или выше.
- ОЗУ: 1 ГБ (32-разрядная) или 2 ГБ (64-разрядная).
- Видеокарта: с поддержкой DirectX 9 и драйвером WDDM 1.0.
Для WDDM 3.0 (Windows 11) требования выше: поддержка DirectX 12 и Secure Boot.
Критика и ограничения
Производительность
Ранние версии WDDM (1.0) критиковались за высокую нагрузку на центральный процессор из-за необходимости постоянного взаимодействия между UMD, KMD и DWM. Это приводило к снижению частоты кадров в играх по сравнению с Windows XP. В последующих версиях (1.1, 1.2) нагрузка была снижена за счёт оптимизации планировщика и уменьшения числа переключений контекста.
Совместимость
WDDM не поддерживает старые графические карты, выпущенные до 2006 года (например, NVIDIA GeForce 6 серии и старше). Для них требуется драйвер XDDM, который несовместим с Windows Vista и новее. Это вынуждало пользователей обновлять оборудование при переходе на новую ОС.
Сложность разработки
Разработка драйверов WDDM сложнее, чем XDDM, из-за необходимости поддержки виртуализации памяти, планировщика и DWM. Это увеличивает время выхода драйверов для новых GPU и может приводить к ошибкам в ранних версиях.
Применение
WDDM используется во всех современных версиях Windows (Vista, 7, 8, 10, 11) и является обязательной для работы графических интерфейсов, включая Aero (Windows Vista/7), Modern UI (Windows 8) и Fluent Design (Windows 10/11). Она также лежит в основе работы игр, профессиональных приложений (Autodesk Maya, Adobe Premiere Pro) и виртуальных машин (Hyper-V с поддержкой GPU-PV).
Интересные факты
- WDDM 2.0 стала первой версией, которая позволила Microsoft выпускать обновления драйверов через Windows Update без перезагрузки системы для некоторых типов изменений.
- В Windows 10 и 11 WDDM поддерживает технологию Hardware-accelerated GPU Scheduling (HAGS), которая позволяет GPU самостоятельно управлять своей памятью, снижая задержки ввода.
- WDDM 3.0 в Windows 11 включает поддержку DirectStorage, что позволяет играм загружать текстуры с SSD напрямую в видеопамять без участия процессора, сокращая время загрузки уровней.
Источники
- Microsoft Developer Network (MSDN): Windows Display Driver Model (WDDM) Architecture
- Документация Microsoft: WDDM versions and features
- Статья «Windows Display Driver Model» в английской Википедии
- Технический блог Microsoft: «What’s new in WDDM 2.0»
- Материалы конференции Build 2015: «Graphics innovations in Windows 10»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →