Freigeben über


Updates für IddCx-Versionen 1.10 und höher

Auf dieser Seite werden die Änderungen beschrieben, die in IddCx Version 1.10 vorgenommen wurden. Eine einzelne IDD-Binärdatei (Indirekter Anzeigetreiber), die für IddCx 1.10 erstellt wurde, kann unter Windows 10, Version 1803 und höher ausgeführt werden, indem Laufzeitüberprüfungen verwendet werden, um zu überprüfen, ob DDI-Änderungen in IddCx 1.10 auf diesem System verfügbar sind. Weitere Informationen finden Sie unter Erstellen eines WDF-Treibers für mehrere Windows-Versionen.

Die IddCx 1.10-Änderungen fallen in die folgenden Kategorien:

  • Aktualisieren Sie die IddCxGetVersion-Version (Konsole und Remoteversion). Eine vollständige Liste mit IddCx-bezogenen Versionsinformationen finden Sie unter IddCx-Versionen.
  • Hinzufügen von HDR10-Unterstützung (high dynamic range) und SDR (Standard Dynamic Range) Wide Color Gamut (WCG) zu indirekten Displays.

Aktualisierte IddCxGetVersion-Version

Der von IddCxGetVersion zurückgegebene Wert wurde aktualisiert, unterscheidet sich jedoch je nach Betriebssystem:

  • Das Windows 11, Version 22H2 September Update gibt 0x1A00 (IDDCX_VERSION_SV3) zurück.
  • Die Windows-Plattformversion 2024 gibt 0x1A80 zurück.

Diese Versionsverwaltung ist für Remotetreiber von Bedeutung, bei denen sich das Verhalten des Betriebssystems geringfügig unterscheidet.

Hdr- und SDR-Unterstützung für den breiten Farbraum

Einführende Informationen zur Farbe unter Windows, einschließlich SDR WCG, finden Sie unter DirectX mit erweiterter Farbe auf HDR- und SDR-Displays.

Treiber-DDI- und Betriebssystemunterstützung

Nach Möglichkeit wurden vorhandene DDIs erweitert, damit ein Treiber Unterstützung für Folgendes melden kann:

  • HDR10
  • SDR WCG
  • Empfangen von Daten zur Beschreibung von HDR-Frames, die an eine IDD gesendet werden

Neuere Varianten vorhandener DDIs wurden hinzugefügt, wenn vorhandene DDIs nicht erweitert werden konnten. In den meisten Fällen gelten diese Änderungen sowohl für Konsolen- als auch für Remotetreiber, aber es werden auch einige spezifische Details für Remotetreiber definiert.

Treiber der Version 1.10 und höher, die HDR unterstützen, müssen die neueren DDI-Varianten verwenden. Ältere Treiber oder Treiber, die HDR nicht unterstützen, können die vorhandenen Funktionen weiterhin verwenden. Eine Übersicht über die Änderungen erhalten Sie in den folgenden Abschnitten.

In der folgenden Tabelle sind die vom Treiber implementierten DDIs aufgeführt, die in IddCx 1.10 hinzugefügt wurden, und die vorherige Entsprechung, falls vorhanden. Das Betriebssystem kann diese Funktionen aufrufen, wenn der Treiber sie meldet, auch für Adapter, die nicht versuchen, HDR zu unterstützen.

Treiberfunktionen, die das Betriebssystem für HDR-Adapter aufruft Vorherige gleichwertige Funktion
EVT_IDD_CX_ADAPTER_QUERY_TARGET_INFO
EVT_IDD_CX_MONITOR_SET_DEFAULT_HDR_METADATA*
EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION2** EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION
EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES2 EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES
EVT_IDD_CX_ADAPTER_COMMIT_MODES2 EVT_IDD_CX_ADAPTER_COMMIT_MODES

*: Die Funktion wird für Remotetreiber nicht aufgerufen.

**: Die Funktion wird für Remotetreiber abhängig von den vom Treiber festgelegten Adapterflags möglicherweise nicht aufgerufen.

In der folgenden Tabelle sind die vom Betriebssystem implementierten Funktionen aufgeführt, die in IddCx 1.10 hinzugefügt wurden, und die vorherigen Entsprechungen, falls vorhanden. Ein Treiber der Version 1.10 kann die neueren Varianten aufrufen, wenn er festgestellt hat, dass diese Funktionen in dem Betriebssystem verfügbar sind, unter dem der Treiber ausgeführt wird.

Neuere Funktionen, die ein Treiber für HDR-Adapter aufrufen muss Vorherige Entsprechung
IddCxSwapChainReleaseAndAcquireBuffer2 IddCxSwapChainReleaseAndAcquireBuffer/IddCxSwapChainReleaseAndAcquireSystemBuffer
IddCxMonitorQueryHardwareCursor3 IddCxMonitorQueryHardwareCursor2 oder IddCxMonitorQueryHardwareCursor
IddCxAdapterDisplayConfigUpdate2* IddCxAdapterDisplayConfigUpdate*
IddCxMonitorUpdateModes2 IddCxMonitorUpdateModes

*: Nur für Remotetreiber.

HDR-Unterstützung des Berichtsadapters

Treiber der Version 1.10 und höher sollten das IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16-Flag festlegen, das IDDCX_ADAPTER_FLAGS hinzugefügt wurde, um unterstützung für FP16-Oberflächen zu melden. FP16-Oberflächen können für HDR10 oder nur für SDR WCG verwendet werden. Das Festlegen dieses Flags impliziert, dass ein Treiber alles tut, was zum Aktivieren von HDR10 oder SDR WCG erforderlich ist, einschließlich:

HDR-Funktionen des Berichtsziels

Wenn ein Treiber HDR für einen Adapter aktivieren möchte, muss er über seine EVT_IDD_CX_ADAPTER_QUERY_TARGET_INFO-Funktion zusätzliche Informationen zu jedem Zielconnector bereitstellen. Zielconnectorspezifische Informationen sind erforderlich, da nur einige der verfügbaren Ziele einige Aspekte von HDR unterstützen.

HDR-Metadaten

Wenn der Treiber einen Monitordeskriptor mit HDR-Metadaten bereitstellt, ruft das Betriebssystem EVT_IDD_CX_MONITOR_SET_DEFAULT_HDR_METADATA auf, um dem Treiber die STANDARD-HDR-Metadaten zu übergeben. Der Treiber muss diese Standarddaten beibehalten und beim Senden von HDR10-Infoframes (SMPTE ST.2086) an den Monitor verwenden. Wenn ein Treiber IddCxSwapChainReleaseAndAcquireBuffer2 aufruft, stellt das Betriebssystem auch HDR-Metadateninformationen bereit. Wenn diese Metadaten angeben, dass der Standardwert verwendet werden soll, werden auf die gespeicherten Standarddaten verwiesen.

Wenn ein HDR-Modus festgelegt ist, sendet das Betriebssystem den HDR-Metadatenzustand mit jedem Frame. Diese Metadaten informieren den Treiber über die eingeführte IDDCX_METADATA2-Struktur , welche HDR-Metadaten verwendet werden sollen. Die Metadaten sind entweder ein neuer Metadatenblock oder ein Hinweis darauf, dass der Treiber entweder die Standardmetadaten verwenden soll, die das Betriebssystem zuvor bereitgestellt hat, oder dieselben Metadaten wie der vorherige Frame.

Hinweis: HDR-Metadaten werden nicht für Remotetreiber zur Verfügung gestellt, da hdr10-Metadaten aus dem Anzeigesubsystem auf dem Client stammen sollten.

Melden von HDR-Modi

Wenn eine Anzeige mit einem Ziel verbunden ist, fragt das Betriebssystem den Treiber nach derzeit unterstützten Überwachungs- und Zielmodi ab. Um HDR-Funktionen ordnungsgemäß anzukündigen, sind für jeden dieser Modi zusätzliche Informationen erforderlich, sodass ein HDR-Treiber die folgenden in v1.10 eingeführten DDIs verfügbar machen muss:

Diese erweiterten Modi geben die möglichen Bittiefen und Oberflächenformate an, die verwendet werden können. Ein Treiber kann auch eine Zielmodusliste aktualisieren, indem er IddCxMonitorUpdateModes2 aufruft.

Das Betriebssystem leitet Variationen der Modi für HDR und SDR WCG basierend auf den Informationen ab, die vom EVT_IDD_CX_ADAPTER_QUERY_TARGET_INFO Rückruf des Treibers vor der Meldung von Modi zurückgegeben werden.

Das Betriebssystem überprüft die Modi, um wiederholte Modi zu erkennen, die kombiniert und als einzelner Modus gemeldet werden sollen. Beispielsweise sollte ein Ziel, das 1080p bei 60 Hz in 8 Bits und 10 Bits pro Kanal unterstützt, als einzelmodus gemeldet werden. Wenn das Ziel diese Modi unterstützt, aber unterschiedliche Bandbreiten benötigt, ist es trotzdem in Ordnung, dass diese Modi separat gemeldet werden.

Ein hinzugefügter Gammatyp

Die vorhandene EVT_IDD_CX_MONITOR_SET_GAMMA_RAMP DDI wurde erweitert, sodass das Betriebssystem die 3x4-Matrixtransformation bereitstellen kann, die zur Unterstützung von HDR-Displays für Treiber benötigt wird, die HDR-Unterstützung ankündigen.

SDR-Weißebene

Mauscursorpixeldaten sind immer SDR. Wenn ein Monitor in einem HDR-Modus festgelegt ist, muss der SDR-Weißgrad auf Mauscursor angewendet werden. IddCx v.10 bietet diese Funktion an zwei Stellen:

Oberflächenfarbraum

Obwohl der Treiber den Farbraum als Teil der Modusinformationen gemeldet hat, meldet das Betriebssystem den tatsächlichen Farbraum, der von einem bestimmten Frame in der eingeführten IDDCX_METADATA2-Struktur verwendet wird.

HDR mit Remotetreibern

Wenn möglich, sollten betriebssystem- und treiberverhalten für einen Remotetreiber identisch sein wie bei einem Konsolentreiber. Es gelten folgende Ausnahmen:

  • HDR-Metadaten werden nicht für Remotetreiber bereitgestellt. Es wird erwartet, dass das Clientsystem diese Metadaten basierend auf der physisch verbundenen Anzeige bereitstellt. Es ist bedeutungslos, vom Server bestimmte Metadaten zu verwenden.
  • Die 3x4-Farbmatrixtransformation wird ebenfalls nicht gesendet. Auch hier wird erwartet, dass ein Remotetreiber die entsprechenden Daten aus dem Clientsystem verwendet.
  • Remotetreiber können die Farbmetrikdaten und die SDR-Weißebene bereitstellen, die auf dem Server verwendet werden sollen.
  • Monitormodi sind auch für Remotetreiber optional. Wenn ein Remotetreiber das IDDCX_ADAPTER_FLAGS_ALL_TARGET_MODES_MONITOR_COMPATIBLE Adapterflag festlegt, fragt das Betriebssystem ihn nicht nach Monitormodi, sondern verwendet stattdessen nur die Zielmodi. Diese Funktion ermöglicht es einem Treiber, ungewöhnliche Modi anzugeben, ohne den entsprechenden Monitormodus melden zu müssen. z. B. basierend auf einer Clientfenstergröße und nicht auf einer Monitorgröße.

Unterstützung eines 1.10-Treibers, der auf heruntergefahrener Ebene ausgeführt wird

Treiber der Version 1.10, die in älteren Windows-Versionen ausgeführt werden, müssen mehrere Schritte ausführen, um die Kompatibilität sicherzustellen. Insbesondere müssen Treiber:

  • Exportieren Sie weiterhin alle vorhandenen Funktionen wie EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION, EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES und EVT_IDD_CX_ADAPTER_COMMIT_MODES.
  • Verwenden Sie das makro IDD_CX_CLIENT_CONFIG_INIT , um die Größe der IDD_CX_CLIENT_CONFIG-Struktur festzulegen.
  • Versuchen Sie nicht, vom Betriebssystem implementierte Funktionen aufzurufen, die in älteren Releases nicht verfügbar sind. Verwenden Sie IDD_IS_FUNCTION_AVAILABLE , um die Verfügbarkeit zu überprüfen.
  • Keine der v1.10-Funktionen kann exportiert werden. Ein Treiber kann das IDD_IS_FIELD_AVAILABLE-Makro verwenden, um zu überprüfen, ob er den EvtIddCxXxx-Rückruf in die IDD_CX_CLIENT_CONFIG-Struktur schreiben soll.
  • IDD_IS_FIELD_AVAILABLE können einem Treiber auch dabei helfen, festzustellen, ob IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16 oder IDDCX_ADAPTER_FLAGS_ALL_TARGET_MODES_MONITOR_COMPATIBLE sicher festgelegt werden kann. Wenn eine der v1.10-DDIs nicht verfügbar ist, sollte der Treiber das Flag nicht festlegen.

Ein Beispiel für die Verwendung von IDD_IS_FIELD_AVAILABLE :

    if (IDD_IS_FIELD_AVAILABLE(IDD_CX_CLIENT_CONFIG, EvtIddCxParseMonitorDescription2))
    {
        IddCxClientConfig.EvtIddCxParseMonitorDescription2 = ParseMonitorDescription2;
    }

Weitere Informationen finden Sie unter Erstellen von IddCx 1.4-Treibern.