请注意:
1) 应用程序是GPU有限的(CPU基本上是空闲的(在最繁忙的场景中CPU使用率的20%)
我的问题是:
1) 我该如何解释这些结果?在Pix中,GPU侧的每一帧我都会看到2-3个小的红色条(据我所知,这意味着资源不可用),在它们之后是一个中/大的灰色条(这意味着GPU空闲)。另一边的CPU有一些操作,一个大的空条,然后还有一些其他操作(正在等待什么?)
另一个注意事项是,当GPU空闲时,CPU通常在工作(相反的说法显然无效)
带有DISCARD的MAP被认为是阻塞调用?
获取对象描述的查询?
共享着色器效果被认为是一种争用?
还有什么?
我的总体框架是:
9更改像素着色器/顶点着色器
1个setrendertarget
谢谢!
P.S.pix截图
http://img191.imageshack.us/img191/6800/42594100.jpg
如果我使用一个单一的绘制调用(使用相同的gpu负载(例如一个带有x个粒子的粒子引擎或一个实例对象))而不是整个游戏,我会得到一个完整的蓝色条和gpu在CPU后面2-3帧的正确位置。。。
编辑:我越来越关注效果框架,这可能是这个问题的原因。我在多个对象之间共享一个效果,以节省内存和创建它们的时间。这可以毫无争议地假设吗?