Tegra2上的OpenGL ES 2.0:glDrawArrays / glDrawElements函数中使用了多少GPU内核?

时间:2011-11-10 13:27:54

标签: opengl-es multicore gpu

当我致电glDrawArrays / glDrawElements时,是否有人了解有关使用多少GPU内核的信息?

更多细节来解释我的问题。 处理器Tegra2有4核GPU。使用libGLESv2.so。 在完成所有准备工作(创建和链接着色器;上传纹理等)之后,我调用DRAW函数,该函数开始光栅化并在帧缓冲区中创建图像。 我认为,DRAW函数必须使用尽可能多的内核来更快地执行rasterizarion。 但我找不到任何证实我理论的文件。 OpenGL的描述只有关于自己的级别API的信息,并且可以理解的是,没有关于以下级别的任何信息。 NVIDIA没有介绍如何实现libGLESv2.so。

1 个答案:

答案 0 :(得分:0)

如果没有人不想回答,我会自己做:)

经过几次尝试后,我得到了以下结果: !!请注意我使用GPU进行数据计算。使用线性数据阵列,因此屏幕定义为height = 1和wight =数组大小。为了计算线与wight =数组大小被绘制。

  1. DRAW功能使用尽可能多的内核。
  2. 但这取决于将多少椎体送到DRAW。 例如:如果绘制了线(2个顶点),则获得一个性能。如果这条线在几条小线(4个或更多顶点)上划分,性能会更好。
  3. 总而言之,因为我想使用所有核心是必要的,调用DRAW的顶点数量至少等于GPU核心的数量。在我的情况下,当线路在两个子线上划分时,计算速度提高了大约20%。分裂几乎没有给性能提高。