2009-02-16 6 views
6

Ich entwickle eine OpenGL-Anwendung für Windows XP. Der Zielcomputer verfügt über zwei NVIDIA GeForce 9800GT-Grafikkarten, die benötigt werden, da die Anwendung zwei analoge Videostreams ausgeben muss.OpenGL Rendering in Windows XP mit mehreren Grafikkarten

Die Anwendung selbst hat zwei OpenGL-Fenster, eines für jede Grafikkarte. Jede Grafikkarte ist mit einem Monitor verbunden. Der Code basiert auf einem minimal OpenGL example.

Woher weiß ich, ob die Anwendung beide Grafikkarten zum Rendern verwendet?

Im Moment ist es mir egal, ob die Anwendung nur unter Windows XP oder nur mit NVIDIA-Grafikkarten läuft, ich muss nur wissen, wie die beiden funktionieren.

+0

Ich bin mir nicht sicher, ob Sie bereits eine Antwort auf diese Frage haben, und haben Ihnen dennoch einige Hinweise gegeben, die Ihnen helfen könnten. – ralphtheninja

Antwort

4

Ich denke, Sie müssen auf der WGL_nv_gpu_affinity Erweiterung nachlesen. Sie erstellen Affinitätsmasken und verwenden wglMakeCurrent() in Verbindung mit ihnen. Hier sind einige Hinweise:

http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt

Pdf from NVidia.com

Prost!

+1

GPU-Affinität wird auf Geforce nicht unterstützt. Die Optionen sind Linux oder das Erstellen eines Fensters auf jedem angeschlossenen Bildschirm und die Leistungssteigerung, die GPU nicht zu "maskieren". Edit: Oder aktivieren Sie SLI, wenn Ihre Anwendung damit skaliert. Die nVidia-Website enthält eine Dokumentation, welche Art von Workloads mit SLI skaliert werden kann. – eile

1

Ich glaube, Sie können solche Informationen aus dem gDEBugger für OpenGL-basierte Anwendungen gewinnen.

Wenn es sich herausstellt, dass Sie nicht beide Karten verwenden, können Sie Equalizer für paralleles Rendering auschecken, es ist ein großartiges Projekt.