DXGK_DIAGNOSTIC_PSR 结构 (dispmprt.h)

诊断指示通过 DXGK_DIAGNOSTIC_HEADER 结构中 TargetId 字段中的目标连接的面板已进入或退出面板自刷新 (PSR) 状态。

语法

typedef struct _DXGK_DIAGNOSTIC_PSR {
  DXGK_DIAGNOSTIC_HEADER Header;
  union {
    DXGK_DIAGNOSTIC_PSR_REFRESH_REASON RefreshReason;
    UINT                               Value;
  };
} DXGK_DIAGNOSTIC_PSR;

成员

Header

一个DXGK_DIAGNOSTIC_HEADER结构,指示要报告的诊断类型。

RefreshReason

一组 DXGK_DIAGNOSTIC_PSR_REFRESH_REASON 位字段,指示退出 PSR 的原因,如果未设置,则指示目标正在进入 PSR。

Value

PSR 的值。

注解

当面板进入自我刷新时,驱动程序应发送此诊断,且未在 RefreshReason 字段中设置任何位字段。

当面板需要退出自刷新以更新内容时,驱动程序应使用 RefreshReason 中的至少一个位字段发送此诊断,指示退出 PSR () 的原因。 如果多个因素导致 PSR 退出,驱动程序应尝试设置所有适当的位字段原因。 但是,如果原因不是退出 PSR 的触发器,则不应设置标志,而不是捕获触发退出的所有原因。 这是因为,一旦退出 PSR,驱动程序就不应随后报告 PSR 本来会退出的其他原因,因此,只要至少提供了一个原因,在报告下是有效的。

如果面板和驱动程序支持 PSR2,其中更新不需要将完整帧发送到面板以刷新较小部分,则退出 PSR 时仍应向 OS 报告此类更新。 例如,如果显示器位于 PSR 中,并且光标形状在未进行任何其他更新的情况下发生更改,则驱动程序应能够发送全帧像素的一小部分,可能只有包含光标的线条。 在这种情况下,驱动程序仍应报告 PSR 已退出,原因为 CursorUpdate。 在更高版本中,可以添加额外的诊断字段来区分部分更新和完整更新。

要求

要求
Header dispmprt.h