2009-08-12 8 views
1

Ich sehe sehr schlechte Leistung bei der Verwendung der verwalteten DirectDraw Wrapper für WindowsMobile.Leistung von DirectX und der letzten Version von Windows Mobile

Microsoft.WindowsMobile.DirectX.Direct3D

ich wäre der größte Flaschenhals ruft Device.Present() angezeigt, nachdem die Szene aufzubauen.

Bei Verwendung der System.Diagnostics.Stopwatch und diese sehr trivial exmaple laufen Using Sprites on MSDN

Ich sehe es etwa 150 ms unter die Device.Present() -Methode aufrufen.

Ich sehe auf meinem AT & T Tilt und auf dem Emulator.

In größeren Anwendungen wie die Probe UltimateGMan es über eine zweite Aufnahme zum Aufrufen dieser Methode.

Hat jemand Erfahrung mit DirectX auf mobilen Geräten? Was vermisse ich? Ich würde es vorziehen, in der verwalteten Welt zu bleiben, aber wenn ich zurück in C++ komme, würde ich bessere Leistung sehen?

Antwort

2

AFAIK gibt es ein Problem mit dem HTC TTYN II (AKA AT & T Tilt). Es hat keine Hardware 3D Treiber (was es auch sollte). könnte die Ursache für Ihre Probleme sein.

This Website impliziert Leistung ziemlich Müll am Telefon ist.

+0

Oh mein Gott! Das wusste ich nie über den Tilt. – Kevin

1

Nach diesem Link

http://j2i.net/blogs/home/archive/2009/07/18/identifying-your-direct3d-driver.aspx

Sie können die Art der Direct3D-Treiber auf Ihrem Gerät mit dem folgenden Code ermitteln:

AdapterListCollection al = Manager.Adapters; 
string driver = al.Default.Information.DriverName.ToString(); 

Joel Ivory Johnson schreibt:

Wenn Sie diesen Code ausführen, wollen Sie die eine Sache wa tch out für ist ein Treiber namens "d3dmref.dll". Wenn Sie diese Fahrer dann das bedeutet, dass Sie OEM nicht erstellen/einen Treiber für Ihre Gerät lizenzieren und die Grafiken in Sekunden pro Frame übertragen wird.