2011-03-20 32 views
2

我正在編寫使用VS.Net 10和SlimDX在D3DImage上呈現3D內容的代碼。它在32位Windows XP下完美工作。但是,在遷移到64位Windows 7(四核和4 GB Ram)之後,相同的代碼不再工作。症狀是在渲染大約10次或20次後,引發D3DImage的IsFrontBufferAvailableChanged事件,並且IsFrontBufferAvailable的屬性值爲false。WPF D3DImage失去前臺緩存

我檢查了我能想到的所有東西,例如RenderCapability.Tier,調用SetBackBuffer,在前端緩衝區丟失後檢查設備(實際上它是DeviceEx類型),更新視頻卡驅動程序(nvidia 9500 GT 1G RAM)等等。它們都沒有工作。

可能導致該問題的一件事是,使用D3DImage作爲源的圖像控件不會在GUI線程上創建。我正在努力減少GUI線程的工作負載,以使應用程序更具響應能力。當然,我一直在使用Dispatcher.Invoke來避免線程問題。再次,它在XP中完美運行。

任何幫助,非常感謝。先謝謝你。

回答

0

我認爲有一個xim版本的slimdx.dll ..如果您使用的是x32版本,那可能是問題所在。

+0

試過32位和64位版本,試過任何PC,x86,x64和混合平臺配置,並嘗試了很多其他的東西。沒有用。 :( – Rapido 2011-04-15 01:30:09