我在使用WindowsMobile的托管DirectDraw包装器时看到的性能非常差。
Microsoft.WindowsMobile.DirectX.Direct3D程序
在构建场景之后,我会看到最大的瓶颈是调用Device.Present()。
使用System.Diagnostics.Stopwatch并运行这个非常简单的例子 Using Sprites on MSDN
我发现调用Device.Present()方法需要大约150ms。
我在AT& T Tilt和模拟器上看到了这个。
在较大的应用程序(例如UltimateGMan示例)中,它会花费一秒钟来调用此方法。
有没有人有在移动设备上使用DirectX的经验?我错过了什么?我宁愿留在托管世界,但如果我回到C ++,我会看到更好的表现吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
根据此链接
http://j2i.net/blogs/home/archive/2009/07/18/identifying-your-direct3d-driver.aspx
您可以使用以下代码确定设备上Direct3D驱动程序的类型:
AdapterListCollection al = Manager.Adapters;
string driver = al.Default.Information.DriverName.ToString();
Joel Ivory Johnson写道:
如果您运行此代码,那就是您的一件事 想要小心是一个司机 名为“d3dmref.dll”。如果你有这个 司机然后那意味着你没有OEM 为您创建/许可驱动程序 设备和图形将呈现 每帧秒数。