SPIRV-Cross/reference/shaders-msl-no-opt/components/vertex-input-component.vert
Hans-Kristian Arntzen 99ae0d32e9 MSL: Handle array with component when we cannot rely on user() attrib.
In these cases, we emit one variable per location, and so we must
flatten stuff.
2021-05-21 13:46:33 +02:00

29 lines
504 B
GLSL

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct main0_out
{
float3 Foo [[user(locn0)]];
float4 gl_Position [[position]];
};
struct main0_in
{
float4 m_location_0 [[attribute(0)]];
};
vertex main0_out main0(main0_in in [[stage_in]])
{
main0_out out = {};
float3 Foo3 = {};
float Foo1 = {};
Foo3 = in.m_location_0.xyz;
Foo1 = in.m_location_0.w;
out.gl_Position = float4(Foo3, Foo1);
out.Foo = Foo3 + float3(Foo1);
return out;
}