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 також дозволяє перезапустити або виймати графічну апаратуру без необхідного перезавантаження системи. На практиці, оновлення драйверу не повинне потребувати перезавантаження.

Обмеження[ред.ред. код]

Нова модель драйверів потребує, щоб апаратура підтримувала принаймні Shader Model 2.0 (fixed function pipeline is now translated to 2.0 shaders). Але, за інформацією Microsoft, на 2009 рік тільки близько 1-2 відсотків апаратури використовувало модель драйверів Windows XP, а інші вже були сумісними з WDDM. Модель також потребує наявності інших апаратних можливостей(по цій причині, наприклад, апаратура, яка підтримує SM 2.0, така як Intel GMA 900, не проходить сертифікацію на WDDM [4]).

Одним із основних обмежень драйверу WDDM версії 1.0 в тому, що він не підтримує одночасно декілька драйверів в багатоадаптерному багатомоніторному оточенні. Якщо у багатомоніторної системи більше ніж один графічний адаптер, обидва адаптера повинні використовувати один і той самий драйвер WDDM. Якщо використовується більше ніж один драйвер, Windows вимкне один з них.[5]. У WDDM 1.1 вже немає такого обмеження.[6]

У WDDM 1.0/1.1 відсутні деякі режими, які раніше обслуговувались безпосередньо драйвером, такі як розтягування робочого столу на декілька моніторів [7][8], хоча режим Dual View [9], як раніше, доступний.[10]

Примітки[ред.ред. код]