DXGK_FLIPCAPS 구조체(d3dkmddi.h)
DXGK_FLIPCAPS 구조체는 DxgkDdiQueryAdapterInfo 함수 호출을 통해 드라이버가 제공하는 디스플레이 미니포트 드라이버의 대칭 이동 기능을 식별합니다.
구문
typedef struct _DXGK_FLIPCAPS {
union {
struct {
UINT FlipOnVSyncWithNoWait : 1;
UINT FlipOnVSyncMmIo : 1;
UINT FlipInterval : 1;
UINT FlipImmediateMmIo : 1;
UINT FlipIndependent : 1;
UINT DdiPresentForIFlip : 1;
UINT FlipImmediateOnHSync : 1;
#if ...
UINT Reserved : 25;
#elif
UINT Reserved : 27;
#else
UINT Reserved : 28;
#endif
};
UINT Value;
};
} DXGK_FLIPCAPS;
구성원
FlipOnVSyncWithNoWait
드라이버가 세로 동기화가 발생할 때까지 그래픽 파이프라인이 중단되지 않고 다음 세로 추적 기간(세로 동기화)에 적용되는 대칭 이동 명령 예약을 지원하는지 여부를 지정하는 UINT 값입니다. 즉, 그래픽 파이프라인은 드라이버가 대칭 이동 표면의 실제 주소를 하드웨어의 대칭 이동 보류 레지스터에 쓴 직후에 진행해야 합니다. 대부분의 하드웨어는 하나의 대칭 이동 보류 레지스터 깊이를 사용하지만 하드웨어에서 둘 이상의 대칭 이동 보류 레지스터를 사용하는 경우 드라이버는 DXGK_DRIVERCAPS 구조체의 MaxQueuedFlipOnVSync 멤버에 숫자를 지정해야 합니다.
FlipOnVSyncWithNoWait가 1(TRUE)로 설정된 경우 드라이버는 이 메커니즘을 지원합니다. FlipOnVSyncWithNoWait가 0(FALSE)으로 설정된 경우 드라이버는 이 메커니즘을 지원하지 않습니다. 즉, 그래픽 파이프라인은 다음 세로 동기화에 적용하기 위해 대칭 이동 명령 예약 후 다음 세로 동기화가 발생할 때까지 기다려야 합니다.
이 멤버를 설정하는 것은 32비트 값 멤버(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.
FlipOnVSyncMmIo
드라이버가 다음 세로 동기화에 적용되는 MMIO(메모리 매핑 I/O) 기반 대칭 이동을 지원하는지 여부를 지정하는 UINT 값입니다. 이러한 유형의 대칭 이동이 지원되도록 디스플레이 미니포트 드라이버는 다음 작업을 지원해야 합니다.
- DxgkDdiPresent 함수에 대한 호출을 전달할 DMA 버퍼의 생성이 없습니다(즉, NULL이 DXGKARG_PRESENT 구조체의 pDmaBuffer 멤버에 전달됨).
- DIRQL(디바이스 인터럽트 요청 수준)에서 DxgkDdiSetVidPnSourceAddress 함수에 대한 호출을 대칭 이동합니다. DxgkDdiSetVidPnSourceAddress 호출에서 드라이버는 DAC(디지털-아날로그 변환기)를 프로그래밍하고 DXGKARG_SETVIDPNSOURCEADDRESS 구조체의 PrimaryAddress 멤버에 있는 값을 사용하여 검사를 시작해야 합니다. 수직 동기화 후 드라이버는 DXGKARGCB_NOTIFY_INTERRUPT_DATA 구조체의 InterruptType 멤버에 설정된 DXGK_INTERRUPT_CRTC_VSYNC 값으로 DxgkCbNotifyInterrupt 함수를 호출하여 유효한 검사 주소를 보고하도록 GPU 스케줄러에 알려야 합니다. 그런 다음 드라이버는 DxgkCbNotifyDpc 함수를 호출하여 대부분의 검사 아웃 처리를 수행해야 합니다.
FlipInterval
드라이버가 2, 3 또는 4개의 세로 동기화가 발생한 후에 적용되도록 대칭 이동 명령의 예약을 지원하는지 여부를 지정하는 UINT 값입니다. 드라이버가 두 개 이상의 대칭 이동 간격을 지원하는지 여부에 관계없이 드라이버는 즉시 대칭 이동 및 1의 대칭 이동 간격을 지원해야 합니다.
이 멤버를 설정하는 것은 32비트 값 멤버(0x00000004)의 세 번째 비트를 설정하는 것과 같습니다.
FlipImmediateMmIo
드라이버가 MMIO(메모리 매핑 I/O) 기반 즉시 대칭 이동을 지원하는지 여부를 지정하는 UINT 값입니다. 이 유형의 대칭 이동은 다음 세로 동기화가 발생할 때까지 기다리지 않고 드라이버의 DxgkDdiSetVidPnSourceAddress 함수를 호출한 직후에 적용됩니다.
이 멤버를 설정하는 것은 32비트 값 멤버(0x00000008)의 네 번째 비트를 설정하는 것과 같습니다.
Windows 7부터 지원합니다.
FlipIndependent
드라이버에서 독립적인 대칭 이동이 지원되는지 여부를 지정하는 UINT 값입니다. WDDM 1.3 이상 드라이버는 이 멤버를 1로 설정해야 합니다.
독립 대칭 이동에서 운영 체제는 DWM(데스크톱 창 관리자) 사용자 모드 프레젠테이션 호출을 바이패스하려고 시도하고 직접 대칭 이동 및 다중 평면 오버레이 프레젠테이션 모델에서 DxgkDdiPresent 및 DxgkDdiSetVidPnSourceAddress를 호출하여 애플리케이션 백 버퍼로 전환합니다.
FlipIndependent가 설정된 경우에도 DWM 사용자 모드가 호출되는 경우가 있습니다. 드라이버는 여전히 이러한 경우를 처리해야 합니다.
이 멤버를 설정하는 것은 32비트 값 멤버(0x00000010)의 다섯 번째 비트를 설정하는 것과 같습니다.
Windows 8.1 시작 지원.
DdiPresentForIFlip
FlipImmediateOnHSync
Reserved
이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 값 멤버의 나머지 27비트(0xFFFFFFE0)를 0으로 설정하는 것과 같습니다.
이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 Value 멤버의 나머지 28비트(0xFFFFFFF0)를 0으로 설정하는 것과 같습니다.
Value
대칭 이동 기능을 식별하는 32비트 값을 보유할 수 있는 DXGK_FLIPCAPS 포함된 공용 구조체의 멤버입니다.
요구 사항
| 지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
| 헤더 | d3dkmddi.h(D3dkmddi.h 포함) |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기