WPF D3DImage丢失前缓冲区

时间:2011-03-20 23:34:28

标签: wpf windows-7 directx slimdx

我正在使用VS.Net 10和SlimDX编写代码以在D3DImage上渲染3D内容。它在32位Windows XP下完美运行。但是,在迁移到64位Windows 7(四核和4 GB Ram)后,相同的代码不再起作用。症状是渲染大约10或20次后,引发D3DImage的IsFrontBufferAvailableChanged事件,并且IsFrontBufferAvailable的属性值为false。

我已经检查了我能想到的一切,例如RenderCapability.Tier,调用SetBackBuffer,在前端缓冲区丢失后检查设备(实际上是DeviceEx类型),更新视频卡驱动程序(nvidia 9500 GT 1G RAM)等。它们都没有工作。

可能导致此问题的一件事是,在GUI线程上不会创建使用D3DImage作为源的图像控件。我正在做的是减少GUI线程的工作量,使应用程序更具响应性。当然,我一直在使用Dispatcher.Invoke来避免线程问题。再次,它在XP中完美运行。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为有一个x64版本的slimdx.dll ..如果你使用的是x32版本,那可能就是问题了。