SPIRV-Cross/reference/shaders-msl-no-opt/asm/comp/local-size-id-override.asm.comp
Hans-Kristian Arntzen 7c83fc22fa Add support for LocalSizeId.
WorkgroupSize builtin is deprecated in 1.6 and LocalSizeId is supported
in Vulkan starting with maintenance4.
2022-01-06 13:57:10 +01:00

26 lines
835 B
Plaintext

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct SSBO
{
float4 values[1];
};
constant uint _10_tmp [[function_constant(1)]];
constant uint _10 = is_function_constant_defined(_10_tmp) ? _10_tmp : 11u;
constant uint _11_tmp [[function_constant(2)]];
constant uint _11 = is_function_constant_defined(_11_tmp) ? _11_tmp : 12u;
constant uint _4_tmp [[function_constant(3)]];
constant uint _4 = is_function_constant_defined(_4_tmp) ? _4_tmp : 13u;
constant uint _5_tmp [[function_constant(4)]];
constant uint _5 = is_function_constant_defined(_5_tmp) ? _5_tmp : 14u;
constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(3u, _10, _11);
kernel void main0(device SSBO& _8 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
_8.values[gl_GlobalInvocationID.x] += float4(2.0);
}