Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina worden de functies van weergave- en grafische stuurprogramma's beschreven die zijn toegevoegd in eerdere versies van WDDM 2.X voor Windows 10. Zie Wat is er nieuw voor weergave- en grafische stuurprogramma's voor Windows 10 om te zien welke functies zijn toegevoegd voor de meest recente WDDM 2.X-versie.
WDDM 2.6
Supernatte inkt
Super-Wet Inkt is een functie die gebaseerd is op front-buffer-rendering. IHV-stuurprogramma's kunnen ondersteuning bieden voor het maken van 'weergavebare' patronen van indelingen of modi die niet worden ondersteund door de hardware. Ze kunnen dit doen door de textuur toe te wijzen die de app heeft aangevraagd, samen met een 'schaduw' textuur met een indeling die kan worden weergegeven, en vervolgens te kopiëren tussen de twee texturen op het moment van uitvoering. Deze 'schaduw' is mogelijk niet noodzakelijkerwijs een textuur op de normale manier die we ervan denken, maar kan gewoon compressiegegevens zijn. Daarnaast is het mogelijk niet vereist om te bestaan, maar kan het een optimalisatie zijn.
De runtime zal zich ontwikkelen om inzicht te krijgen in deze aspecten van weer te geven oppervlakken:
Of er al dan niet een schaduw moet bestaan voor weergave op een bepaald VidPnSource/vlak.
Of het beter is om een schaduw te laten bestaan.
Wanneer moet de inhoud van het toepassingsoppervlak naar het schaduwoppervlak worden overgedragen. De runtime zal expliciet zijn over deze bewerking, in tegenstelling tot impliciet binnen Present.
Hoe een modus in te stellen of dynamisch te schakelen tussen de oorspronkelijke en schaduwoppervlakken aanvragen.
Scanout kan kort na een VBlank beginnen, en verticaal van boven naar beneden over de afbeelding scannen, en voltooit kort voor de volgende VBlank. Dit is niet altijd het geval, afhankelijk van de timing van de pixelklok en de indeling van de gegevens in het patroon; vooral als er daadwerkelijk compressie beschikbaar is.
Er zijn nieuwe DDIS's toegevoegd om transformaties te scheiden en te begrijpen die plaatsvinden vóór de scan, om (indien mogelijk) frontbufferrendering in te schakelen. Zie D3DWDDM2_6DDI_SCANOUT_FLAGS en PFND3DWDDM2_6DDI_PREPARE_SCANOUT_TRANSFORMATION.
Variabele snelheidsschakering
Variabele snelheidsarcering, of grof pixelarcering, is een mechanisme om de toewijzing van renderingprestaties/vermogen op verschillende snelheden voor gerenderde afbeeldingen mogelijk te maken.
In het vorige model, om MSAA (multi-sample antialiasing) te gebruiken voor het verminderen van geometrische aliasing:
- Het bedrag waarmee geometrische aliasing moet worden verminderd, moet vooraf bekend zijn wanneer het doel wordt toegewezen.
- Het bedrag waarmee geometrische aliasing moet worden verminderd, kan niet worden gewijzigd zodra het doel is toegewezen.
In WDDM 2.6 breidt het nieuwe model MSAA uit in de tegenovergestelde, grove pixelrichting door het concept van grove arcering toe te voegen. Dit is waar arcering kan worden uitgevoerd op een frequentie die grover is dan een pixel. Een groep pixels kan worden gearceerd als één eenheid en het resultaat wordt vervolgens uitgezonden naar alle voorbeelden in de groep.
Met een API voor ruwe arcering kunnen apps het aantal pixels opgeven die bij een gearceerde groep horen. De grove pixelgrootte kan worden gevarieerd nadat het renderdoel is toegewezen. Dus, verschillende gedeelten van het scherm of verschillende tekenbewerkingen kunnen verschillende schaduwfrequenties hebben.
Er is een implementatie met meerdere lagen beschikbaar met twee door de gebruiker doorzoekbare maximumlimieten. Voor laag 1 en 2 is grof arcering beschikbaar voor zowel single-sampled als MSAA-resources. Voor MSAA-resources kan arcering worden uitgevoerd per grof pixel of per steekproef zoals gebruikelijk. Op laag 1 en 2 voor MSAA-resources kunnen grove steekproeven echter niet worden gebruikt om te schaduwen op een frequentie tussen per pixel en per steekproef.
Niveau 1:
Arceringssnelheid kan alleen per tekenoperatie worden opgegeven; niets fijnmaziger dan dat
De schaduwsnelheid wordt uniform toegepast op wat wordt getekend, ongeacht waar het zich binnen het renderdoel bevindt.
Laag 2:
Schaduwfrequentie kan per tekensessie worden opgegeven, zoals in niveau 1. Het kan ook worden opgegeven door een combinatie van per tekenbasis en van:
- Semantiek vanaf het provocerende hoekpunt, en
- Een schermruimteafbeelding
Arceringssnelheden uit de drie bronnen worden gecombineerd met behulp van een set combineerders.
De beeldtegelgrootte van het scherm is 16x16 of kleiner. Het door de app aangevraagde schaduwwerkingstempo wordt met zekerheid precies geleverd (voor precisie van temporale en andere heropbouwfilters)
SV_ShadingRate PS-invoer wordt ondersteund. De per-provocerende hoekpuntsnelheid, hier ook wel een primitief tarief genoemd, is alleen geldig wanneer één viewport wordt gebruikt en SV_ViewportIndex niet naar wordt geschreven.
De per-provocerende hoekpuntsnelheid, ook wel een primitief tarief genoemd, kan worden gebruikt met meer dan één viewport als de cap SupportsPerVertexShadingRateWithMultipleViewports is gemarkeerd als waar. In dat geval kan het ook worden gebruikt wanneer SV_ViewportIndex naar wordt geschreven.
Zie PFND3D12DDI_RS_SET_SHADING_RATE_0062 en D3D12DDI_SHADING_RATE_0062.
Diagnostische gegevens verzamelen
De functie 'Diagnostische gegevens verzamelen' stelt het besturingssysteem in staat persoonlijke gegevens van stuurprogramma's voor grafische adapters te verzamelen, welke bestaan uit zowel rendering en weergavefuncties. Deze nieuwe functie is een vereiste in WDDM 2.6.
De nieuwe DDI moet toestaan dat het besturingssysteem informatie verzamelt op elk moment dat een stuurprogramma wordt geladen. Op dit moment maakt het besturingssysteem gebruik van de functie DxgkDdiCollectDebugInfo die door de miniport is geïmplementeerd om persoonlijke gegevens van stuurprogramma's op te vragen voor TDR-gerelateerde gevallen (time-outdetectie en herstel). De nieuwe DDI wordt gebruikt voor het verzamelen van gegevens om verschillende redenen. Het besturingssysteem roept deze DDI aan wanneer diagnostische gegevens nodig zijn om een type informatie op te geven dat wordt aangevraagd. Het stuurprogramma moet alle persoonlijke gegevens verzamelen die belangrijk zijn om het probleem te onderzoeken en naar het besturingssysteem te verzenden. DxgkDdiCollectDebugInfo wordt uiteindelijk afgeschaft en vervangen door DxgkDdiCollectDiagnosticInfo.
Zie DXGKDDI_COLLECTDIAGNOSTICINFO.
Achtergrondverwerking
Met achtergrondverwerking kunnen stuurprogramma's voor de gebruikersmodus het gewenste threadinggedrag uitdrukken en kan de runtime deze beheren/bewaken. Stuurprogramma's in de gebruikersmodus activeren achtergrondthreads en stellen de prioriteit van deze threads zo laag mogelijk in. Ze vertrouwen op de NT-scheduler om ervoor te zorgen dat deze threads de kritieke pad-threads niet verstoren, doorgaans met succes.
Met API's kunnen apps aanpassen welke hoeveelheid achtergrondverwerking geschikt is voor hun workloads en wanneer dat werk moet worden uitgevoerd.
Zie PFND3D12DDI_QUEUEPROCESSINGWORK_CB_0062.
Hot Update voor stuurprogramma's
Stuurprogramma hot update vermindert de downtime van de server zoveel mogelijk wanneer een besturingssysteemonderdeel moet worden bijgewerkt.
Hot patch voor stuurprogramma's wordt gebruikt om een beveiligingspatch toe te passen op het kernelmodus-stuurprogramma. In dit geval wordt het stuurprogramma gevraagd om het geheugen van de adapter op te slaan, de adapter wordt gestopt, het stuurprogramma wordt uitgeladen, het nieuwe stuurprogramma wordt geladen en de adapter opnieuw wordt gestart.
ZieDXGKDDI_SAVEMEMORYFORHOTUPDATE en DXGKDDI_RESTOREMEMORYFORHOTUPDATE.
WDDM 2.5
Bijgehouden werklasten
Bijgehouden workload is een experimentele functie die meer controle biedt over de afweging tussen snellere processoruitvoering en lager energieverbruik, en is tot nader order niet beschikbaar. De implementatie is verwijderd uit Windows 10, versie 2003; en afgeschaft van eerdere versies van het besturingssysteem als onderdeel van een beveiligingsoplossing.
Inhoudswijzigingen
Onderwerp | Datum | Beschrijving |
---|---|---|
EDID-extensie (VSDB) voor HMD's en gespecialiseerde beeldschermen | 12/03/2018 | Specificatie voor displayfabrikanten |
DirectX Graphics Kernel Subsystem (Dxgkrnl.sys) | 12/04/2018 | Kernelmodusinterfaces die door het Windows-besturingssysteem worden geïmplementeerd via het Subsysteem van de Microsoft DirectX Graphics Kernel (Dxgkrnl.sys). |
WDDM 2.1 functies | 01/10/2019 | Beschrijft nieuwe en bijgewerkte functies voor WDDM 2.1 |
Raytracing
Er zijn nieuwe Direct3D-DDI's gemaakt parallel met direct3D-API's om hardware-versnelde raytracing te ondersteunen. Voorbeelden van DDIS's zijn:
- PFND3D12DDI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_0054
- PFND3D12DDI_COPY_RAYTRACING_ACCELERATION_STRUCTURE_0054
- PFND3D12DDI_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_0054
- PFND3D12DDI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_0054
Zie voor meer informatie over raytracing:
- Aankondiging van Microsoft DirectX Raytracing
- DirectX Raytracing en de Update van Windows 10 oktober 2018
Synchronisatie weergeven
Het besturingssysteem controleert op mogelijkheden voor weergavesynchronisatie wanneer het stuurprogramma beschikbaar wordt gesteld aan het besturingssysteem, dus voordat het beeldscherm wordt ingeschakeld. Voor subapparaten van het type TypeIntegratedDisplay wordt dit gerapporteerd via een oproep aan DxgkDdiQueryAdapterInfo met TypeDXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2 tijdens de initialisatie van de adapter. Voor TypeVideoOutput-kindapparaten, die worden ondersteund vanaf WDDM 2.5, worden de mogelijkheden gerapporteerd als onderdeel van de hot plug-verwerking via DxgkDdiUpdateMonitorLinkInfo zodat de mogelijkheden kunnen veranderen op basis van de doelmonitor of aangesloten monitor.
Het besturingssysteem specificeert de weergavesynchronisatie in de DxgkDdiSetTimingsFromVidPn oproep in het veld 'Input' van de per pad DXGK_SET_TIMING_PATH_INFO structuur.
WDDM 2.1
WDDM 2.1 maakt nieuwe scenario's mogelijk en biedt aanzienlijke verbeteringen op het gebied van prestaties, betrouwbaarheid, upgradetolerantie, diagnostische verbeteringen en toekomstige systeemverbeteringen voor het Subsysteem windows-graphics. Het WDDM 2.0-stuurprogrammamodel is een vereiste voor D3D12. WDDM 2.0 en DirectX12 zijn alleen beschikbaar in Windows 10 en hoger.
Hier volgt een lijst met functie-toevoegingen en updates voor WDDM 2.1.
Verbeterde grafische prestaties door de overheadtijd te verminderen die wordt besteed aan geheugenbeheer en efficiënter gebruik van schaars grafisch geheugen. De verbeteringen in de grafische prestaties zijn:
- Resources aanbieden en terugvorderen: verbeteringen bieden en vrijmaken om de geheugenvoetafdruk van toepassingen die in de achtergrondmodus worden uitgevoerd, te verminderen.
- Ondersteuning voor codering van 2MB-paginatabelvermeldingen - In WDDM 2.1 is de codering van grote paginatabelvermeldingen (PTE) in VRAM ingeschakeld. Deze wijziging verbetert de prestaties op systemen die deze ondersteunen.
- Ondersteuning voor 64 kB-geheugenpagina's : toewijzingen van virtuele geheugen met een granulariteit van 64 kB worden ook ondersteund in WDDM 2.1. Deze wijziging heeft met name voordelen voor API's en SOC's door overhead te verminderen voor toegang tot pagina's met virtueel geheugen.
Verbeteringen in bescherming van inhoud op hardwarebasis met batchverwerking (PlayReady 3.0)
Driver Store-installatie voor grafische stuurprogramma's om de tolerantie van de upgrade van stuurprogramma's te verbeteren.
DXIL, een nieuwe shader-compilertaal
D3D12-prestatie- en optimalisatieverbeteringen
Verbeterde diagnostische opties voor ontwikkelaars
Zie WDDM 2.1-functies voor meer informatie.
WDDM 2.0
WDDM 2.0 bevat updates voor geheugenbeheer.
Virtueel GPU-geheugen
- Alle fysieke geheugen wordt geabstraheerd in virtuele segmenten die kunnen worden beheerd door gpu-geheugenbeheer (Graphics Processing Unit).
- Elk proces krijgt een eigen virtuele GPU-adresruimte.
- Ondersteuning voor swizzling ranges is verwijderd.
Zie het virtuele GPU-geheugen in WDDM 2.0 voor meer informatie.
Verblijfplaats van driver
- De videogeheugenbeheerder zorgt ervoor dat toewijzingen zich in het geheugen bevinden voordat u opdrachtbuffers naar het stuurprogramma verzendt. Om deze functionaliteit te vergemakkelijken, zijn gebruikersmodusstuurprogrammainterfaces (DDIs's) toegevoegd (MakeResident, TrimResidency, Evict).
- De toewijzings- en patchlocatielijst wordt uitgefaseerd omdat dit niet nodig is in het WDDM 2.0-model.
- Stuurprogramma's in de gebruikersmodus zijn nu verantwoordelijk voor het afhandelen van toewijzingstracering. Er zijn verschillende DDIS's toegevoegd om dit in te schakelen.
- Stuurprogramma's krijgen geheugenbudgetten en moeten naar verwachting worden aangepast onder geheugendruk. Hierdoor kunnen universele Windows-stuurprogramma's werken op verschillende toepassingsplatforms.
- DDIs zijn toegevoegd voor processynchronisatie en contextbewaking.
Zie Driver residency in WDDM 2.0 voor meer informatie.