如何configuration和debugging我的D3D10使用情况?

我已经在D3D 10上工作了大约6个月,并且已经积累了一个基本框架。 事情是我得到帧速率尖峰。

即使在屏幕的每一面都有一个简单的立方体,每一面都有自己的纹理,现在每一帧的帧率都会突然下降。

任何提示试图找出是什么原因造成的?

首先,您需要确定CPU或GPU(或两者)上是否出现峰值。 我建议在应用程序中实施基本(高级)CPU / GPU分析框架,以便测量和显示各种操作所花费的时间。

对于CPU,您可以使用QueryPerformanceCounter来测量帧中高级操作的时间,例如更新对象,物理(如果有),截锥体/遮挡剔除以及渲染。 对于GPU,可以使用查询从GPU中获取类似的时序值。 我写了一篇文章 它是针对D3D11 API编写的,但是在D3D10中也可以使用相同的代码修改代码。 有关更多详细信息,请参阅ID3D10Query文档 。 一旦你这样做了,你应该能够看到数据中的性能高峰,以及尖峰正在发生的地方。 这将有助于重点进一步分析工作。

有几个工具可以帮助深入了解更多详细信息。 AMD CodeAnalyst是一个很好的免费的CPU分析工具, PIX是一个免费的工具,可以与D3D和你的应用程序一起工作,进行GPU性能分析和debugging。