DXGK_SET_TIMING_PATH_INFO-Struktur (d3dkmddi.h)
Struktur zum Speichern von Informationen zum Ändern des SetTiming-Pfads .
Syntax
typedef struct _DXGK_SET_TIMING_PATH_INFO {
D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId;
union {
D3DDDI_COLOR_SPACE_TYPE OutputColorSpace;
D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE OutputWireColorSpace;
};
D3DKMDT_WIRE_FORMAT_AND_PREFERENCE SelectedWireFormat;
union {
struct {
DXGK_PATH_UPDATE VidPnPathUpdates : 2;
UINT Active : 1;
UINT IgnoreConnectivity : 1;
UINT PreserveInherited : 1;
UINT SyncLockGroup : 3;
DXGK_SYNC_LOCK_STYLE SyncLockStyle : 4;
#if ...
UINT Reserved : 20;
#else
UINT Reserved : 27;
#endif
} Input;
UINT InputFlags;
};
union {
struct {
UINT RecheckMPO : 1;
UINT Reserved : 31;
} Output;
UINT OutputFlags;
};
DXGK_CONNECTION_CHANGE TargetState;
union {
struct {
DXGK_GLITCH_CAUSE GlitchCause;
DXGK_GLITCH_EFFECT GlitchEffect;
DXGK_GLITCH_DURATION GlitchDuration;
UINT8 Reserved;
};
UINT DiagnosticInfo;
};
} DXGK_SET_TIMING_PATH_INFO;
Member
VidPnTargetId
Der Bezeichner des Videoziels einer Grafikkarte.
OutputColorSpace
Ein D3DDDI_COLOR_SPACE_TYPE Wert, der den Ausgabefarbraum beschreibt, der für die transportierten Pixel vorgesehen ist. Der Treiber ist für das Senden geeigneter Metadaten verantwortlich, um sicherzustellen, dass das Anzeigegerät für die korrekte Interpretation von Pixeln für diesen Farbraum eingerichtet ist.
Der Ausgabefarbraum wird bis zur Änderung durch einen anderen SetTiming-Aufruf festgelegt. Wenn sich der für die Swapchain festgelegte Farbraum, der diesem Ziel angezeigt wird, vom Ausgabefarbraum unterscheidet, muss der Treiber während des Scanouts in den Ausgabefarbraum konvertieren.
Wenn mehrere Pixelebenen auf dem Ziel aktiviert sind, muss der Treiber die Komposition der Ebenen in einem gültigen Kompositionsfarbraum durchführen, in der Regel ein linearer Raum zusätzlich zur Konvertierung der zusammengesetzten Pixel in den Ausgabefarbraum.
Da SelectedWireFormat bereits die Farbcodierung und chroma-Subsampling angibt, wird outputColorSpace nur verwendet, um die Primär- und Gammawerte zu bestimmen, mit denen die Pixelwerte codiert werden sollen. die anderen Elemente: Farbmodell, Bereich und Cositing sollten ignoriert werden, da sie durch SelectedWireFormat definiert werden. Da es keine Pläne gibt, ST.2084 gamma mit Rec.709-Primärriesen oder 2,2 Gamma mit Rec 2020-Primärriesen zu unterstützen, ist das Ergebnis, dass vom Betriebssystem in der RS2-Version nur zwei Werte festgelegt werden:
- D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 für SDR
- D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 für HDR10
OutputWireColorSpace
Der D3DDDI_COLOR_SPACE_TYPE Enumerationstyp wird auch vom Betriebssystem verwendet, um den Eingabefarbraum von MPOs anzugeben. Daher ist er ab WDDM 2.3 veraltet. WDDM 2.3 und höher sollten den neuen Typ D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE verwenden.
SelectedWireFormat
Ein D3DKMDT_WIRE_FORMAT_AND_PREFERENCE Wert, der das für den Pfad festzulegende Übertragungsformat angibt. Das Feld Einstellung ist in diesem Kontext reserviert und sollte daher vom Treiber ignoriert werden. In den verbleibenden fünf Bitfeldern legt das Betriebssystem eines der dreißig Bits fest, um anzugeben, welche Farbcodierung und in welcher Bittiefe der Link gesteuert werden soll.
Input
Input.VidPnPathUpdates
Beschreibt, wie die VidPn-Elemente, die diesem Pfad entsprechen, seit dem vorherigen erfolgreichen Aufruf geändert wurden.
Felder in der DXGK_SET_TIMING_PATH_INFO-Struktur sind von dieser Zusammenfassung ausgeschlossen, sodass der Treiber diese Felder immer auf Änderungen auswerten muss. Wenn das Betriebssystem beispielsweise SetTimings aufruft, um den Monitor in einem Pfad im Leerlauf zu schalten, wird das Flag Active gelöscht, und VidPnPathUpdates wird auf DXGK_PATH_UPDATE_UNMODIFIED festgelegt. Wenn es dann SetTimings aufruft, um den Monitor zu aktivieren, wird das Flag Active festgelegt, und die VidPnPathUpdates werden weiterhin auf DXGK_PATH_UPDATE_UNMODIFIED festgelegt.
Input.Active
Wenn festgelegt, gibt an, dass der Pfad aktiviert werden oder aktiv bleiben soll. Gibt an, dass der Pfad deaktiviert oder inaktiv bleiben soll, wenn dieser deaktiviert ist.
Input.IgnoreConnectivity
Wenn festgelegt, gibt an, dass der Treiber die Ausgabe an das Ziel erzwingen soll, obwohl kein Anzeigegerät erkannt wurde. Wenn diese Option deaktiviert ist, sollte der Treiber einen aktualisierten ConnectionStatus melden, wenn sich die Konnektivität geändert hat.
Input.PreserveInherited
Wenn festgelegt, gibt an, dass der Treiber die Von einem vorherigen Treiber konfigurierten Timings und Inhalte beibehalten soll. Dieses Flag wird nur verwendet, wenn der Adapter von einem anderen als dem aktuellen instance des Treibers konfiguriert wurde. Dies wird zunächst verwendet, wenn der Pfad während des Startvorgangs von der Firmware initialisiert wurde. Wenn dieser Wert eindeutig ist, wird kein besonderes Verhalten angefordert.
Input.SyncLockGroup
Synchronisierungssperrgruppeneingabe. Verfügbar ab WDDM 2.4. Gibt an, zu welcher Gruppe synchronisierter Anzeigen die einzelnen Pfade gehören. Da WDDM 2.4 – WDDM 2.6 nur eine einzelne Synchronisierungsgruppe pro Adapter unterstützt und die Synchronisierung nach Möglichkeit immer aktiviert, wird dieser Wert auf 1 festgelegt, wenn synchronisierungsfähige Anzeigen aktiviert sind, und auf 0, wenn die Anzeige nicht synchronisiert werden muss und immer mit SyncLockStyle mit dem Wert DXGK_SYNC_LOCK_STYLE_NONE gekoppelt werden sollte.
Input.SyncLockStyle
Eingaben im Synchronisierungssperrstil. Verfügbar ab WDDM 2.4. Gibt an, welche Art der Synchronisierung vom Betriebssystem angefordert wird. Für einen WDDM 2.4 - WDDM 2.6-Treiber wird dieser Wert auf DXGK_SYNC_LOCK_STYLE_IDENTICAL festgelegt, wenn synchronisierungsfähige Anzeigen aktiviert sind und andernfalls DXGK_SYNC_LOCK_STYLE_NONE.
Input.Reserved
Dieser Wert ist für die Verwendung durch das System reserviert.
InputFlags
Eine Reihe von Flags, die angeben, was das Betriebssystem vom Treiber ausführen soll.
Output
Output.RecheckMPO
Falls festgelegt, gibt an, dass das Betriebssystem aufgrund von Änderungen an diesem Pfad ein CheckMPO ausgeben muss.
Output.Reserved
Dieser Wert ist für die Verwendung durch das System reserviert.
OutputFlags
Eine Reihe von Flags, die Ergebnisse angeben, die dem Betriebssystem in Bezug auf diesen Pfad bekannt sein müssen.
TargetState
Gibt den Zielzustand als Ergebnis dieses Aufrufs an. Da sich ändernde Timings den Verbindungszustand sowohl geänderter Ziele als auch von Zielen verursachen können, die das Betriebssystem nicht ändern wollte, kommuniziert dieses Feld den Zustand für jeden Pfad.
Wenn der Zielzustand unverändert ist, sollte dieses Feld eine Kopie des zuletzt für das Ziel gemeldeten Zustands enthalten, einschließlich derselben ConnectionChangeId, die zuvor gemeldet wurde.
Wenn der Zielzustand geändert wird, sollte dieses Feld eine Kopie der Verbindungsänderung in der Warteschlange enthalten, die den Zustand widerspiegelt, der sich aus dem SetTiming-Aufruf ergibt.
GlitchCause
Ein DXGK_GLITCH_CAUSE Wert, der angibt, welche zugrunde liegenden Änderungen in der Anzeigepipeline den Fehler verursacht haben.
GlitchEffect
Ein DXGK_GLITCH_EFFECT Wert, der angibt, wie die Störung dem Benutzer angezeigt wurde.
GlitchDuration
Ein DXGK_GLITCH_DURATION Wert, der ungefähr angibt, wie lange die Störung gedauert hat. Dies soll widerspiegeln, wie lange das zugrunde liegende Problem vorhanden war, aber der sichtbare Effekt kann in einigen Fällen länger sein. Wenn die Synchronisierung beispielsweise so lange verloren geht, dass ein Monitor erneut erkannt werden muss, nimmt das Anzeigegerät wahrscheinlich viele Frames für die Wiederherstellung auf. Es ist die Länge des zugrunde liegenden Problems, das gemeldet werden soll, nicht die Wiederherstellungszeit, da dies zwischen den Geräten variiert.
Reserved
Dieser Wert ist für die Verwendung durch das System reserviert.
DiagnosticInfo
Eine Reihe von Informationen, die vom Treiber für jeden Pfad ausgefüllt werden, um alle Nebenwirkungen der Zeitsteuerungsänderung zu beschreiben. In vielen Fällen sind Störungen unvermeidlich, sodass diese Felder versuchen, die zugrunde liegende Ursache und das Ausmaß der Benutzerauswirkungen zu verstehen.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3dkmddi.h |