Windows Display Driver Model
![]() | Ця стаття містить неперекладені фрагменти іноземною мовою. |
Windows Display Driver Model (WDDM, також WVDDM в епоху Vista) це архітектура графічних драйверів для відеокарт під керуванням Microsoft Windows починаючи з Windows Vista.[1]
WDDM надає функціональність, необхідну для показу робочого столу і застосувань за допомогою диспетчера робочого столу - диспетчера складаних вікон, які працюють поверх Direct3D. Ця модель, також підтримує інтерфейси нової DXGI (DirectX Graphics Infrastructure), які необхідні для основних операцій створення і управління пристроєм. Специфікація WDDM потребує відеокарту, яка підтримує як найменш Direct3D 9, і повинна реалізовувати інтерфейси до Direct3D 9 для сумісності зі старими застосуваннями написаних для Direct3D; по бажанню вона може реалізовувати інтерфейси для Direct3D 10/10.1 і вище.
Можливості моделі WDDM
Драйвери WDDM відкривають нові функціональні можливості, які не були уніфіковані більш ранніми моделями графічних драйверів:
Віртуалізована відеопам'ять
У контексті графічних застосувань віртуалізація означає, що окремі процеси (у просторі користувача) не можуть отримати доступ до пам'яті сусідніх процесів навіть шляхом вставки фальшивих команд у командний потік. Драйвери WDDM дозволяють робити таку віртуалізацію пам'яті [2] і налаштування сторінок відеопам'яті в системну пам'ять. Якщо виявиться, що доступної відеопам'яті недостатньо для збереження усіх відеоданих і текстур, дані, які не використовуються у даний момент, переміщуються до системної пам'яті чи на жорсткий диск. Якщо такі дані стають потрібні, вони завантажуються знов. Віртуалізація біла в деякій мірі можлива у драйверах попередніх моделей (таких як модель драйверів Windows XP), але це було зоною відповідальності драйвера, а не системи.
Спільне використання поверхонь Direct3D різними процесами
Графічна поверхня Direct3D це область пам'яті, яка отримує інформацію о текстурованих елементах, які використовуються для розрахунку двомірної і тримірної сцени. WDDM дозволяє процесам спільне використання поверхні Direct3D [3]., тому застосування може додати елемент, створений іншим застосуванням в свою розраховану сцену. Спільне використання текстур процесами до появи WDDM було складною задачею, оскільки потребувало копіювання даних відеопам'яті в системну пам'ять і назад, у відеопам'ять нового пристрою.
Розширена відмовостійкість
Якщо драйвер WDDM зависне або призведе до збою, графічний стек перезапустить драйвер.[1] У випадку збою графічної апаратури, ця подія буде перехоплена і, при необхідності, драйвер буде перезапущено.
Драйвери для Windows XP могли реагувати на апаратні збої на власний розсуд, або повідомити користувача, або намагатися усунути помилку без повідомлень. З драйвером WDDM усі збої апаратури викликають перезапуск драйверу, а користувач отримує повідомлення; це робить однаковою поведінку драйверів різних розробників.
Попередні драйвери реалізовувались повністю у режимі ядра, в той час як WDDM частково реалізований у режимі користувача. Якщо область користувача видасть помилку, після якої неможливо відновити роботу, то в гіршому випадку це зупинить роботу застосування замість того, щоб призвести до синього екрану, як це було у попередніх моделей драйверів.
WDDM також дозволяє перезапустити або виймати графічну апаратуру без необхідного перезавантаження системи. На практиці, оновлення драйверу не повинне потребувати перезавантаження.