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 已經指出色彩編碼和 chroma 子取樣,因此 OutputColorSpace 只會用來判斷應該編碼圖元值的主要和 gamma;其他元素:色彩模型、範圍和齒輪應該忽略,因為它們是由 SelectedWireFormat 所定義。 假設沒有計劃支援 ST.2084 gamma 與 Rec.709 主要復本,或 2.2 gamma 與 Rec 2020 主要複本,結果是 RS2 版本中只有兩個值由 OS 設定,也就是:

  • D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709,適用於 SDR
  • D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020,適用於 HDR10

OutputWireColorSpace

操作系統也會使用D3DDDI_COLOR_SPACE_TYPE列舉類型來指定 MPO 的輸入色彩空間,因此從 WDDM 2.3 開始已被取代。 WDDM 2.3 和更新版本的驅動程序應該使用新的類型D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE。

SelectedWireFormat

D3DKMDT_WIRE_FORMAT_AND_PREFERENCE值,表示要為路徑設定的連線格式。 [喜好設定] 欄位會保留在此內容中,因此驅動程序應該忽略。 在剩餘的五個位字段中,OS 會設定三十個位的其中一個,以指出應該驅動連結的色彩編碼和位深度。

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,而且當不需要同步處理顯示器且一律與 value DXGK_SYNC_LOCK_STYLE_NONE 的 SyncLockStyle 配對時,此值會設定為 1。

Input.SyncLockStyle

同步鎖定樣式輸入。 從 WDDM 2.4 開始提供。 指出操作系統所要求的同步處理樣式。 若為 WDDM 2.4 - WDDM 2.6 驅動程式,如果已啟用可同步處理的顯示器,則此值會設定為 DXGK_SYNC_LOCK_STYLE_IDENTICAL ,否則DXGK_SYNC_LOCK_STYLE_NONE。

Input.Reserved

此值保留給系統使用。

InputFlags

一組旗標,指定作業系統想要讓驅動程式執行的動作。

Output

Output.RecheckMPO

如果設定,表示 OS 由於此路徑上的變更而需要發出 CheckMPO。

Output.Reserved

此值保留給系統使用。

OutputFlags

TargetState

表示此呼叫的結果為目標狀態。 由於變更計時可能會導致修改的目標和操作系統未打算變更的目標連線狀態,因此此欄位會傳達每個路徑的狀態。

如果目標狀態未變更,此字段應該包含目標上報告的最後一個狀態複本,包括先前報告的相同 ConnectionChangeId。

如果目標狀態已變更,此字段應該包含已排入佇列的連線變更複本,這會反映 SetTiming 呼叫所產生的狀態。

GlitchCause

DXGK_GLITCH_CAUSE值,指出顯示管線中哪些基礎變更 () 造成問題。

GlitchEffect

DXGK_GLITCH_EFFECT值,指出如何向使用者呈現問題。

GlitchDuration

DXGK_GLITCH_DURATION值,指出問題持續時間大約多久。 這是為了反映基礎問題存在的時間長度,但在某些情況下,可見的效果可能較長。 例如,當同步處理遺失的時間夠長,讓監視器必須重新偵測時,顯示裝置可能需要許多畫面才能復原。 這是應該回報的基礎問題長度,而不是復原時間,因為裝置之間會有所不同。

Reserved

此值保留給系統使用。

DiagnosticInfo

驅動程式針對每個路徑填入的資訊集,以描述時間變更的任何副作用。 在許多情況下,問題是不可避免的,因此這些欄位會嘗試瞭解根本原因和用戶影響的程度。

規格需求

需求
標頭 d3dkmddi.h