DXGK_SET_TIMING_PATH_INFO 구조체(d3dkmddi.h)

SetTiming 경로를 수정하기 위한 정보를 보관할 구조입니다.

구문

typedef struct _DXGK_SET_TIMING_PATH_INFO {
  D3DDDI_VIDEO_PRESENT_TARGET_ID     VidPnTargetId;
  D3DDDI_COLOR_SPACE_TYPE            OutputColorSpace;
  D3DKMDT_WIRE_FORMAT_AND_PREFERENCE SelectedWireFormat;
  union {
    struct {
      DXGK_PATH_UPDATE VidPnPathUpdates  :2;
      UINT             Active  :1;
      UINT             IgnoreConnectivity  :1;
      UINT             PreserveInherited  :1;
      UINT             Reserved  :27;
    } 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, *PDXGK_SET_TIMING_PATH_INFO;

구성원

VidPnTargetId

디스플레이 어댑터의 비디오 현재 대상 식별자입니다.

다음 멤버는 공용 구조체에 포함됩니다.

OutputColorSpace

전송된 픽셀에 대한 출력 색 공간을 설명하는 D3DDDI_COLOR_SPACE_TYPE 값입니다. 드라이버는 디스플레이 디바이스가 이 색 공간에 대해 픽셀을 올바르게 해석하도록 설정되어 있는지 확인하기 위해 적절한 메타데이터를 전송해야 합니다.

출력 색 영역은 다른 SetTiming 호출에 의해 수정될 때까지 수정됩니다. 이 대상에 표시되는 스왑 체인에 설정된 색 영역이 출력 색 영역과 다른 경우 드라이버는 검색하는 동안 출력 색 영역으로 변환해야 합니다.

대상에서 여러 픽셀 평면을 사용하는 경우 드라이버는 유효한 컴퍼지션 색 영역에서 평면의 컴퍼지션을 수행해야 하며, 일반적으로 구성된 픽셀을 출력 색 영역으로 변환하는 것 외에도 선형 공간입니다.

SelectedWireFormat은 이미 색 인코딩 및 크로마 하위 샘플링을 나타내므로 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부터는 더 이상 사용되지 않습니다. WDDM2.3 이상 드라이버는 새 형식 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE 사용해야 합니다.

OutputColorSpace

OutputWireColorSpace

SelectedWireFormat

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

입력

다음 멤버는 입력 공용 구조체에 포함됩니다.

VidPnPathUpdates

이전의 성공적인 호출 이후 이 경로에 해당하는 VidPn 요소가 어떻게 변경되었는지 설명합니다.

DXGK_SET_TIMING_PATH_INFO 구조의 필드는 이 요약에서 제외되므로 드라이버는 항상 변경 내용에 대해 이러한 필드를 평가해야 합니다. 예를 들어 OS가 SetTimings를 호출하여 경로에서 모니터를 유휴 상태로 설정하면 활성 플래그가 지워지고 VidPnPathUpdates가 DXGK_PATH_UPDATE_UNMODIFIED 설정됩니다. 그런 다음 SetTimings를 호출하여 모니터 전원을 켜면 활성 플래그가 설정되고 VidPnPathUpdates는 여전히 DXGK_PATH_UPDATE_UNMODIFIED 설정됩니다.

활성

설정된 경우 경로가 활성화되거나 활성 상태로 유지되어야 했음을 나타냅니다. 지우면 경로가 비활성화되거나 비활성 상태로 유지되어야 했음을 나타냅니다.

IgnoreConnectivity

설정된 경우 디스플레이 디바이스가 검색되지 않았더라도 드라이버가 대상에 출력을 강제로 적용해야 했음을 나타냅니다. 지우면 연결이 변경된 경우 드라이버에서 업데이트된 ConnectionStatus를 보고해야 합니다.

PreserveInherited

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

SyncLockGroup

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

SyncLockStyle

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

예약됨

이 값은 시스템 사용을 위해 예약되어 있습니다.

InputFlags

OS가 드라이버에서 수행할 작업을 지정하는 플래그 집합입니다.

출력

다음 멤버는 출력 공용 구조체에 포함됩니다.

RecheckMPO

설정된 경우 OS가 이 경로의 변경으로 인해 CheckMPO를 발급해야 했음을 나타냅니다.

예약됨

이 값은 시스템 사용을 위해 예약되어 있습니다.

OutputFlags

OS에서 이 경로와 관련하여 알고 있어야 하는 결과를 지정하는 플래그 집합입니다.

Input

Input.VidPnPathUpdates

Input.Active

Input.IgnoreConnectivity

Input.PreserveInherited

Input.SyncLockGroup

Input.SyncLockStyle

Input.Reserved

InputFlags

Output

Output.RecheckMPO

Output.Reserved

OutputFlags

TargetState

이 호출의 결과로 대상 상태를 나타냅니다. 타이밍을 변경하면 OS가 변경하지 않으려는 수정된 대상과 대상의 연결 상태가 모두 발생할 수 있으므로 이 필드는 각 경로의 상태를 전달합니다.

대상 상태가 변경되지 않은 경우 이 필드에는 이전에 보고된 것과 동일한 ConnectionChangeId를 포함하여 대상에 보고된 마지막 상태의 복사본이 포함되어야 합니다.

대상 상태가 변경되면 이 필드에는 SetTiming 호출로 인한 상태를 반영하는 큐에 대기 중인 연결 변경의 복사본이 포함되어야 합니다.

다음 멤버는 공용 구조체에 포함됩니다.

글리치카우스

디스플레이 파이프라인의 기본 변경으로 인해 결함이 발생했음을 나타내는 DXGK_GLITCH_CAUSE 값입니다.

GlitchEffect

사용자에게 결함이 표시되는 방법을 나타내는 DXGK_GLITCH_EFFECT 값입니다.

GlitchDuration

결함의 지속 기간을 대략적으로 나타내는 DXGK_GLITCH_DURATION 값입니다.

참고 이는 기본 문제가 발생한 기간을 반영하기 위한 것이지만, 경우에 따라 눈에 보이는 효과가 더 길어질 수 있습니다. 예를 들어 모니터가 다시 검색해야 할 만큼 동기화가 오래 손실되면 디스플레이 디바이스가 복구하는 데 많은 프레임이 소요될 수 있습니다. 디바이스마다 다르므로 복구 시간이 아니라 보고해야 하는 기본 문제의 길이입니다.

예약됨

이 값은 시스템 사용을 위해 예약되어 있습니다.

DiagnosticInfo

타이밍 변경의 부작용을 설명하기 위해 드라이버가 각 경로에 대해 입력한 정보 집합입니다. 대부분의 경우 결함이 불가피하므로 이러한 필드는 근본 원인과 사용자 영향의 정도를 이해하려고 시도합니다.

GlitchCause

GlitchEffect

GlitchDuration

Reserved

DiagnosticInfo

요구 사항

   
헤더 d3dkmddi.h