windows - 엔진 - 그래픽 장치 인터페이스




GDI가 가속화되었습니다. 이 일이 언제 알 수 있습니까? (4)

GDI는 그래픽 장치 드라이버에서 다양한 기능을 호출하여 작동합니다. 모든 드라이버 구현 해야하는 핵심 기능 집합이 있습니다. 다른 기능들은 운전자에 의해 구현 될 수있다. 그렇지 않은 경우 GDI는 이러한 기능을 자체적으로 수행합니다.

특정 기능이 하드웨어에 구현되어 있지 않으면 드라이버에서 GDI가 더 나은 작업을 수행 할 수 있기 때문에 해당 기능의 소프트웨어 구현을 수행 할 필요가 없습니다. GDI는 성능을 위해 매우 잘 최적화되어 있습니다.

더 많은 기능이 하드웨어로 구현됨에 따라 이러한 기능이 훨씬 뛰어나다는 것뿐만 아니라 GDI가 수행하는 작업이 적어 그래픽에 소비되는 CPU 시간이 줄어 들었습니다.

그래픽 카드 공급 업체가 카드를 빨리 출시하기 위해 카드가 수행 할 수있는 모든 가능한 하드웨어 기능을 구현하지 않았을 수도 있습니다. 그 드라이버의 최신 버전은 그 기능을 구현할 수있어 성능이 향상됩니다.

이 질문의 배경을 스케치하려면 : 직장에서 우리는 Dell Precision 워크 스테이션을 사용합니다. 현재 현재 NVidia Quadro FX1700이 있습니다. 우리 팀은 실시간 데이터 수집 시스템을위한 그래픽 구성 요소를 개발하고 있습니다. 그래서 우리는 항상 그래픽 작업이 너무 많은 CPU 시간을 소비하지 않는지 알아보기 위해 노력하고 있습니다. 신속한 점검을 위해 우리는 몇 가지 테스트 프로그램을 실행하여 지정된 속도 (예 : 10fps)로 화면을 그려 일반 CPU를 사용하는 곳을보기 위해 평범한 이전 작업 관리자를 사용합니다. 이러한 프로그램 중 하나는 GDI DrawRectangle 호출에 채워집니다. 이 프로그램은 항상 약 40 %의 CPU 사용자 시간을 소비하지만, 약 1 년 정도 (여기서 추측)부터 약 2-3 %의 커널 시간 만 사용합니다. 그래서 분명히 하드웨어 가속이 진행되고 있습니다. 그리고 실제로, HW 승인을 해제하면 원래 40 % 사용자 시간으로 돌아갑니다. 이 모든 것은 물론 좋은 소식입니다. 왜냐하면 우리가 이미 OpenGL에 가려고 생각했기 때문입니다. GDI는 해마다 하드웨어 가속의 이점을 얻지 못했습니다. 그 전까지는.

아무도 이것에 대해 더 많은 것을 아는가? Microsoft가이 작업을 수행 했습니까? 또는 gfx 카드 벤더가 특정입니까?

편집하다

대답에 대한 Thnx (Ferrucio, Torlack 및 Rob Walker)하지만 아직 내 질문에 답변하지 않았습니다. 여기서 채워진 직사각형에 대해 이야기하고 있습니다. 아마도 가장 단순한 함수로 최적화 할 수 있습니다. GPU에 몇 가지 좌표를 보내고 찢어 버리십시오. 그러나 그것은 항상 CPU 측에서 구현되었습니다. 지금까지 답변을 통해 NVidia가 마침내 10 년 넘게 빛을 보았고 GDI를 가속화했다고 믿게되었습니다. 그리고 이것에 대한 발표가 없습니까? 이것에 대한 정보는 전혀 없습니다. 내 고객은 그래픽의 속도 향상에 대해 묻습니다. 내가 말할 수있는 것은 "잘 됐네요."입니다.

편집 2

다른 답변에 따라 운전자가 관련이있는 것처럼 보입니다. 따라서 NVidia는 수년 동안 워크 스테이션 카드 용의 진부한 GDI 드라이버를 만들었습니다. 이 회사에서 GDI가 가속화되지 않았고 모든 테스트에서이를 확인한 사실은 사실 인정되었습니다.



많은 양의 2D 기능이 한동안 가속화되었으며, 새로운 주요 윈도우 버전이 디스플레이 드라이버의 작동 방식을 바꿔 놓았습니다. 윈도우 XP에서 윈도우 관리자 레이어를 개선 한 것은 XP와 같았습니다. XP는 이전 버전보다 Windows 2000 / NT와 더 유사하기 때문에 비교하기가 어렵습니다.

위키피디아에 대한 더 많은 정보, Windows XP의 개발 .

Windows 2000은 확실히 DirectX를 포함하는 최초의 NT 커널 기반 창이었으며 그래픽 향상도있었습니다. Windows 2000 (위키피디아)

나는 릴리스 간 디스플레이 드라이버 모델 / 2D 서브 시스템에 큰 변화가 있었다고 생각하지 않는다. 만약 당신이 그런 변화를 봤다면 그것은 아마도 nVidia가 한 일 때문일 것입니다.


GDI는 꽤 오래 가속화되었습니다. 필자가 기억 하듯이 어느 정도는 하드웨어와 드라이버에 달려 있습니다. 왜 최근에야 성능에있어서 그런 점프를 보았을까요?

그러나 GDI 하드웨어 가속은 Vista에서 더 이상 지원되지 않습니다. 새 데스크톱 구성 엔진이이를 지원하지 않습니다. 그러나 Vista에서는 응용 프로그램에서 내용을 다시 그릴 필요가 없기 때문에 Windows를 빨리 가져올 수 있습니다 (그리고 생각 나는 것 같은 눈물도 없습니다).





gdi