Vulkan是否支持本地子组内存共享和操作?



在OpenCL中,每当我想操作子组内存时,我可以使用__local。类似地,CUDA有__shared__关键字。Vulkan有类似的东西吗?在子组教程中我看不到任何东西https://www.khronos.org/blog/vulkan-subgroup-tutorial虽然我确实看到他们提到了共享内存,但是他们从来没有真正解释如何初始化它。

Vulkan支持shared缓冲区。它们最好在这里描述

https://www.khronos.org/opengl/wiki/Compute_Shader Shared_variables

用法示例如下

layout (local_size_x = 32) in;
layout(std430, set = 0, binding = 1) buffer SomeBuffer{
int some_ints[];
};
shared int[32] shared_ints;
void main(){
shared_ints[gl_LocalInvocationID.x] = some_ints[gl_GlobalInvocationID.x];
}

最新更新