计算着色器中 [[vk::binding(0, 0)]] RWStructuredBuffer<int> 的 GLSL 等效项是什么

Log*_*ing 2 glsl hlsl hlsl2glsl vulkan

我有这个 HLSL,我想用 GLSL 编写等效的内容。如果有任何用处,我正在尝试运行此示例https://github.com/mcleary/VulkanHpp-Compute-Sample

[[vk::binding(0, 0)]] RWStructuredBuffer<int> InBuffer;
[[vk::binding(1, 0)]] RWStructuredBuffer<int> OutBuffer;

[numthreads(1, 1, 1)]
void Main(uint3 DTid : SV_DispatchThreadID)
{
    OutBuffer[DTid.x] = InBuffer[DTid.x] * InBuffer[DTid.x];
}
Run Code Online (Sandbox Code Playgroud)

Sas*_*ems 6

GLSL 等效项应如下所示:

layout(std430, binding = 0) buffer InBuffer {
    int inBuffer[ ];
};

layout(std430, binding = 1) buffer OutBuffer {
    int outBuffer[ ];
};

layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() 
{
    outBuffer[gl_GlobalInvocationID.x] = inBuffer[gl_GlobalInvocationID.x] * inBuffer[gl_GlobalInvocationID.x];
}

Run Code Online (Sandbox Code Playgroud)