Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl glReadPixels或glCopyTexSubImage2D变慢?_Opengl_Shader_Glreadpixels_Pbo - Fatal编程技术网

Opengl glReadPixels或glCopyTexSubImage2D变慢?

Opengl glReadPixels或glCopyTexSubImage2D变慢?,opengl,shader,glreadpixels,pbo,Opengl,Shader,Glreadpixels,Pbo,我需要画N个过程,对于每一个过程,我从fbo读取一个像素,我发现每次读取一个像素太慢了。然后,我使用另一个纹理(rectange:N*1)缓存像素,这意味着对于每个过程,我将一个像素复制到结果纹理。经过N次之后,我读取一次结果纹理。 但是,它也太慢了。例如,要读取结果纹理(200*1),需要花费13毫秒 我想知道是否有别的办法来解决这个问题 我还解决了一些关于pixel buffer object的帖子,它以异步方式工作。但是,在最后一次传递完成后,我需要立即从结果纹理中获得结果。cpu和gpu

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

我想知道是否有别的办法来解决这个问题


我还解决了一些关于pixel buffer object的帖子,它以异步方式工作。但是,在最后一次传递完成后,我需要立即从结果纹理中获得结果。cpu和gpu都无法使用其他方法。

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

谢谢您的回复。也许没有更好的办法来解决这个问题。