Laden...

WPF auf der Powerwall?

Erstellt von vbtricks vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.566 Views
vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 15 Jahren
WPF auf der Powerwall?

Salut,

für ein Projekt soll eine Powerwall (=großer Bildschirm aus mehreren kleinen) über WPF oder (managed) Direct3D angesprochen werden. Grundsätzlich präferiere ich die WPF (evtl. verhagelt uns das aber die Performance), nur habe ich im Internet leider nichts zu folgender Frage gefunden:

Unterstützt WPF mehrere GPUs in einem Rechner, d.h. dass z.B. ein Rechner mit zwei Grafikkarten zwei Teilstücke der Powerwall ansteuern könnte?

Danke im Voraus,

Stefan

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo,

also meiner Meinung hat das direkt gar nicht soviel mit WPF zutun. Das System, also wahrscheinlich Windows, muss die X Monitore Ansteuern und Anordnen und indexiert die. Dann kannst du, soweit ich weiß, die MonitorDevices per Nummer auswählen und beschreiben.

Gruß Daniel

D
500 Beiträge seit 2007
vor 15 Jahren

Moin!

Mal ne kurze Zwischenfrage: Hast Du die Hardwareunterstützung denn bei WPF aktiviert? Soweit ich mich erinnern kann gibt es eine Art Rendering Tier, dem ein Wert von 0 bis 2 zugewiesen werden kann (0: keine Hardwareunterstützung, 2: volle Hardwareunterstützung).

Gruß, DaMoe

vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 15 Jahren

Das Problem ist, dass ich noch keinen Zugriff auf das Zielsystem habe und zu Hause habe ich nur eine Grafikkarte im Rechner. Von Rendering Tiers habe ich auch schon gelesen, von mir aus aber nichts geändert. Nachdem die CPU aber bei grafisch aufwändigeren Dingen nicht ausgelastet wird, gehe ich davon aus, dass die GPU mithilft.

In einem Webcast zur PDC 2008 http://channel9.msdn.com/pdc2008/PC46/ wird zum Schluss eine kleine Powerwall gezeigt (drei Apple Cinema-TFTs (WUXGA) an einem Rechner mit zwei Grafikkarten), auf dem mehrere 720p-Videos angezeigt werden. Bloß wie das gemacht wurde (Windows erkennt die Monitore automatisch und die WPF-Anwendung wird wirklich nur über alle drei Monitore maximiert und die Last auf beide Grafikkarten verteilt?), wird leider nicht erwähnt.

K
593 Beiträge seit 2007
vor 15 Jahren

Also soweit wie ich weiß..^^ Ohje na gut... Ist es so das immer die Grafikkarte zum Rendern benutzt wird an die der Monitor angeschlossen wird. Daher passiert das quasi automatisch.

Gruß Daniel

582 Beiträge seit 2008
vor 15 Jahren

Im Webcast "Der entfesselte Client reloaded - Moderne Oberflächen mit WPF planen, gestalten, umsetzen" wird genau gesagt, das ab Tier 1 WPF Graphic beschleunigt wird. Da wird dir auch erzählt, ab wann was beschleunigt wird (Teil 2 ab ZeitIndex 1:14 Std) und es wird auch erzählt das auf DirectX 9 augebaut wird. Also liegt es an X9 wenn mehrere GPU´s unterstütz werden.
Es wird glücklicherweise in den Webcast aus erklärt, wie man das (Hardware-)Tier abfragen kann.

Gruß dat Tala

vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 15 Jahren

Danke für den Link. Zumindest hat mir das ein paar Hinweise gegeben, wo die Performance-Probleme von WPF liegen.

DirectX 9.0 unterstützt in der Tat mehrere GPUs, bloß sagt das über die WPF leider nichts aus, denn die WPF muss keinesfalls den vollen Funktionsumfang von Direct3D nutzen.

Leider habe ich hier keine zweite Grafikkarte, die über Tier 0 herauskäme, sonst hätte ich diese zum Test zusätzlich eingebaut.

582 Beiträge seit 2008
vor 15 Jahren

Und wenn du eine simple Test-appl. auf den entsprechenden Rechner laufen läßt?

Gruß dat Tala

vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 15 Jahren

Da ich mir vor der eigentlichen Entscheidung Direct3D vs. WPF Gedanken mache, habe ich noch keinen Zugriff auf die Zielsysteme. Ich kann nur probieren, meine PCI-Express-Karte (8500GT) in ein Board mit Chipsatzgrafik (7050) einzubauen.

Wie bekomme ich aber raus, wie beschäftigt die beiden GPUs sind (oder in WPF, auf welcher Karte ein Fenster gerendert wird)? Nicht, dass die eine GPU alles rendert und dann z.B. das Resultat einfach auf die andere Graka kopiert und dort angezeigt wird?

Über Temperatur kann ich nicht gehen, da die Chipsatzgrafik keine Temperaturwerte ausgibt. Die Applikation zum "Grillen" hätte ich schon.

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo,

ich bin gerade über einen Artikel gestoßen der vielleicht interressant für dich ist. Da wird mit muli Monitor support für einen ScreenSaver gearbeitet. Link

Gruß Daniel

vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 15 Jahren

Danke für den Artikel. Dabei fällt mir ein, ich habe noch nicht von den Erfahrungen am Wochenende mit WPF auf mehreren GPUs berichtet.

Konfiguration:
NVIDIA 630a Chipsatz/7050 integrierte Graka
NVIDIA 8500GT
Athlon X2 5200+
2GB DDR2
Win XP SP 2, .NET 3.5 SP 1

Meine Testanwendung hatte ein Fenster, dass recht GPU-lastig ist und eines, das eine simple Animation anzeigt (Quadrat wird auf dem Bildschirm verschoben), für den Smooth-Test.

Dann habe ich die Anwendung zwei mal gestartet, bei der einen das aufwändige und bei der anderen die simple Animation geöffnet.

Waren beide Anwendungen auf derselben Grafikkarte, haben beide Fenster geruckelt (egal, auf welcher Grafikkarte). Verschob ich dann das GPU-lastige Fenster auf den Bereich der anderen Grafikkarte, wurde die simple Animation deutlich flüssiger, ruckelte im Vergleich zur Situation, wenn nur das simple Fenster auf dem System lief, aber noch deutlich.

Also richtig entkoppelt waren die separaten Anwendungen nicht. Engpass könnte natürlich noch die CPU gewesen sein, die lief mit beiden Anwendungen aber um die 70% Auslastung, was für die simple Animation noch locker gereicht hätte, sie komplett flüssig anzuzeigen.

Evtl. ist die Situation unter Vista besser, in der MSDN liest es sich an einigen Stellen, dass das neue Treibermodell deutliche Vorteile bringt. Aber wenn ich Vista auf dem Rechner installiert hätte, wäre meine Schwester wenig begeistert gewesen.

Inzwischen hab ich die Konfiguration wieder auseinander gebaut. Es macht denk ich mehr Sinn, das ganze mit zwei richtigen Grakas und einer Testsoftware, die den späteren Anforderungen entspricht, zu testen.

Nichtsdestotrotz hänge ich hier noch den Code meiner Testanwendung an.

Über Verbesserungsvorschläge und Kritik freue ich mich aber weiterhin.