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) など、考えられるすべてのことをチェックしました。 なしそれらの仕事。
この問題の原因の 1 つは、D3DImage をソースとして使用するイメージ コントロールが GUI スレッドで作成されていないことです。アプリケーションの応答性を高めるために、GUI スレッドの作業負荷を軽減するために行っています。もちろん、スレッド化の問題を回避するために Dispatcher.Invoke を使用しています。繰り返しますが、XP では完全に動作します。
どんな助けでも大歓迎です。前もって感謝します。