0

我需要绘制N遍,对于每遍,我从fbo读取一个像素,我发现每次读取一个像素太慢了。然后,我使用另一个纹理(rectange:N*1) 来缓存像素,这意味着对于每次传递,我将一个像素复制到结果纹理。N次通过后,我读取了一次结果纹理。但是,它也太慢了。例如,读取结果纹理 (200*1) 需要 13 毫秒。

我想知道是否有另一种方法可以解决这个问题。

我还解决了一些关于像素缓冲区对象的帖子,它以异步方式工作。但是,在最后一次通过后,我需要立即从结果纹理中得到结果。cpu 和 gpu 都没有其他工作。

4

1 回答 1

2

正如您已经发现的那样,由于必须为您的 ReadPixels 进行隐式同步,因此速度很慢。如果你不能异步工作,你就不得不忍受糟糕的性能。您根本无法读回尚未写入的数据,在这种情况下必须等待 GPU。如果不进一步了解您尝试解决的任务,就不可能提出任何具体的建议如何仍然可以提高性能。

于 2013-07-21T12:16:34.287 回答