glsl中是否有快速的数组块复制功能或类似的功能?

时间:2018-09-20 12:10:23

标签: glsl compute-shader

我有一个非常大的SSBO无界数组:

struct PStruct{
  vec2 P1;
  vec2 P2;
}
layout(std430) buffer MyList 
  {
    PStruct list[];
  }

在我的着色器代码中,我需要将此数组的块从起始索引1000-2000复制到起始索引50000-51000。有什么方法可以快速完成它,而不是在for循环中逐个元素地复制它?

1 个答案:

答案 0 :(得分:0)

与我想要找到的最接近的东西实际上是OpenGL,而不是名为glCopyBufferSubData的glsl命令。它将GPU内存从同一缓冲区的一个位置复制到另一位置,因为它允许往返缓冲区相同。