2011-09-01 4 views
1

Windows XP (64 비트)에서는 GPU가 다른 여러 그래픽 카드 (예 : 2 개의 NVIDIA)에 연결된 2 개의 화면에 OpenGL로 렌더링하는 것이 불가능한 것처럼 보입니다 다른 세대의). 이 경우 렌더링은 화면 중 하나에서만 작동한다는 것입니다. 반면에 Direct3D를 사용하면 문제없이 작동하여 두 화면 모두에서 렌더링됩니다. 아무도 왜 이것을 알 수 있습니까? 아니면 OpenGL을 사용하여 두 화면 모두에서 렌더링하는 방법이 있습니까?Windows XP에서 완벽한 다중 GPU 구성으로 완벽한 멀티 스크린 OpenGL 렌더링

다른 브랜드 (예 : AMD 및 Intel)의 GPU를 사용하는 경우에도 Windows 7 렌더링이 두 화면에서 모두 작동한다는 것을 발견했습니다. Direct3D 작곡가의 최상위에서 실행되는 디스플레이 모델 때문일 수도 있습니다. 이건 단지 양복 일 뿐이니까, 나는 그것이 실제 이유인지 정말로 모른다.

Direct3D가 해결책이라면 OpenGL을 사용하여 모든 렌더링을 텍스처에 적용한 다음 Direct3D로이 텍스처를 렌더링하는 것이 좋습니다. 너무 느리지는 않습니다.

답변

1

Windows 7에서는 한 GPU 또는 동일한 유형의 GPU가 결합되어 이미지를 오프 스크린 버퍼로 렌더링 한 다음 화면에 합성합니다. 그러나 서로 다른 제작 방식의 GPU를 통해 단일 컨텍스트의 렌더링을 배포하는 것은 (아직) 불가능합니다. 표준화 된 통신 및 동기화 인프라가 필요합니다. 단순히 인프라가없는 것은 아닙니다. OpenGL이나 Direct3D는 그렇게 할 수 없습니다.

할 수있는 일은 렌더링 결과를 여러 GPU의 화면 프레임 버퍼에 복사하는 것입니다. Windows 7과 DirectX는이 내장 기능을 지원합니다. OpenGL을 사용하면 좀 더 복잡해집니다. 기술적으로는 오프 스크린 장치 컨텍스트 (보통 PBuffer)로 렌더링됩니다. 렌더링이 끝나면 GDI 함수를 사용하여 결과를 윈도우에 복사합니다. 이 마지막 복사 단계는 나머지 OpenGL 작업과 비교하여 매우 느립니다.

0

NVIDIA와 AMD 모두 어떤 GPU를 사용할 것인지 선택할 수있는 방법이 있습니다. NVIDIA는 WGL_NV_gpu_affinity이고 AMD는 WGL_AMD_gpu_association입니다. 그것들은 모두 다르게 작동하므로 필요한 하드웨어를 얻기 위해 다른 하드웨어에서 다른 작업을 수행해야합니다.

+0

나는이 확장 기능을 알고 있지만, 당신이 말했듯이 그들의 목적은 어떤 GPU를 사용할 것인지를 선택하는 것입니다.이 질문은 제가 다른 질문에서 물었습니다. 내가 바라는 것은 GPU가 다를 때 두 화면에서 렌더링을 얻는 방법입니다. 렌더러가 무엇인지 신경 쓰지 않아도됩니다 (현재). – Woundorf