프레임 버퍼 및 하드웨어 레지스터 액세스
디스플레이 드라이버 크기를 줄이는 방법에는 여러 가지가 있습니다. 예를 들어 디스플레이 드라이버가 GDI보다 더 빠르게 수행할 수 있는 함수만 구현한 다음 GDI를 지정하여 다른 모든 작업을 수행할 수 있습니다. GDI는 드라이버의 크기를 줄이기 위해 선형 프레임 버퍼 에 상당한 양의 그리기를 수행하는 경우가 많습니다. GDI 는 뱅크된 메모리에 직접 액세스할 수 없습니다. 따라서 프레임 버퍼를 선형으로 주소 지정할 수 없는 경우 디스플레이 드라이버는 프레임 버퍼를 일련의 뱅크 로 나누고 GDI가 해당 은행에 그리기 작업을 수행할 수 있는 수단을 제공해야 합니다. 자세한 내용은 뱅크드 프레임 버퍼 지원을 참조하세요 .
디스플레이 드라이버는 I/O 매핑 및 메모리 매핑된 비디오 레지스터에 직접 액세스할 수 있습니다. 이 액세스를 통해 디스플레이 드라이버가 고성능을 달성할 수 있습니다. 예를 들어 드라이버는 비디오 하드웨어 레지스터에 액세스하여 높은 처리량으로 라인 그리기 명령을 보내야 할 수 있습니다.
마찬가지로, S3과 같은 그래픽 카드의 경우 그래픽 엔진 코드에서 가장 안쪽에 있는 많은 루프에는 여러 비디오 컨트롤러 포트(예: 그래픽 모드의 텍스트 출력, 비트 블록 전송 및 선 그리기)의 읽기 및 쓰기가 필요합니다. 디스플레이 드라이버가 각 요청에 대해 미니포트 드라이버에 IOCTL을 보내도록 요구하는 대신 디스플레이 드라이버는 비디오 하드웨어에 직접 액세스할 수 있습니다.