本地存储在着色程序执行后将被丢弃的信息的选项包括:
array[100];
in global
范围。可能还有其他我不知道的事情。
编辑:
每个着色器都可以处理自己的数据,这是在正常的渲染管道上。
考虑到程序结束后数据将被丢弃,其中哪一项将提供最快的访问权限。每个片段都与其他片段无关(它们不需要共享数据)。
答案 0 :(得分:2)
如果您声明的数组不是太大,着色器中的局部或全局变量(类C)将是最快的。这些变量存储在寄存器或与着色器单元最近(最快)的存储器中。
您提到的其他选项(纹理和SSBO)都使用较慢的内存。它们适用于不同着色器或着色器调用可见的数据。如果您使用的执行数据太大而无法放入常规变量,则它们可以提供后备“临时空间”。但预计性能要慢很多。
此外,既然你问了这个问题,我很想知道你正在使用哪种算法需要这么多临时存储。