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

TargetState

この呼び出しの結果としてターゲットの状態を示します。 タイミングを変更すると、変更されたターゲットと OS が変更を意図しなかったターゲットの両方の接続状態が発生する可能性があるため、このフィールドは各パスの状態を伝えます。

ターゲットの状態が変更されていない場合、このフィールドには、以前に報告されたのと同じ ConnectionChangeId を含む、ターゲットで報告された最後の状態のコピーが含まれている必要があります。

ターゲットの状態が変更された場合、このフィールドには、SetTiming 呼び出しの結果の状態を反映する、キューに登録された接続の変更のコピーが含まれている必要があります。

GlitchCause

表示パイプラインの基になる変更がグリッチの原因となったかを示すDXGK_GLITCH_CAUSE値。

GlitchEffect

ユーザーにグリッチがどのように表示されたかを示すDXGK_GLITCH_EFFECT値。

GlitchDuration

DXGK_GLITCH_DURATION値。これは、グリッチが持続したおおよその期間を示します。 これは、基になる問題が存在した時間を反映することを目的としていますが、場合によっては目に見える効果が長くなる可能性があります。 たとえば、モニターが再検出するのに十分な時間だけ同期が失われた場合、ディスプレイ デバイスは回復に多くのフレームを要する可能性があります。 これは、デバイスによって異なるため、復旧時間ではなく、報告する必要がある、基になる問題の長さです。

Reserved

この値はシステムで使うために予約されています。

DiagnosticInfo

タイミング変更の副作用を説明するために、各パスのドライバーによって入力された情報のセット。 多くの場合、グリッチは避けられないので、これらのフィールドは根本的な原因とユーザーへの影響の程度を理解しようとします。

要件

要件
Header d3dkmddi.h