次の方法で共有


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 呼び出しによって変更されるまで固定されます。 このターゲットに提示されるスワップ チェーンに設定されたカラースペースが出力カラースペースと異なる場合、ドライバーはスキャンアウト時に出力カラースペースに変換する必要があります。

ターゲットで複数のピクセルプレーンが有効になっている場合、ドライバーは、構成されたピクセルを出力カラースペースに変換するだけでなく、通常は線形空間である有効なコンポジションカラースペースで平面の合成を実行する必要があります。

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 値。 基本設定フィールドはこのコンテキストで予約されているため、ドライバーでは無視する必要があります。 残りの 5 つのビット フィールドでは、OS は 30 ビットのうちの 1 つを設定して、どのカラー エンコードと、どのビット深度でリンクを駆動するかを示します。

Input

Input.VidPnPathUpdates

前の正常な呼び出し以降に、このパスに対応する VidPn 要素がどのように変更されたかについて説明します。

DXGK_SET_TIMING_PATH_INFO構造体のフィールドは、この概要から除外されるため、ドライバーは常に変更に対してこれらのフィールドを評価する必要があります。 たとえば、OS が SetTimings を呼び出してパス上のモニターをアイドル状態にした場合、アクティブ フラグはクリアされ、VidPnPathUpdates は DXGK_PATH_UPDATE_UNMODIFIEDに設定されます。SetTimings を呼び出してモニターを起動すると、アクティブ フラグが設定され、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

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

必要条件

要件 価値
ヘッダー d3dkmddi.h