Model ovladače displeje Windows - Windows Display Driver Model

Windows Display Driver Model ( WDDM ) je architektura grafického ovladače pro ovladače grafických karet se systémem Microsoft Windows verze začínající na Windows Vista .

Je to náhrada za předchozí model ovladače displeje XDDM/XPDM pro Windows 2000 a Windows XP a jeho cílem je umožnit lepší výkon grafiky a nové grafické funkce a stabilitu. Ovladače zobrazení v systému Windows Vista a Windows 7 si mohou vybrat, zda budou dodržovat WDDM nebo XDDM. S odstraněním XDDM z Windows 8 se však WDDM stal jedinou možností.

WDDM poskytuje funkce potřebné k vykreslení plochy a aplikací pomocí Desktop Window Manager , což je kompozitní správce oken spuštěný nad Direct3D . Podporuje také nová rozhraní DXGI nutná pro základní správu a vytváření zařízení. Specifikace WDDM vyžaduje alespoň grafickou kartu podporující Direct3D 9 a ovladač displeje musí implementovat rozhraní ovladače zařízení pro běh Direct3D 9Ex, aby bylo možné spouštět starší aplikace Direct3D; může volitelně implementovat runtime rozhraní pro Direct3D 10 a vyšší.

Funkce povolené WDDM

Ovladače WDDM umožňují nové oblasti funkcí, které dřívější modely ovladačů zobrazení neposkytovaly jednotně. Tyto zahrnují:

Virtualizovaná video paměť

V kontextu grafiky virtualizace znamená, že jednotlivé procesy (v uživatelském režimu ) nemohou vidět paměť sousedních procesů ani pomocí vložení padělaných příkazů do proudu příkazů. Ovladače WDDM umožňují virtualizaci video paměti a stránkování video dat z video paměti do systémové RAM. V případě, že se ukáže, že dostupná videopaměť není dostatečná pro uložení všech video dat a textur, aktuálně nevyužitá data se přesunou do systémové paměti RAM nebo na disk. Když jsou potřeba vyměněná data, vrátí se zpět. Virtualizaci bylo možné do určité míry podporovat na předchozích modelech ovladačů (jako je XP Driver Model), ale byla zodpovědností řidiče, místo aby byla zpracovávána na běhové úrovni.

Plánování

Modul runtime zpracovává plánování souběžných grafických kontextů. Každý seznam příkazů je zařazen do fronty k provedení pomocí GPU a lze jej za běhu předcházet, pokud přijde důležitější úkol a pokud nezačal spouštět. To se liší od nativních vláken na CPU, kde nelze jeden úkol přerušit, a proto může trvat déle, než je nutné, a počítač bude méně reagovat. Hybrid plánovací algoritmus mezi rodilými a lehkých nití spolupráce mezi závity by bylo dosaženo bezproblémové paralelismu. Je důležité si uvědomit, že plánování není nový koncept, ale dříve za něj odpovídali jednotliví vývojáři ovladačů. WDDM se pokouší sjednotit prostředí mezi různými dodavateli řízením provádění úkolů GPU.

Křížové sdílení povrchů Direct3D

Direct3D grafické plocha je oblast paměti, která obsahuje informace o strukturovaných sítí používaných pro vykreslování 2D nebo 3D scény. WDDM umožňuje sdílení ploch Direct3D mezi procesy . Aplikace tedy může do scény, kterou vykresluje, začlenit síť vytvořenou jinou aplikací. Sdílení textur mezi procesy před WDDM bylo obtížné, protože by to vyžadovalo zkopírování dat z video paměti do systémové paměti a poté zpět do video paměti pro nové zařízení.

Vylepšená odolnost proti chybám

Image
Windows Vista upozorňující uživatele na úspěšné obnovení WDDM

Pokud ovladač WDDM zablokuje nebo dojde k chybě, grafický zásobník ovladač restartuje. Bude zachycena chyba grafického hardwaru a v případě potřeby bude ovladač resetován.

Ovladače pod Windows XP mohly volně řešit hardwarové chyby, jak uznaly za vhodné, buď nahlášením uživateli, nebo pokusem o tiché obnovení. U ovladače WDDM všechny hardwarové chyby způsobí reset ovladače a uživatele upozorní vyskakovací okno; toto sjednocuje chování mezi dodavateli.

Předchozí ovladače byly plně implementovány v režimu jádra, zatímco WDDM je implementováno částečně v uživatelském režimu. Pokud oblast uživatelského režimu selže s neodstranitelnou chybou, způsobí to nanajvýš neočekávané ukončení aplikace namísto vytváření chyby modré obrazovky, jako by tomu bylo u předchozích modelů ovladačů.

WDDM také umožňuje resetovat grafický hardware a uživatelé aktualizovat ovladače bez nutnosti restartu.

Omezení

Nový model ovladače vyžaduje, aby grafický hardware měl alespoň podporu Shader Model 2.0, protože kanál pevných funkcí je nyní přeložen na shadery 2.0 . Podle společnosti Microsoft však v roce 2009 používalo XDDM pouze asi 1–2 procenta hardwaru se systémem Windows Vista, přičemž zbytek již WDDM podporoval. Vyžaduje také některé další hardwarové funkce; v důsledku toho některý hardware podporující SM 2.0, jako je Intel GMA 900, nedokáže certifikaci WDDM.

Jedním z omezení modelu ovladače WDDM verze 1.0 je, že nepodporuje více ovladačů v nastavení více adaptérů a více monitorů. Pokud má více monitorovací systém více než jeden grafický adaptér napájející monitory, musí oba adaptéry používat stejný ovladač WDDM. Pokud je použit více než jeden ovladač, systém Windows deaktivuje jeden z nich. WDDM 1.1 toto omezení nemá.

WDDM 1.0/1.1 neumožňuje některé režimy, které byly dříve zpracovány ovladačem, například režim spanning (roztažení plochy přes dva monitory), přestože je stále k dispozici Dual View .

Potřeba nového modelu ovladače displeje

Jedním z hlavních scénářů, které model ovladače zobrazení systému Windows umožňuje, je Správce oken plochy . Protože pracovní plocha a okna aplikací spravovaná DWM jsou aplikace Direct3D, počet otevřených oken přímo ovlivňuje množství požadované grafické paměti. Protože počet otevřených oken není omezen, může se ukázat, že dostupná videopaměť je nedostatečná, což vyžaduje virtualizaci. Protože obsah okna, který DWM skládá do finální plochy, je generován různými procesy, je nutné sdílení povrchu mezi procesy. Protože na DWM spravované ploše mohou vedle DWM běžet i další aplikace DirectX, musí mít přístup ke GPU sdíleným způsobem, což vyžaduje plánování.

Ačkoli to platí pro implementaci kompozitního desktopu Microsoftem pod Windows Vista, na druhou stranu, kompozitní desktop nemusí teoreticky vyžadovat, aby nový model ovladače zobrazení fungoval podle očekávání. Úspěšné implementace složených desktopů byly provedeny před Windows Vista na jiných platformách, jako jsou Quartz , Compiz , WindowFX . Microsoft se pokusil zajistit, aby WDDM byla jednotným prostředím mezi různými GPU od více dodavatelů standardizací jejich funkcí a výkonu. Softwarové funkce chybějící u jiných modelů ovladačů by mohly být nevýznamné rozšířením nebo pokud by byl zaveden méně omezující nebo jednoduše jiný model ovladače.

Dějiny

WDDM 1.0

Windows Vista představil WDDM 1.0 jako novou architekturu ovladače displeje navrženou tak, aby byla výkonnější, spolehlivější a podporovala nové technologie včetně HDCP . Hybridní režim spánku , který kombinuje funkce hibernace a režimu spánku pro lepší stabilitu v případě výpadku napájení, také vyžaduje WDDM.

WDDM 1.1

Windows 7 podporuje hlavní přírůstky do WDDM známé jako WDDM 1.1; detaily této nové verze byly odhaleny na WinHEC 2008. Mezi nové funkce patří:

Hardwarová akcelerace operací GDI a Direct2D/DirectWrite pomáhá snížit nároky na paměť v systému Windows 7, protože kompozitní engine DWM již nepotřebuje uchovávat kopii systémové paměti všech povrchů používaných GDI/GDI+, jako v systému Windows Vista.

DXGI 1.1, Direct3D 11, Direct2D a DirectWrite byly k dispozici s aktualizací platformy Windows Vista ; nicméně GDI/GDI+ ve Vistě nadále spoléhá na vykreslování softwaru a Správce oken plochy nadále používá Direct3D 9Ex.

Ovladače WDDM 1.1 jsou zpětně kompatibilní se specifikací WDDM 1.0; ovladače 1.0 i 1.1 lze použít v systému Windows Vista s aktualizací platformy nebo bez ní.

WDDM 1.2

Windows 8 obsahuje WDDM 1.2 a DXGI 1.2. Nové funkce byly poprvé představeny na konferenci Build 2011 a zahrnují vylepšení výkonu a také podporu stereoskopického vykreslování 3D a přehrávání videa.

Mezi další hlavní funkce patří preemptivní multitasking GPU s jemnější granularitou (vyrovnávací paměť DMA, primitivní, trojúhelník, pixel nebo úroveň instrukcí), snížená paměťová stopa, vylepšené sdílení zdrojů a rychlejší detekce a obnovení časového limitu. 16bitové formáty barevného povrchu (565, 5551, 4444) jsou povinné v systému Windows 8 a Direct3D 11 Video podporuje video formáty YUV 4: 4: 4/4: 2: 2/4: 2: 0/4: 1: 1 s 8, 10 a 16bitovou přesností, stejně jako 4 a 8bitové paletizované formáty.

WDDM 1.2 podporuje ovladače WDDM pouze pro zobrazení a vykreslování, například Microsoft Basic Display Driver a Microsoft Basic Render Driver na bázi WARP , který nahradil ovladač VGA v režimu jádra .

WDDM 1.0/1.1 umožňuje pouze základní plánování úloh pomocí granularity "dávkové fronty"; vylepšení multitaskingu, stejně jako rychlé přepínání kontextu a podpora virtuální paměti , se původně očekávalo ve verzích předběžně pojmenovaných WDDM 2.0 a WDDM 2.1, které byly oznámeny na WinHEC 2006.

WDDM 1.3

Windows 8.1 obsahuje WDDM 1.3 a DXGI 1.3. Mezi nové přírůstky patří možnost zkrácení využití paměti adaptéru DXGI, překrývání více rovin, překrývající se swapové řetězce a škálování swapových řetězců, výběr subregionu backbuffer pro prezentaci swapového řetězce a swapového řetězce s nižší latencí. Mezi funkce ovladačů patří bezdrátové displeje ( Miracast ), rozsahy formátů YUV , prostředky pro různé adaptéry a možnosti výčtu motorů GPU. Vylepšení výkonu grafického jádra. [1]

WDDM 2.0

Windows 10 obsahuje WDDM 2.0, který je navržen tak, aby dramaticky snížil zátěž ovladače ovladače v režimu jádra pro GPU, které podporují adresování virtuální paměti, umožnil vícevláknový paralelismus v ovladači uživatelského režimu a měl za následek nižší využití CPU. Windows 10 také obsahuje DXGI 1.4.

Direct3D 12 API, oznámené na Build 2014 , vyžaduje WDDM 2.0. Nové API zruší úkoly automatické správy zdrojů a správy potrubí a umožní vývojářům plně ovládat úroveň paměti adaptéru a stavy vykreslování na nízké úrovni.

Model ovladače zobrazení z Windows 8.1 a Windows Phone se sblížil do jednotného modelu pro Windows 10.

Je implementován nový paměťový model, který dává každému GPU prostor virtuálních adres pro každý proces. Přímý adresování video paměti je stále podporováno WDDMv2 pro grafický hardware, který to vyžaduje, ale to je považováno za starší případ. Od IHV se očekává vývoj nového hardwaru, který podporuje virtuální adresování. Pro povolení tohoto nového modelu paměti byly v DDI provedeny významné změny.

WDDM 2.1

Aktualizace Windows 10 Anniversary Update (verze 1607) obsahuje WDDM 2.1, který podporuje Shader Model 6.0 (povinné pro úrovně funkcí 12_0 a 12_1), a DXGI 1.5, který podporuje HDR10-10bitový formát s vysokým dynamickým rozsahem a širokým gamutem definovaný ITU-T Rec. 2100 / Rec.2020 - a variabilní obnovovací frekvence.

WDDM 2.2

Aktualizace Windows 10 Creators Update (verze 1703) obsahuje WDDM 2.2, který je přizpůsoben pro virtuální , rozšířenou a smíšenou realitu se stereoskopickým vykreslováním pro platformu Windows Mixed Reality a DXGI 1.6.

WDDM 2.3

Aktualizace Windows 10 Fall Creators Update (verze 1709) obsahuje WDDM 2.3. Následuje seznam nových funkcí pro vývoj ovladače Windows Display v systému Windows 10 verze 1709:

  • Shader Model 6.1 , přidání podpory zobrazení, instancování a barycentrická sémantika.
  • Transformace DDI zobrazení ColorSpace poskytují další kontrolu nad transformacemi barevného prostoru aplikovanými v kanálu zobrazení po kompozici.
  • Funkce dotazů na časové razítko kopírování fronty D3D12 umožní aplikacím zadávat dotazy časových razítek na seznamy/fronty příkazů COPY. Tato časová razítka jsou zadána tak, aby fungovala shodně s časovými razítky na jiných motorech.
  • Vylepšená integrace videa do Direct3D12 Runtime prostřednictvím: hardwarově akcelerovaného dekódování videa, ochrany obsahu a zpracování videa

WDDM 2.4

Aktualizace systému Windows 10 z dubna 2018 (verze 1803) obsahuje WDDM 2.4. Aktualizace pro zobrazení vývoje ovladače v systému Windows 10 verze 1803 zahrnují následující funkce:

  • Shader Model 6.2 , přidání podpory pro 16bitové skaláry a možnost výběru chování s denormálními hodnotami.
  • Rozšíření třídy Nepřímý displej UMDF , ovladač může předat SRM vykreslovacímu GPU a mít mechanismus pro dotaz na používanou verzi SRM.
  • Hardwarově izolovaná podpora GPU IOMMU , která zvyšuje zabezpečení omezením přístupu GPU k systémové paměti.
  • Podpora paravirtualizace GPU , která umožňuje ovladačům zobrazení poskytovat možnosti vykreslování virtualizovaným prostředím Hyper-V.
  • Brightness , nové rozhraní pro podporu více displejů, které lze nastavit na kalibrované úrovně jasu na bázi nit.
  • Šifrování bitového proudu D3D11 , odhalující CENC, CENS, CBC1 a CBCS s 8 nebo 16 bajtovými inicializačními vektory.
  • Histogram dekódování videa D3D11 a D3D12 , který umožňuje využít hardware s pevnou funkcí pro histogram ke zlepšení kvality mapování tónů pro scénáře HDR/EDR.
  • Dekódování videa D3D12 nyní podporuje Decode Tier II, což umožňuje aplikacím amortizovat alokační náklady a snížit špičkové využití paměti při změně rozlišení.
  • Dlaždice zdrojů a LDA atomics , nová vrstva sdílení uzlů mezi uzly, která přidává podporu pro pokyny pro atomový shader pracující napříč uzly propojeného adaptéru (LDA), což umožňuje implementovat více technik vykreslování GPU, jako je vykreslování rozdělených snímků (SFR).
  • Podpora ditheringu GPU , umožňující operačnímu systému výslovně požadovat dithering ve scénářích, kde je zapotřebí vyšší efektivní bitová hloubka, než je fyzicky k dispozici na propojení monitoru, například pro HDR10 přes HDMI 2.0.
  • Přepsání vylepšení barev po zpracování , což umožňuje operačnímu systému požadovat, aby ovladač dočasně zakázal jakékoli následné zpracování, které vylepšuje nebo mění barvy zobrazení, pro konkrétní scénáře aplikace k vynucení kolorimetricky přesného chování barev na displeji a bezpečně koexistuje s OEM nebo IHV -patentovaná vylepšení barev displeje.
  • Direct3D12 a Video , nové API a DDI poskytují přístup k hardwarově akcelerovanému dekódování videa, ochraně obsahu a zpracování videa.
  • DisplayID , nové DDI, navržené tak, aby umožňovalo dotazování deskriptoru DisplayID VESA z displeje ovládaného grafickým adaptérem.
  • Údaje o výkonu GPU , rozšíření pro vystavení informací o hardwaru GPU, jako je teplota, rychlost ventilátoru, rychlost hodin pro motory a paměť, šířka pásma paměti, odběr energie a napětí.
  • SupportContextlessPresent , kryt ovladače, který pomůže IHV integrovat nový ovladač.
  • Vylepšení podpory externích/vyměnitelných grafických karet v operačním systému a lepší podpora odpojitelných grafických karet.
  • Diagnostika zobrazení se změnou rozhraní ovladače zařízení v režimu jádra, aby ovladač pro ovladač zobrazení mohl hlásit diagnostické události operačnímu systému.
  • Sdílené komponenty pro napájení grafické karty, které umožňují negrafickým ovladačům účastnit se řízení spotřeby grafického zařízení.
  • Vylepšení sdílené textury , zvýšení typů textur, které lze sdílet mezi procesy a zařízení Direct3D, podpora monochromatického tisku s minimálním kopírováním paměti.

WDDM 2,5

Aktualizace Windows 10. října 2018 (verze 1809) obsahuje WDDM 2.5. Aktualizace vývoje ovladače zobrazení v systému Windows 10 verze 1809 obsahují následující funkce:

  • Shader Model 6.3 , přidání podpory pro DirectX12 Raytracing (DXR).
  • Raytracing za účelem podpory hardwarově akcelerovaného raytracingu v Direct3D 12.
  • Univerzální požadavky na ovladače, ovladače budou muset zajistit, aby jejich ovladače DirectX 11 a DirectX12 v uživatelském režimu a ovladače režimu jádra, jakož i další DLL načtené těmito komponentami, dodržovaly Universal API.
  • SRV-Only Tiled Resource Tier 3 , nový bit schopností pro vedle sebe, odhalující textury řídkého objemu bez nutnosti podpory operací neuspořádaného přístupu a vykreslování cíle.
  • Render Pass , který v Direct3D 12 zavádí koncept vykreslování, přidává nová rozhraní API, která se mají spouštět na stávajících ovladačích, a umožňuje ovladačům v uživatelském režimu zvolit optimální cestu vykreslování bez silného postihu CPU.
  • Meta příkazy , přidání podpory náhledu pro DirectML , vysoce výkonnou, hardwarově akcelerovanou knihovnu DirectX 12 pro strojové učení. V systému Windows 10 verze 1903 a novější jsou meta-příkazy a DirectML stabilní součástí systému Windows.
  • Kompenzace jasu HDR , nové zvýšení jasu SDR, zvýšení referenční bílé barvy obsahu SDR na uživatelem požadovanou hodnotu, což umožňuje reprodukci obsahu SDR na typických 200-240 nitů. Umožňuje také hlášení, pokud hardware/ovladač podporuje výstup HDR prostřednictvím pixelového formátu FP16 nebo pouze pixelového formátu ARGB10.
  • SDR White Level , aby grafické ovladače poznaly hodnotu úrovně SDR bílé, která je používána skladatelem OS pro veškerý obsah SDR, pro displej, který běží v režimu HDR.
  • Synchronizace zobrazení , která umožňuje operačnímu systému zkontrolovat možnosti synchronizace zobrazení, pokud je displej vystaven řidičem a před povolením zobrazení.
  • Sledované pracovní vytížení bylo také přidáno jako experimentální funkce pro lepší kontrolu kompromisu mezi rychlejším prováděním procesoru a nižší spotřebou energie, ale bylo odstraněno z Windows 10 verze 2004 a zastaralé ze starších verzí OS jako součást opravy zabezpečení.

WDDM 2.6

Aktualizace Windows 10 z května 2019 (verze 1903) obsahuje WDDM 2.6. Aktualizace zobrazení vývoje ovladače v systému Windows 10 verze 1903 zahrnují následující funkce:

  • Shader Model 6.4 , přidání podpory s nízkou přesností zabalených bodů produktu vnitřních částí a pro dílčí objekty knihovny pro zjednodušení sledování paprsků.
  • Super Wet Ink , umožňující vytváření textur ve formátech a režimech, které IHV nativně nepodporuje, jejich řešení jako projekce zdrojů do formátu, který hardware/ovladače nativně podporují, což umožňuje optimalizaci interních ovladačů.
  • Stínování s proměnlivou rychlostí , také známé jako hrubé stínování pixelů , mechanismus umožňující alokaci výkonu/výkonu vykreslování při různých rychlostech mezi vykreslenými obrázky. Dodává se se dvěma úrovněmi (úroveň 1 a úroveň 2).
  • Shromažďujte diagnostické informace , což umožňuje operačnímu systému shromažďovat soukromá data z ovladačů pro funkce vykreslování i zobrazení. Tato nová funkce je požadavkem WDDM 2.6.
  • Zpracování na pozadí , umožňující ovladačům v uživatelském režimu vyjadřovat požadované chování vláken a běhové prostředí jej ovládat/monitorovat. Rozhraní API umožňují aplikacím upravit, jaké množství zpracování na pozadí je vhodné pro jejich pracovní zátěž a kdy tuto práci provést.
  • Aktualizace Driver Hot Update , zkrácení prostojů serveru a povolení opravy hotfix zabezpečení ovladače ovladače režimu jádra.

WDDM 2.7

Aktualizace Windows 10 z května 2020 (verze 2004) obsahuje WDDM 2.7. Aktualizace pro zobrazení vývoje ovladače v systému Windows 10 verze 2004 obsahují následující funkce:

  • Shader Model 6.5 , přidání podpory k novým možnostem potrubí a také další funkce Wave.
  • Hardwarově akcelerované plánování GPU : maskováno jako další možnost v systémových nastaveních, pokud je povoleno, přenáší vysokofrekvenční úkoly na vyhrazený plánovací procesor založený na GPU, což snižuje režii plánování procesoru. Vyžaduje podporu hardwaru a ovladačů ad-hoc.
  • Sampler Feedback , umožňující jemnější vyladění využití zdrojů ve scéně. Dodává se se dvěma úrovněmi (úroveň 0,9 a úroveň 1,0).
  • DirectX Raytracing (DXR), Tier 1.1 , zavádějící in-line ray-tracing, dispečink nepřímých paprsků, zvětšování stavového objektu bez nutnosti vytvářet nový a další vrcholové formáty pro akcelerační struktury.
  • Fáze Shaders a Mesh a Amplification , nový volitelný geometrický kanál nahrazující tradiční potrubí ( fáze Assembler-Vertex-Hull-Tesselator-Domain-Geometry a Stream Output).
  • Vylepšené řízení alokace paměti , s lepší kontrolou rezidence a možností výslovně nevynulovat nově vytvořené haldy.
  • Součinnost zdrojů Direct3D 9 , umožňující promítnutí zdroje Direct3D 9 na aplikaci Direct3D 12.
  • Podpora zdrojů Direct3D 12 Video Protected , umožňující přehrávání chráněného obsahu v aplikaci Direct3D 12.

WDDM 2.8

Windows 10 Insider Preview Manganese obsahoval WDDM 2.8, ale nebyl nikdy veřejně prokázán žádný ovladač, který by jej podporoval, a byl u vývojových verzí „Iron“ a „Cobalt“ vynechán.

WDDM 2.9

WDDM 2.9 ve Windows 10 Insider Preview „Iron“ přinese podporu hardwarové akcelerace GPU do subsystému Windows pro Linux 2 (WSL 2) a podporu pro úroveň funkcí 12_2 a HLSL Shader Model 6.6.

WDDM 3.0

Windows 11 RTM Final Retail release (verze 21H2) obsahuje WDDM 3.0, který zlepšuje grafickou architekturu v subsystému Windows pro Linux a přidává:

  • Ovladač uživatelského režimu zkompilovaný pro Linux v balíčku WSL.
  • Hostitel nainstalovaný v Linuxu
  • Dynamická obnovovací frekvence

Viz také

Reference