Einführung in Video Present Networks

Der VidPN-Manager (Video Present Network), der eine Komponente des DirectX-Grafikkernsubsystems (Dxgkrnl.sys) ist, ist für die Verwaltung der Sammlung von Monitoren und anderen Anzeigegeräten verantwortlich, die mit einer Grafikkarte verbunden sind. Der VidPN-Manager hat folgende Aufgaben:

  • Reagieren Sie auf hot plugging und trennen von Monitoren.

  • Verwalten und aktualisieren Sie eine Reihe verfügbarer Anzeigemodi, wenn sich die Gruppe der verbundenen Monitore ändert.

  • Verwalten sie die Zuordnung zwischen Renderingoberflächen und Videoausgaben auf der Grafikkarte. Beispielsweise klonen Sie Ansichten, und erweitern Sie den Desktop auf mehrere Monitore.

  • Passen Sie den Satz der verfügbaren Anzeigegeräte und Anzeigemodi an, wenn der Deckel eines Laptops geöffnet oder geschlossen wird.

  • Passen Sie den Satz der verfügbaren Anzeigegeräte und Anzeigemodi an, wenn ein Laptop angedockt oder abgedockt ist.

Die Hardware eines Grafikkartes, die für das Scannen gerenderter Inhalte aus dem Videospeicher und deren Darstellung in Videoausgaben verantwortlich ist, wird als Präsentationssubsystem der Grafikkarte bezeichnet. Ein Video Present Network (VidPN) ist ein Softwaremodell des Präsentationssubsystems einer Grafikkarte.

Die wichtigsten Elemente des Präsentationssubsystems eines Anzeigeadapters sind die Ansichten (primäre Oberflächenketten) und die Videoausgaben. Im VidPN-Modell wird eine Ansicht als Video präsente Quelle bezeichnet, und eine Videoausgabe wird als Videoobjekt bezeichnet.

Ein Video präsenter Pfad ist eine Zuordnung zwischen einer Video präsenten Quelle und einem Video präsenten Ziel. Ein VidPN modelliert die Beziehung zwischen Quellen und Zielen, indem eine Reihe von Videodatenpfaden beibehalten wird. Der Pfadsatz wird als VidPN-Topologie bezeichnet.

Beachten Sie, dass es sich nicht um die Monitore (oder andere externe Anzeigegeräte) handelt, die mit der Grafikkarte verbunden sind. Die video vorliegenden Ziele sind die Videoausgabeconnectors selbst.

Das folgende Diagramm veranschaulicht einen VidPN.

Diagramm, das ein Video Present Network (VidPN) mit Quellen, Zielen und Connectors veranschaulicht.

Der im vorherigen Diagramm dargestellte VidPN verfügt über drei Videoobjekte: einen DVI-Anschluss, einen HD15-Anschluss und einen S-Video-Anschluss. Die VidPN-Topologie wird durch die Zeilen dargestellt, die die beiden Quellen mit den drei Zielen verbinden. Die Topologie gibt an, dass Quelle 1 mit dem DVI-Ziel und Quelle 2 mit den HD15- und S-Video-Zielen verbunden ist. Der in Quelle 2 gerenderte Inhalt wird als Klonansicht auf den Anzeigegeräten angezeigt, die mit den HD15- und S-Video-Connectors verbunden sind.

Jede Videoquelle unterstützt einen bestimmten Satz von Oberflächenformaten, die als Quellmodi bezeichnet werden. Um die von den verschiedenen Videoquellen unterstützten Quellmodi nachzuverfolgen, verwaltet ein VidPN einen Quellmodus für jede vorhandene Videoquelle. Der für eine bestimmte Videoquelle festgelegte Quellmodus ist nicht statisch. Es ändert sich, wenn sich die Topologie ändert, und es ändert sich entsprechend den Modi, die für andere Videoquellen ausgewählt wurden.

Das Modell funktioniert ähnlich bei Videoobjekten. Jedes video präsentierene Ziel unterstützt einen bestimmten Satz von Videosignalformaten, die als Zielmodi bezeichnet werden, und ein VidPN verwaltet einen Zielmodus, der für jedes video vorliegende Ziel festgelegt ist. Der für ein bestimmtes Video festgelegte Zielmodus ändert sich, wenn sich die Topologie ändert und modi für andere Videoobjekte ausgewählt werden.

Die Rolle des Display-Miniporttreibers

Ein Grafikkarte verfügt über einen oder mehrere Videoausgabecodecs (z. B. ein CRTC), die aus videogegensemen Quellen lesen und die entsprechenden Videosignale auf video vorhandenen Zielen platzieren. Zu einem bestimmten Zeitpunkt kann ein Videoausgabecodec höchstens aus einer vorhandenen Videoquelle lesen. Dieser Codec kann jedoch ein Videosignal für mehr als ein vorhandenes Videoziel (Klonansicht) bereitstellen. Der VidPN-Manager befasst sich mit den Zuordnungen zwischen video present-Quellen und Video present-Zielen, befasst sich jedoch nicht mit der Rolle der Videoausgabecodecs. Die Entscheidungen darüber, welcher Videoausgabecodec aus einer bestimmten Videoquelle gelesen wird, liegt vollständig unter der Kontrolle des Anzeigeminiporttreibers. Angenommen, ein Grafikkarte verfügt über zwei Videoausgabecodecs, und der VidPN-Manager fordert den Anzeigeminiporttreiber auf, die im folgenden Diagramm dargestellte Topologie zu implementieren.

Diagramm: VidPN-Topologie mit zwei Quellen, die mit drei Zielen verbunden sind

Das folgende Diagramm zeigt eine Möglichkeit, wie der Display-Miniporttreiber Videoausgabecodecs zu video vorhandenen Quellen zuweisen kann.

Diagramm des Treibers, der CRTC1 zu HD15 für Quelle 1 und CRTC2 hd15 und S-Video für Quelle 2 ordnet.

Beachten Sie, dass die Klonansicht (HD15, S-Video) im vorherigen Diagramm von einem einzelnen CRTC verarbeitet wird. Angenommen, die HD15-Ausgabe, die mit CRTC1 verbunden ist, wird nicht mehr benötigt. Dann könnte der Anzeigeminiporttreiber die Klonansicht implementieren, indem er die Videoausgabecodecs konfiguriert, wie im folgenden Diagramm dargestellt:

Diagramm, das eine alternative Verwendung von Videoausgabecodecs mit zwei CRTCs für die Klonansicht zeigt.

Die Implementierung der Klonansicht mit zwei CRTCs hat einige Vorteile gegenüber der Implementierung mit einem CRTC. Beispielsweise können bei zwei CRTCs die HD15- und S-Videoausgänge unterschiedliche Auflösungen und Aktualisierungsraten aufweisen.

Wichtig ist, dass der VidPN-Manager nie etwas darüber weiß, wie die Videoausgabecodecs auf einer Grafikkarte den vorhandenen Videoquellen und -zielen zugewiesen werden. Der VidPN-Manager kennt nur die Zuordnungen zwischen Quellen und Zielen. Die zugrunde liegenden zusammengesetzten Zuordnungen, die die Videoausgabecodecs umfassen, sind nur dem Anzeigeminiporttreiber bekannt.