DXGK_SET_TIMING_PATH_INFO構造体 (d3dkmddi.h)
SetTiming パスを変更するための情報を保持する構造体。
構文
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;
メンバー
VidPnTargetId
ディスプレイ アダプターのビデオの現在のターゲットの識別子。
OutputColorSpace
転送されたピクセル用の出力色空間を表す D3DDDI_COLOR_SPACE_TYPE 値。 ドライバーは、ディスプレイ デバイスがこの色空間のピクセルを正しく解釈するように設定されていることを確認するために、適切なメタデータを送信する必要があります。
出力カラースペースは、別の SetTiming 呼び出しによって変更されるまで固定されます。 このターゲットに表示されるスワップ チェーンに設定されたカラースペースが出力 colorspace と異なる場合、ドライバーはスキャンアウト中に出力カラースペースに変換する必要があります。
ターゲットで複数のピクセルプレーンが有効になっている場合、ドライバーは、構成されたピクセルを出力カラースペースに変換するだけでなく、通常は線形空間である有効なコンポジションカラースペースでプレーンの合成を実行する必要があります。
SelectedWireFormat はカラー エンコードとクロマ サブサンプリングを既に示しているため、OutputColorSpace は、ピクセル値をエンコードするプライマリとガンマを決定するためにのみ使用されます。その他の要素は、SelectedWireFormat で定義されているため、カラー モデル、範囲、およびコシティングは無視する必要があります。 Rec.709 プライマリを使用した ST.2084 ガンマ、または Rec 2020 プライマリを使用した 2.2 ガンマをサポートする予定がないため、RS2 リリースの OS では次の 2 つの値のみが設定されます。
- D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709、SDR の場合
- D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020、HDR10 の場合
OutputWireColorSpace
D3DDDI_COLOR_SPACE_TYPE列挙型は、MPO の入力色空間を指定するために OS でも使用されるため、WDDM 2.3 以降では非推奨です。 WDDM 2.3 以降のドライバーでは、新しい種類のD3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPEを使用する必要があります。
SelectedWireFormat
パス に 設定するワイヤ形式を示すD3DKMDT_WIRE_FORMAT_AND_PREFERENCE値。 Preference フィールドはこのコンテキストで予約されているため、ドライバーでは無視する必要があります。 残りの 5 つのビット フィールドでは、OS は 30 ビットのうちの 1 つを設定して、どの色エンコードと、どのビット深度でリンクを駆動するかを示します。
Input
Input.VidPnPathUpdates
このパスに対応する VidPn 要素が、前回の正常な呼び出し以降にどのように変更されたかについて説明します。
DXGK_SET_TIMING_PATH_INFO構造内のフィールドは、この概要から除外されるため、ドライバーは常に変更に対してこれらのフィールドを評価する必要があります。 たとえば、OS が SetTimings を呼び出してパス上のモニターをアイドル状態にした場合、Active フラグはクリアされ、VidPnPathUpdates はDXGK_PATH_UPDATE_UNMODIFIEDに設定されます。SetTimings を呼び出してモニターの電源をオンにすると、Active フラグが設定され、VidPnPathUpdates は引き続きDXGK_PATH_UPDATE_UNMODIFIEDに設定されます。
Input.Active
が設定されている場合は、パスをアクティブにするか、アクティブなままにする必要があることを示します。 オフの場合は、パスを非アクティブ化するか、非アクティブなままにする必要があることを示します。
Input.IgnoreConnectivity
が設定されている場合は、ディスプレイ デバイスが検出されていない場合でも、ドライバーがターゲットに出力を強制する必要があることを示します。 オフの場合、接続が変更された場合、ドライバーは更新された ConnectionStatus を報告する必要があります。
Input.PreserveInherited
が設定されている場合は、ドライバーが以前のドライバーによって構成されたタイミングとコンテンツを保持する必要があることを示します。 このフラグは、アダプターがドライバーの現在のインスタンス以外の何かによって構成された場合にのみ使用されます。 最初は、ブート時にパスがファームウェアによって初期化されたときに使用されます。 オフの場合、特別な動作は要求されません。
Input.SyncLockGroup
同期ロック グループの入力。 WDDM 2.4 以降で使用できます。 各パスが属している同期表示のグループを示します。 WDDM 2.4 - WDDM 2.6 はアダプターごとに 1 つの同期グループのみをサポートし、可能な場合は常に同期を有効にするため、同期可能なディスプレイが有効になっている場合は 1、ディスプレイを同期する必要がないため、常に値 DXGK_SYNC_LOCK_STYLE_NONEの SyncLockStyle とペアにする必要がある場合は 0 に設定されます。
Input.SyncLockStyle
同期ロック スタイルの入力。 WDDM 2.4 以降で使用できます。 OS が要求している同期のスタイルを示します。 WDDM 2.4 - WDDM 2.6 ドライバーの場合、同期可能なディスプレイが有効になっている場合、この値は DXGK_SYNC_LOCK_STYLE_IDENTICAL に設定され、それ以外の場合はDXGK_SYNC_LOCK_STYLE_NONE。
Input.Reserved
この値はシステムで使うために予約されています。
InputFlags
OS がドライバーで実行する操作を指定するフラグのセット。
Output
Output.RecheckMPO
が設定されている場合は、このパスの変更により、OS が CheckMPO を発行する必要があることを示します。
Output.Reserved
この値はシステムで使うために予約されています。
OutputFlags
OS がこのパスに関連して認識する必要がある結果を指定するフラグのセット。
TargetState
この呼び出しの結果としてターゲットの状態を示します。 タイミングを変更すると、変更されたターゲットと OS が変更を意図しなかったターゲットの両方の接続状態が発生する可能性があるため、このフィールドは各パスの状態を伝えます。
ターゲットの状態が変更されていない場合、このフィールドには、以前に報告されたのと同じ ConnectionChangeId を含む、ターゲットで報告された最後の状態のコピーが含まれている必要があります。
ターゲットの状態が変更された場合、このフィールドには、SetTiming 呼び出しの結果の状態を反映する、キューに登録された接続の変更のコピーが含まれている必要があります。
GlitchCause
表示パイプラインの基になる変更がグリッチの原因となったかを示すDXGK_GLITCH_CAUSE値。
GlitchEffect
ユーザーにグリッチがどのように表示されたかを示すDXGK_GLITCH_EFFECT値。
GlitchDuration
DXGK_GLITCH_DURATION値。これは、グリッチが持続したおおよその期間を示します。 これは、基になる問題が存在した時間を反映することを目的としていますが、場合によっては目に見える効果が長くなる可能性があります。 たとえば、モニターが再検出するのに十分な時間だけ同期が失われた場合、ディスプレイ デバイスは回復に多くのフレームを要する可能性があります。 これは、デバイスによって異なるため、復旧時間ではなく、報告する必要がある、基になる問題の長さです。
Reserved
この値はシステムで使うために予約されています。
DiagnosticInfo
タイミング変更の副作用を説明するために、各パスのドライバーによって入力された情報のセット。 多くの場合、グリッチは避けられないので、これらのフィールドは根本的な原因とユーザーへの影響の程度を理解しようとします。
要件
要件 | 値 |
---|---|
Header | d3dkmddi.h |