您好,我已经设法通过使用 D3DImage 和共享纹理将 SlimDX 和 DirectX 11 图形集成到 WPF 应用程序中。但是,在以高分辨率 (2560x1440) 渲染简单场景(例如 SlimDX 示例中的 GameOfLife)时,我的性能确实很差。
我已经尝试对我的渲染方法进行一些性能分析,看起来大部分时间都花在了使后缓冲区无效时锁定 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 时,您能期望获得下降性能吗?