首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF和SlimDX (DirectX 11)互操作

WPF和SlimDX (DirectX 11)互操作
EN

Stack Overflow用户
提问于 2012-03-27 19:38:50
回答 1查看 1.5K关注 0票数 2

您好,我已经设法通过使用D3DImage和共享纹理在WPF应用程序中集成了SlimDX和DirectX 11图形。然而,在以高分辨率(2560x1440)渲染简单场景(例如SlimDX示例中的GameOfLife )时,我得到了一些非常差的性能。

我尝试过对我的render方法进行一些性能分析,看起来大部分时间都花在了使后台缓冲区无效时锁定D3DImage上。

代码语言:javascript
复制
_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();

在绘制之后,很多时间都花在使用设备上:

代码语言:javascript
复制
_device.ImmediateContext.Flush(); // <- 20,6% of the time when rendering the frame

有人知道这个问题以及如何优化它吗?当集成WPF和SlimDX时,你能期望得到下降的性能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-30 05:25:16

由于您看到了锁定和刷新调用( GPU需要与CPU同步的地方)的性能问题,我猜您的程序受到严重的GPU限制,CPU必须一直等待它跟上。这也是由于禁用计算着色器时性能的提高而产生的。

我不确定在这一点上该告诉你什么,除了如果这个猜测是正确的,那么看起来你的卡无法处理负载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9888847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档