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 仅用于确定应为其编码像素值的初选和伽玛;其他元素:颜色模型、范围和 cositing 应忽略,因为它们由 SelectedWireFormat 定义。 由于没有计划支持具有 Rec.709 初选的 ST.2084 gamma,或者使用 Rec 2020 初选支持 ST.2084 伽玛,结果是 RS2 版本中的 OS 只设置了两个值,即:
- D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709,适用于 SDR
- D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020,适用于 HDR10
OutputWireColorSpace
OS 还使用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 以在路径上空闲监视器,则会清除活动标志,并且 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;如果不需要同步显示,并且应始终与 SyncLockStyle 的值DXGK_SYNC_LOCK_STYLE_NONE配对 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
一组标志,用于指定作系统希望驱动程序执行的作。
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 |