测量GPU上的时间

时间:2016-06-02 14:05:56

标签: c++ time directx measurement

我目前正在研究一些抗锯齿方法所花费的时间。我不完全确定如何准确计算着色器计算时间。我是否正确假设如果我进行绘制调用,数据将被发送到GPU。 CPU继续运行,然后等待GPU在交换链上完成。所以准确计算时间将是" StartTimer"在RenderAntialiasing()和" StopTimer"之前在swapChain-> Present(0,0)之后; ?

否则我的结果会很奇怪。

1 个答案:

答案 0 :(得分:1)

This相当过时的文章让您了解了为图形执行性能计时时遇到的一些挑战。

所有基于CPU的计时器都可以告诉您操作所需的CPU时间,但由于批处理,它可能与您正在包围的API函数几乎没有关联。因此,您不应该尝试“微观基准”渲染的CPU成本,而是将rcItem的大部分框架括起来。

要获得GPU计时,请使用Direct3D时间戳查询。对于Direct3D 11,请参阅SetPixelVQueryPerformanceCounter