SPIRV-Cross/reference/shaders-msl-no-opt/frag/in_block_assign.frag
Hans-Kristian Arntzen d310060f92 MSL: Support global I/O block and struct Input/Output usage.
Implement this by flattening outputs and unflattening inputs explicitly.
This allows us to pass down a single struct instead of dealing with the
insanity that would be passing down each flattened member separately.

Remove stage_uniforms_var_id.
Seems to be dead code. Naked uniforms do not exist in SPIR-V for Vulkan,
which this seems to have been intended for. It was also unused elsewhere.
2018-09-13 16:04:24 +02:00

33 lines
445 B
GLSL

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct VOUT
{
float4 a;
};
struct main0_out
{
float4 FragColor [[color(0)]];
};
struct main0_in
{
float4 VOUT_a [[user(locn0)]];
};
fragment main0_out main0(main0_in in [[stage_in]])
{
main0_out out = {};
VOUT Clip = {};
Clip.a = in.VOUT_a;
VOUT tmp;
tmp.a = _13.a;
tmp.a += float4(1.0);
out.FragColor = tmp.a;
return out;
}