今天我发现了让我感到奇怪的事情。我有三星Exynos 4412 ARM9 CPU,它有一个GPU400(QuadCore)。我尝试通过所有已知方法从GPU到CPU获得纹理,并且它非常慢。在PC平台的现代CPU和GPU中也会出现相同的情况和低速。我想知道这是怎么发生的,三星Exynos是一个SoC,它们都有相同的内存,我不应该关心总线。 为什么会这样?
从GPU到CPU的数据通过许多方法传输,我尝试过glReadpixels,gltexSubImage2D,gltexImage2d,FBO。 在使用任何这些方法时,帧速率从40FPS降至7FP或7FPS,纹理1024 * 1024 24位。
答案 0 :(得分:1)
可能的答案taken from the OpenGL forums:
可能的解决方案: - 将GPU内部的数据复制到另一个位置,并在计算后将其读回一定数量的帧。在您尝试阅读之前,这应该允许写入该位置的所有内容都已完成。