【问题标题】:OpenGL ES 2.0 on Tegra2: How many GPU cores are used in glDrawArrays/glDrawElements functions?Tegra2 上的 OpenGL ES 2.0:glDrawArrays/glDrawElements 函数中使用了多少 GPU 内核?
【发布时间】:2011-11-10 13:27:53
【问题描述】:

有人知道我打电话给glDrawArrays/glDrawElements 时将使用多少 GPU 内核吗?

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

【问题讨论】:

    标签: opengl-es multicore gpu


    【解决方案1】:

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

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

    1. DRAW 函数使用尽可能多的内核。
    2. 但这取决于发送到 DRAW 的顶点数量。 例如:如果绘制线(2 个顶点),则获得一种性能。如果这条线被分成几条小线(4个或更多顶点),性能会更好。

    总而言之,因为我想使用所有核心是调用 DRAW 的必要条件,其顶点数至少等于 GPU 核心数。在我的情况下,当在两条子线上划分线时,计算速度提高了约 20%。以下除法几乎没有给性能增加。

    【讨论】:

      猜你喜欢
      • 2011-06-10
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      相关资源
      最近更新 更多