我目前正在研究一些抗锯齿方法所花费的时间。我不完全确定如何准确计算着色器计算时间。我是否正确假设如果我进行绘制调用,数据将被发送到GPU。 CPU继续运行,然后等待GPU在交换链上完成。所以准确计算时间将是" StartTimer"在RenderAntialiasing()和" StopTimer"之前在swapChain-> Present(0,0)之后; ?
否则我的结果会很奇怪。
答案 0 :(得分:1)
This相当过时的文章让您了解了为图形执行性能计时时遇到的一些挑战。
所有基于CPU的计时器都可以告诉您操作所需的CPU时间,但由于批处理,它可能与您正在包围的API函数几乎没有关联。因此,您不应该尝试“微观基准”渲染的CPU成本,而是将rcItem
的大部分框架括起来。
要获得GPU计时,请使用Direct3D时间戳查询。对于Direct3D 11,请参阅SetPixelV
和QueryPerformanceCounter
。