こんにちは私は、D3DImageと共有テクスチャを使用して、SlimDXとDirectX11グラフィックをWPFアプリケーションに統合することができました。ただし、単純なシーン(SlimDXサンプルのGameOfLifeなど)を高解像度(2560x1440)でレンダリングすると、パフォーマンスが大幅に低下します。
レンダリングメソッドのパフォーマンスプロファイリングを試してみましたが、バックバッファを無効にするときにほとんどの時間がD3DImageのロックに費やされているようです。
_d3dImage.Lock(); // <- this call takes 78,5 % of the time when rendering the frame
_d3dImage.AddDirtyRect(new Int32Rect(0, 0, _d3dImage.PixelWidth, _d3dImage.PixelHeight));
_d3dImage.Unlock();
描画後、デバイスのフラッシングに多くの時間が費やされます。
_device.ImmediateContext.Flush(); // <- 20,6% of the time when rendering the frame
誰もが問題とこれを最適化する方法を知っていますか?WPFとSlimDXを統合すると、降下パフォーマンスが期待できますか?