I never readback the textures. The water surface is entirely generated and simulated on the GPU, and its heightfield is converted into a normal map and fed into the renderer every frame. There was literally zero performance overhead (we were CPU limited, not GPU limited).
The lake surface looked utterly convincing; it was as if you were watching a rainstorm pour down on it. I wish I had a video.
The bottleneck you ran into was readback. Transferring data from GPU->CPU was, is, and always will be, "expensive".
GPGPU is completely unrelated to this; it merely enables you to perform computations on the GPU faster, nothing more and nothing less.
The lake surface looked utterly convincing; it was as if you were watching a rainstorm pour down on it. I wish I had a video.
The bottleneck you ran into was readback. Transferring data from GPU->CPU was, is, and always will be, "expensive".
GPGPU is completely unrelated to this; it merely enables you to perform computations on the GPU faster, nothing more and nothing less.