다음을 통해 공유


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는 픽셀 값을 인코딩해야 하는 기본 및 감마를 결정하는 데만 사용됩니다. 다른 요소: 색 모델, 범위 및 cositing은 SelectedWireFormat에 의해 정의되므로 무시해야 합니다. Rec.709 기본 복제본이 있는 ST.2084 감마 또는 Rec 2020 주 복제본이 있는 2.2 감마를 지원할 계획이 없다는 점을 감안할 때, RS2 릴리스의 OS에서 다음 두 값만 설정됩니다.

  • SDR의 경우 D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
  • HDR10의 경우 D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020

OutputWireColorSpace

D3DDDI_COLOR_SPACE_TYPE 열거형 형식은 OS에서 MPO의 입력 색 공간을 지정하는 데도 사용되므로 WDDM 2.3부터 사용되지 않습니다. WDDM 2.3 이상 드라이버는 새 형식 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE 사용해야 합니다.

SelectedWireFormat

경로에 대해 설정할 와이어 형식을 나타내는 D3DKMDT_WIRE_FORMAT_AND_PREFERENCE 값입니다. 기본 설정 필드는 이 컨텍스트에서 예약되어 있으므로 드라이버에서 무시해야 합니다. 나머지 5비트 필드에서 OS는 30비트 중 하나를 설정하여 링크를 구동해야 하는 색 인코딩 및 비트 깊이를 나타냅니다.

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

설정된 경우 는 드라이버가 이전 드라이버에서 구성한 타이밍과 콘텐츠를 유지해야 했음을 나타냅니다. 이 플래그는 어댑터가 드라이버의 현재 instance 이외의 다른 항목으로 구성된 경우에만 사용됩니다. 처음에는 부팅하는 동안 펌웨어에서 경로를 초기화할 때 사용됩니다. 명확한 경우 특별한 동작이 요청되지 않습니다.

Input.SyncLockGroup

잠금 그룹 입력을 동기화합니다. WDDM 2.4부터 사용할 수 있습니다. 각 경로가 속한 동기화된 표시 그룹을 나타냅니다. WDDM 2.4 - WDDM 2.6은 어댑터당 단일 동기화 그룹만 지원하고 가능한 경우 항상 동기화를 사용하도록 설정하므로 이 값은 동기화 가능한 디스플레이가 활성화될 때 1로 설정되고, 디스플레이를 동기화할 필요가 없으며 항상 DXGK_SYNC_LOCK_STYLE_NONE 값의 SyncLockStyle 과 페어링해야 하는 경우 0으로 설정됩니다.

Input.SyncLockStyle

잠금 스타일 입력을 동기화합니다. WDDM 2.4부터 사용할 수 있습니다. OS에서 요청하는 동기화 스타일을 나타냅니다. WDDM 2.4 - WDDM 2.6 드라이버의 경우 동기화 가능 디스플레이를 사용하도록 설정하고 그렇지 않으면 DXGK_SYNC_LOCK_STYLE_NONE 경우 이 값은 DXGK_SYNC_LOCK_STYLE_IDENTICAL 설정됩니다.

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