2013-07-21 79 views
0

我需要繪製N遍,對於每次遍歷,我從fbo讀取一個像素,並且我發現它太慢而無法讀取每遍一個像素。然後,我使用另一個紋理(矩形:N * 1)來緩存像素,這意味着對於每次通過,我都會將一個像素複製到結果紋理。 N遍後,我讀取結果紋理一次。 但是,它也太慢。例如,要讀取結果紋理(200 * 1),它的成本爲13毫秒。glReadPixels或glCopyTexSubImage2D太慢?

我想知道是否有另一種方法來解決這個問題。

我也解決了關於像素緩衝區對象的一些帖子,它以異步的方式工作。但是,在最後一次完成之後,我需要立即從結果紋理中得到結果。對於cpu和gpu都沒有其他作品。

回答

2

正如您已經發現的那樣,由於隱式同步必須對您的ReadPixels完成,所以速度很慢。如果你不能異步工作,你必須忍受糟糕的表現。您無法讀回尚未寫入的數據,並且在這種情況下必須等待GPU。如果您不瞭解您正在嘗試解決的任務,就不可能就性能如何改善提出任何具體建議。

+0

謝謝你的回覆。也許沒有更好的方法來解決這個問題。 – tanglei