크기 조정 가능한 BAR에 대한 시스템 및 드라이버 지원

GPU(불연속 그래픽 처리 장치)는 일반적으로 PCI 버스에 노출되는 프레임 버퍼의 작은 부분만 포함합니다. 32비트 운영 체제와의 호환성을 위해 불연속 GPU는 일반적으로 프레임 버퍼에 대해 256MB I/O 영역을 주장합니다. 이 값은 일반적인 펌웨어에서 구성에 사용됩니다.

크기 조정 가능한 BAR(기본 주소 레지스터)를 지원하는 GPU에서 Windows는 WDDM(Windows 디스플레이 드라이버 모델) v2 이상에서 펌웨어 초기화 후 GPU의 BAR 크기를 재협상합니다. 크기 조정 가능한 BAR에 대한 자세한 내용은 PCI SIG 사양 라이브러리의 크기 조정 가능한 BAR 기능 사양을 참조하세요.

크기 조정 가능한 BAR를 지원하는 GPU는 BAR의 다시 프로그래밍 프로세스 중에 디스플레이가 정적 이미지를 계속 표시하도록 해야 합니다. 이 프로세스 중에는 디스플레이가 비워지거나 깜박이면 안 됩니다. 펌웨어 표시 이미지, 부팅 로더 이미지 및 커널 모드 드라이버에서 생성된 첫 번째 이미지 간에 원활하게 전환해야 합니다. 재협상이 진행되는 동안 GPU에 대한 PCI 트랜잭션이 발생하지 않습니다.

재협상은 커널 모드 드라이버에 거의 보이지 않습니다. 재협상에 성공하면 커널 모드 드라이버는 GPU BAR의 크기를 최대 크기로 조정하여 불연속 GPU의 전체 VRAM을 노출하는 것을 관찰합니다.

크기 조정에 성공하면 커널 모드 드라이버는 단일 CPUVisible 메모리 세그먼트를 비디오 메모리 관리자에 노출해야 합니다. 비디오 메모리 관리자는 CPU가 메모리 세그먼트의 콘텐츠에 액세스해야 하는 경우 CPU 가상 주소를 이 범위에 직접 매핑합니다. 자세한 내용은 DXGK_SEGMENTFLAGS 구조 - CPUVisible 멤버를 참조하세요.