据我所知,我们只能读取显存中的数据。
因此,当我们想要读取进程内存上的数据时,我们应该使用渲染目标或SSBO将数据复制到显存,以便着色器可以读取。
我认为这是性能和代码架构的相当损失。
我确信其中有一些原因,但我无法凭自己的力量找到它。
为什么会发生这些事情?
我应该学习什么才能弄清楚并理解全部内容?
我认为答案在于 GPU 的工作原理以及其设计目的是为了获得更好的性能。
但是我对这些部分没有足够的知识,所以需要一些帮助。
GPU 有自己的内存,这是为 GPU 的需要而设计的。 它需要具有高带宽和低延迟,以便GPU能够实现最大效率。 GPU 的需求比 CPU 的需求更多。
因此,任何 GPU 编程的目标之一就是将数据传输到 GPU 上,并让 GPU 在自己的内存中尽可能多地进行处理。 来回移动数据的成本很高。 将数据留在 GPU 上的成本很低。