Модель драйвера дисплея Windows (WDDM ) - это графический драйвер архитектура для видеокарт драйверов под управлением Microsoft Windows версий, начиная с Windows Vista.
Это замена предыдущей Windows 2000 и Windows XP драйвер дисплея модели XDDM / XPDM и предназначен для обеспечения более производительной графики и новых графических функций и стабильности. Драйверы дисплея в Windows Vista и Windows 7 может выбрать, придерживаться ли WDDM или XDDM. Однако с удалением XDDM из Windows 8 WDDM стал единственным вариантом.
WDDM предоставляет функции, необходимые для визуализации рабочего стола и приложений с помощью Desktop Window Manager, композитный оконный менеджер, работающий поверх Direct3D. Он также поддерживает новые интерфейсы DXGI, необходимые для базового управления и создания устройств. Спецификация WDDM требует, по крайней мере, видеокарты с поддержкой Direct3D 9, а драйвер дисплея должен реализовывать интерфейсы драйверов устройств для среды выполнения Direct3D 9Ex, чтобы запускать устаревшие приложения Direct3D; он может дополнительно реализовать интерфейсы времени выполнения для Direct3D 10 и выше.
WDDM, открывают новые функциональные возможности, которые не всегда обеспечивались более ранними моделями драйверов дисплея. К ним относятся:
В контексте графики виртуализация означает, что отдельные процессы (в пользовательском режиме ) не могут видеть память соседних процессов даже с помощью вставки поддельных команд в командный поток. Драйверы WDDM позволяют виртуализировать видеопамять, а видеоданные выгружать видеопамяти в системную RAM. В случае, если доступной видеопамяти оказывается недостаточно для хранения всех видеоданных и текстур, неиспользуемые в настоящее время данные перемещаются в системную RAM или на диск. Когда нужны выгруженные данные, они возвращаются. Виртуализация могла в некоторой степени поддерживаться в предыдущих моделях драйверов (например, в модели драйвера XP), но это была ответственность драйвера, а не на уровне времени выполнения.
Среда выполнения обрабатывает планирование параллельных графических контекстов. Каждый список команд помещается в очередь для выполнения GPU, и он может быть вытеснен средой выполнения, если прибывает более важная задача и если она еще не началась. Это отличается от собственных потоков на ЦП, где одна задача не может быть прервана и, следовательно, может занять больше времени, чем необходимо, и сделать компьютер менее отзывчивым. Алгоритм гибридного планирования между собственными и легкими потоками с взаимодействием между потоками достигнет бесшовного параллелизма. Важно отметить, что планирование - это не новая концепция, но ранее за это отвечали отдельные разработчики драйверов. WDDM пытается унифицировать взаимодействие различных поставщиков, контролируя выполнение задач графического процессора.
A Графическая поверхность Direct3D - это область памяти, которая содержит информацию о текстурированных сетках, используемых для рендеринга 2D или 3D-сцена. WDDM позволяет совместно использовать поверхности Direct3D для процессов. Таким образом, приложение может включать сетку, созданную другим приложением, в сцену, которую оно визуализирует. Совместное использование текстур между процессами до WDDM было затруднительным, поскольку для этого потребовалось бы копировать данные из видеопамяти в системную память, а затем обратно в видеопамять для нового устройства.
Если драйвер WDDM зависает или обнаруживает сбой, графический стек перезапустит драйвер. Отказ графического оборудования будет перехвачен, и при необходимости драйвер будет сброшен.
Драйверы под Windows XP могли свободно справляться с аппаратными сбоями по своему усмотрению, сообщая об этом пользователю или пытаясь восстановить систему без вывода сообщений. С драйвером WDDM все аппаратные сбои приводят к сбросу драйвера, и пользователь получает уведомление во всплывающем окне; это унифицирует поведение поставщиков.
Предыдущие драйверы были полностью реализованы в режиме ядра, тогда как WDDM частично реализован в пользовательском режиме. Если область пользовательского режима выйдет из строя с неисправимой ошибкой, это в лучшем случае приведет к неожиданному завершению работы приложения, а не к появлению ошибки синего экрана, как это было бы в предыдущих моделях драйверов.
WDDM также позволяет сбрасывать графическое оборудование, а пользователи обновлять драйверы без перезагрузки.
Новая модель драйвера требует, чтобы графическое оборудование имело шейдерную модель По крайней мере, 2.0 поддерживает, поскольку конвейер фиксированных функций теперь переведен на 2.0 шейдеры. Однако, по данным Microsoft на 2009 год, только около 1-2 процентов оборудования под управлением Windows Vista использовали XDDM, а остальное уже поддерживало WDDM. Также требуются некоторые другие аппаратные функции; следовательно, некоторое оборудование с поддержкой SM 2.0, такое как Intel GMA 900, не проходит сертификацию WDDM.
Одно из ограничений модели драйвера WDDM версии 1.0 заключается в том, что она не поддерживает несколько драйверов в одной мультиадаптер, настройка нескольких мониторов. Если в системе с несколькими мониторами есть более одного графического адаптера, питающего мониторы, оба адаптера должны использовать один и тот же драйвер WDDM. Если используется более одного драйвера, Windows отключит один из них. WDDM 1.1 не имеет этого ограничения.
WDDM 1.0 / 1.1 не позволяет использовать некоторые режимы, которые ранее обрабатывались драйвером, такие как режим охвата (растягивание рабочего стола на два монитора), хотя Dual View все еще доступен.
Одним из основных сценариев, которые поддерживает модель драйвера дисплея Windows, является Диспетчер окон рабочего стола. Поскольку рабочий стол и окна приложений, управляемые DWM, являются приложениями Direct3D, количество открытых окон напрямую влияет на объем необходимой видеопамяти. Поскольку количество открытых окон не ограничено, доступная видеопамять может оказаться недостаточной, что потребует виртуализации. Поскольку содержимое окна, которое DWM объединяет в окончательный рабочий стол, генерируется различными процессами, необходимо совместное использование поверхностей между процессами. Кроме того, поскольку могут быть другие приложения DirectX, работающие вместе с DWM на рабочем столе, управляемом DWM, они должны иметь доступ к графическому процессору совместно, что требует планирования.
Хотя это верно для реализации составного рабочего стола Microsoft под Windows Vista, с другой стороны, составной рабочий стол теоретически не требует новой модели драйвера дисплея, чтобы работать должным образом. Успешные реализации составных рабочих столов были выполнены до Windows Vista на других платформах, таких как Quartz, Compiz, WindowFX. Подход Microsoft состоял в том, чтобы попытаться сделать WDDM унифицированным для разных графических процессоров от разных поставщиков, стандартизируя их функции и производительность. Возможности программного обеспечения, отсутствующие в других моделях драйверов, могут стать несущественными из-за расширений или при наличии менее строгой или просто другой модели драйверов.
Windows Vista представила WDDM 1.0 как новую архитектуру драйвера дисплея, разработанную для повышения производительности, надежности и поддержки новых технологий, включая HDCP. Hybrid Sleep, который сочетает в себе функции гибернации и спящего режима для повышения стабильности в случае сбоя питания, также требует WDDM.
Windows 7 поддерживает основные дополнения к WDDM, известные как WDDM 1.1; подробности этой новой версии были представлены на WinHEC 2008. Новые функции включают:
Аппаратное ускорение операций GDI и Direct2D / DirectWrite помогает уменьшить объем памяти в Windows 7, поскольку механизму композитинга DWM больше не требуется копия системной памяти всех поверхностей, используемых GDI / GDI +, как в Windows Vista.
DXGI 1.1, Direct3D 11, Direct2D и DirectWrite стали доступны с Windows Vista Platform Update ; однако GDI / GDI + в Vista продолжает полагаться на программный рендеринг, и Desktop Window Manager продолжает использовать Direct3D 9Ex.
Драйверы WDDM 1.1 обратно совместимы со спецификацией WDDM 1.0; драйверы 1.0 и 1.1 могут использоваться в Windows Vista с обновлением платформы или без него.
Windows 8 включает WDDM 1.2 и DXGI 1.2. Новые функции были впервые анонсированы на конференции Build 2011 и включают улучшения производительности, а также поддержку стереоскопического 3D рендеринга и воспроизведения видео.
Другие важные функции включают вытесняющую многозадачность графического процессора с более высокой степенью детализации (буфер DMA, примитив, треугольник, пиксель или уровень инструкций), уменьшенный объем памяти, улучшенное совместное использование ресурсов и более быстрое обнаружение и восстановление тайм-аута. 16-битные форматы цветовой поверхности (565, 5551, 4444) являются обязательными в Windows 8, а Direct3D 11 Video поддерживает YUV 4: 4: 4/4: 2: 2/4: 2: 0/4: 1: 1 видеоформаты с 8, 10 и 16-битной точностью, а также 4- и 8-битные форматы с палитрой.
WDDM 1.2 поддерживает драйверы WDDM только для отображения и только для рендеринга, такие как Microsoft Базовый драйвер дисплея и базовый драйвер рендеринга Microsoft на основе WARP, который заменил драйвер режима ядра VGA.
WDDM 1.0 / 1.1 допускает только элементарное планирование задач с использованием гранулярности «пакетной очереди»; Улучшения многозадачности, а также быстрое переключение контекста и поддержка виртуальной памяти первоначально ожидались в версиях с предварительным названием WDDM 2.0 и WDDM 2.1, о которых было объявлено на WinHEC 2006.
Windows 8.1 включает WDDM 1.3 и DXGI 1.3. Новые дополнения включают возможность обрезать использование памяти адаптера DXGI, многоплоскостные наложения, перекрывающиеся цепочки подкачки и масштабирование цепочки подкачки, выбор подобласти обратного буфера для цепочки подкачки и представление цепочки подкачки с меньшей задержкой. Дополнительные функции драйвера включают беспроводные дисплеи (Miracast ), диапазоны форматов YUV, ресурсы кросс-адаптера и возможности перечисления движка GPU. Улучшение производительности графического ядра. [1]
Windows 10 включает WDDM 2.0, который предназначен для значительного снижения нагрузки на драйвер режима ядра для графических процессоров, поддерживающих адресацию виртуальной памяти, чтобы разрешить многопоточность в драйвере пользовательского режима и снизить загрузку ЦП. Windows 10 также включает DXGI 1.4.
API Direct3D 12, анонсированный на Build 2014, требует WDDM 2.0. Новый API устраняет задачи автоматического управления ресурсами и конвейером и позволяет разработчикам полностью контролировать память адаптера и состояния рендеринга на низком уровне.
Модель драйвера дисплея из Windows 8.1 и Windows Phone объединилась в единую модель для Windows 10.
Реализована новая модель памяти, которая дает каждому графическому процессору виртуальное адресное пространство для каждого процесса. Прямая адресация видеопамяти по-прежнему поддерживается WDDMv2 для графического оборудования, которое требует этого, но это считается устаревшим случаем. Ожидается, что IHV разработают новое оборудование, поддерживающее виртуальную адресацию. Существенные изменения были внесены в DDI, чтобы включить эту новую модель памяти.
Windows 10 Anniversary Update (версия 1607) включает WDDM 2.1, который поддерживает Shader Model 6.0 (обязательно для уровней функций 12_0 и 12_1) и DXGI 1.5 который поддерживает HDR10 - 10-битный формат с расширенным динамическим диапазоном и широкой гаммой, определенный в Рекомендации МСЭ-Т Рек. 2100 / Rec.2020 - и переменная частота обновления.
Windows 10 Creators Update (версия 1703) включает WDDM 2.2, предназначенный для виртуальная, дополненная и смешанная реальность с стереоскопическим рендерингом для платформы Windows Mixed Reality и DXGI 1.6.
Windows 10 Fall Creators Update (версия 1709) включает WDDM 2.3. Ниже приведен список новых функций для разработки драйвера дисплея Windows в Windows 10 версии 1709:
Windows 10 Обновление от апреля 2018 г. (версия 1803) включает WDDM 2.4. Обновления для разработки драйвера дисплея в Windows 10 версии 1803 включают следующие функции:
Обновление Windows 10 за октябрь 2018 г. (версия 1809) включает WDDM 2.5. Обновления для разработки драйвера дисплея в Windows 10 версии 1809 включают следующие функции:
Обновление Windows 10 за май 2019 г. (версия 1903) включает WDDM 2.6. Обновления для разработки драйвера дисплея в Windows 10 версии 1903 включают следующие функции:
Обновление Windows 10 от мая 2020 г. (версия 2004) включает WDDM 2.7. Обновления для разработки драйвера дисплея в Windows 10 версии 2004 включают следующие функции:
Обновление Windows 10 21H1 будет включать WDDM 2.9, обеспечивая поддержку аппаратного ускорения графического процессора для Подсистема Windows для Linux 2 (WSL 2) и поддержка уровня функций 12_2.