Treiberresidenz in WDDM 2.0
Dieser Abschnitt enthält Details zu den Änderungen der Treiberresidenz für windows Display Driver Model (WDDM) 2.0. Die beschriebene Funktionalität ist ab Windows 10 verfügbar.
In diesem Abschnitt
Thema | BESCHREIBUNG |
---|---|
Mit der Einführung des neuen Residenzmodells wird die Residency in eine explizite Liste auf dem Gerät anstelle der Pufferliste pro Befehl verschoben. Der Videospeicher-Manager stellt sicher, dass alle Zuordnungen in einer bestimmten Geräteresidenzanforderungsliste resident sind, bevor kontexte, die zu diesem Gerät gehören, für die Ausführung geplant werden. |
|
Wenn die Zuordnungsliste gelöscht wird, hat der Videospeicher-Manager keinen Einblick mehr in die Zuordnungen, auf die in einem bestimmten Befehlspuffer verwiesen wird. Aus diesem Grund ist der Videospeicher-Manager nicht mehr in der Lage, die Zuordnungsnutzung nachzuverfolgen und die zugehörige Synchronisierung zu verarbeiten. Diese Verantwortung fällt nun auf den Benutzermodustreiber. Insbesondere muss der Benutzermodustreiber die Synchronisierung in Bezug auf den direkten CPU-Zugriff auf die Zuordnung sowie die Umbenennung übernehmen. |
|
Für WDDM v2 werden die Anforderungen rund um Angebot und Reclaim gelockert. Benutzermodustreiber sind nicht mehr erforderlich, um Angebot und Rückforderung für interne Zuordnungen zu verwenden. Anwendungen im Leerlauf oder angehaltene Anwendungen entfernen interne Treiberressourcen mithilfe der Trim-API, die in Microsoft DirectX 11.1 eingeführt wurde. |
|
Der Zugriff der Grafikverarbeitungseinheit (Graphics Processing Unit, GPU) auf Zuordnungen, die nicht ansässig sind, ist unzulässig und führt dazu, dass ein Gerät für die Anwendung entfernt wird, die den Fehler generiert hat. Es gibt zwei unterschiedliche Modelle für die Behandlung eines solchen ungültigen Zugriffs, abhängig davon, ob die fehlerhafte Engine die virtuelle GPU-Adressierung unterstützt oder nicht:
|
|
In WDDM v2 werden Prozessen Budgets für die Speichergröße zugewiesen, die sie lokal behalten können. Dieses Budget kann sich im Laufe der Zeit ändern, wird jedoch in der Regel nur auferlegt, wenn das System unter Speicherdruck steht. Vor Microsoft Direct3D 12 wird das Budget vom Benutzermodustreiber in Form von Trim-Benachrichtigungen und MakeResident-Fehlern mit STATUS_NO_MEMORY verwaltet. TrimToBudget-Benachrichtigungen , Evict- und fehlgeschlagene MakeResident-Aufrufe geben alle das neueste Budget in Form eines ganzzahligen NumBytesToTrim-Werts zurück, der angibt, wie viel gekürzt werden muss, um in das neue Budget zu passen. |