SPIRV-Cross/reference/shaders-msl-no-opt/asm/comp/local-size-id.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

27 lines
933 B
Plaintext

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