WDDM 1.2 이상에서 원활한 상태 전환 제공
Windows 8부터 부팅 프로세스 중, 낮은 전원 상태에서 전환하는 동안 및 드라이버 업그레이드 또는 시스템 버그 검사에서 운영 체제 제어로 다시 전환하는 동안 화면 깜박임 및 깜박임을 최소화하거나 제거하는 데 도움이 되는 몇 가지 기능이 있습니다. 또한 Windows 8 이상 컴퓨터의 시스템 펌웨어는 전원이 켜진 시점에 통합 디스플레이 패널의 기본 해상도 및 타이밍을 감지하고 이 정보를 운영 체제에 전달해야 합니다. WDDM(Windows Display Driver Model) 1.2 이상 디스플레이 미니포트 드라이버는 이 동작을 지원해야 합니다.
최소 WDDM 버전 | 1.2 |
최소 Windows 버전 | 8 |
드라이버 구현 - 전체 그래픽 및 표시만 | 필수 |
WHCK 요구 사항 및 테스트 | System.Client.Firmware.UEFI.GOP.Display Device.Graphics를 ... PnpStopStartSupport Device.Graphics를 ... DisplayOutputControl |
펌웨어에서 운영 체제로 전환
클라이언트 SKU를 대상으로 하는 모든 Windows 8 시스템은 UEFI(Unified Extensible Firmware Interface) GOP(그래픽 출력 프로토콜)를 지원해야 합니다. 부팅 단계에서 GOP는 시스템의 통합 디스플레이 패널에서 네이티브 타이밍 및 네이티브 해상도를 설정합니다. 운영 체제가 디스플레이의 소유권을 인수할 준비가 되면 GOP는 디스플레이로 스캔하는 데 사용할 수 있는 프레임 버퍼를 해제합니다. 현재 운영 체제는 디스플레이 타이밍 또는 해상도를 다시 설정하려고 시도하지 않고 제공된 프레임 버퍼를 사용하기만 하면 화면 플래시가 하나 제거됩니다.
하드웨어 인증 요구 사항
하드웨어 디바이스가 이 기능을 구현할 때 충족해야 하는 요구 사항에 대한 자세한 내용은 System.Client.Firmware.UEFI.GOP.Display관련 WHCK 설명서 참조하세요.
운영 체제에서 드라이버로 전환
운영 체제가 부팅 후 WDDM 드라이버에 디스플레이 소유권을 부여하면 DxgkDdiStartDevice 함수를 호출하여 디바이스의 PnP(플러그 앤 플레이) 시작을 시작합니다. 대안적으로, 운영 체제는 최대 절전 모드에서 다시 시작한 후 DeviceUid 매개 변수가 DISPLAY_ADAPTER_HW_ID(Video.h에 정의됨)로 설정된 DxgkDdiSetPowerState 함수를 호출하여 디바이스를 시작합니다. 보통 이 순간 WDDM 그래픽 드라이버가 제어하는 동안 화면이 꺼져 검은 화면으로 나타납니다.
드라이버는 DxgkCbAcquirePostDisplayOwnership 함수(Windows 8부터 사용 가능)를 호출하여 운영 체제에서 현재 프레임 버퍼의 정확한 상태와 펌웨어 및 부팅 로더가 설정한 표시 모드를 쿼리할 수 있습니다. 이 함수에 의해 검색된 DXGK_DISPLAY_INFORMATION 구조의 정보를 사용하면 드라이버가 디스플레이 컨트롤러를 활성 상태로 유지하고 모니터를 다시 동기화하지 않을 수 있습니다. 드라이버에는 프레임 버퍼에 대한 자세한 정보도 있으므로 더 원활한 전환을 수행할 수 있습니다.
PnP 시작에 대한 자세한 내용은 WDDM 1.2 이상 PnP(플러그 앤 플레이)에서 제공됩니다.
드라이버에서 운영 체제로 전환
운영 체제는 DxgkDdiStopDevice 함수를 호출하여 디스플레이 디바이스의 PnP 중지를 요청할 수 있습니다. 이때 일반적으로 화면이 비워져(검은색으로 렌더링됨) 운영 체제가 디스플레이 컨트롤을 인수합니다. 운영 체제는 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 함수(Windows 8부터 지원됨)를 호출할 수 있습니다. 이 함수는 WDDM 드라이버가 스캔 아웃을 위해 구성된 프레임 버퍼를 설정하도록 요구합니다. 운영 체제가 디스플레이를 제어하는 동안 이 프레임 버퍼에 렌더링하여 원활한 전환을 수행할 수 있습니다.
추가 시나리오를 포함하여 PnP 중지에 대한 자세한 내용은 WDDM 1.2 이상 PnP(플러그 앤 플레이)에서 제공됩니다.
하드웨어 인증 요구 사항
이 핸드오프에 대한 자세한 내용은 Device.Graphics의 관련 WHCK 설명서 참조하세요. PnpStopStartSupport.
드라이버를 사용하지 않도록 설정하지 않고 운영 체제로 전환
경우에 따라 운영 체제에서 복구할 수 없는 오류가 발생하며 시스템 버그 검사를 실행해야 합니다. 이 경우 운영 체제가 디스플레이를 제어해야 하지만 WDDM 드라이버를 중지할 수 없는 경우가 있습니다. WDDM 1.2 이상 드라이버는 DxgkDdiSystemDisplayEnable 및 DxgkDdiSystemDisplayWrite 함수를 구현해야 합니다. 이를 통해 운영 체제는 고해상도 및 색 깊이에서 그래픽 인터페이스를 유지하면서 오류 화면을 표시할 수 있는 상태로 원활하게 전환할 수 있습니다. 이런 전환은 불쾌한 사용자 경험을 제거합니다.
하드웨어 인증 요구 사항
하드웨어 디바이스가 이 기능을 구현할 때 충족해야 하는 요구 사항에 대한 자세한 내용은 Device.Graphics의 관련 WHCK 설명서 참조하세요. DisplayOutputControl.
windows 8 펌웨어 모드 변경
다음은 펌웨어가 운영 체제에 대한 제어를 해제하기 전에 펌웨어의 디스플레이 모드에 대한 변경 사항입니다.
WDDM 1.2 이상 드라이버 (DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
디스플레이 플래시를 제거하기 위해 Windows 8부터는 WDDM 1.2 이상 드라이버용 펌웨어에서 Int10 모드 변경 요청이 호출되지 않습니다.
또한 모니터가 꺼져 있는 동안 모드 변경이 발생하는 경우 운영 체제는 DxgkDdiCommitVidPn 함수를 한 번만 호출합니다. pCommitVidPnArg 매개 변수를 모니터가 설정된 경우의 값으로 설정하고 pCommitVidPnArgPathPoweredOff 멤버인>Flags true 설정됩니다.
WDDM 1.0 및 1.1 드라이버(DXGKDDI_INTERFACE_VERSION<DXGKDDI_INTERFACE_VERSION_WIN8)
Windows 8에서 실행되는 WDDM 1.0 및 1.1 버전의 드라이버는 부팅 프로세스 중이나 최대 절전 모드에서 다시 시작될 때, 디스플레이 해상도를 모니터의 기본 고해상도로 설정하기 위해 Int10 VGA 모드 0x12 호출이 이루어집니다. Windows 8 이전에는 Int10 VGA 모드 0x12 호출을 통해 디스플레이 해상도를 픽셀당 16비트(깜박이는 커서 없이 640 x 480 픽셀)로 설정하여 운영 체제 시작 화면 이미지를 표시했습니다.
그러나 고해상도 모드를 지원하지 않음을 나타내는 WDDM 버전 1.0 및 1.1 드라이버의 경우 Windows 8부터 VGA 모드로 부팅하는 0x12 디스플레이 해상도를 픽셀당 16비트에서 640 x 480 픽셀로 설정하고 깜박이는 커서가 없습니다. 시스템이 최대 절전 모드에서 다시 시작되면 디스플레이 해상도는 여전히 모니터의 기본 고해상도로 설정됩니다.
또한 모니터가 꺼져 있는 동안 모드 변경이 발생하는 경우 운영 체제는 WDDM 1.2 드라이버에 대해 위에서 설명한 대로 DxgkDdiCommitVidPn 함수를 호출합니다. 또한 pCommitVidPnArg빈 비디오 프레젠테이션 네트워크(VidPN)가 있는 초 시간을 DxgkDdiCommitVidPn을 호출합니다.>hFunctionalVidPn 및 pCommitVidPnArg설정된 플래그 값이 없습니다. 플래그>.
이 두 부분으로 구성된 호출 시퀀스는 최대 절전 모드에서 해제된 후에도 모니터 동기화 생성을 활성 상태로 유지하면서 시스템이 다시 시작될 때 발생합니다. 이 경우 드라이버는DxgkDdiCommitVidPn에 대한 두 번째 호출을 수신할 때 아무 작업도 수행하지 않아야 합니다.