SPIRV-Cross/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag
Hans-Kristian Arntzen 361fe52c9d MSL: Properly support passing parameters by value.
MSL would force thread const& which would not work if the input argument
came from a different storage class.

Emit proper non-reference arguments for such values.
2018-08-06 15:43:51 +02:00

23 lines
324 B
GLSL

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct Registers
{
float foo;
};
struct main0_out
{
float FragColor [[color(0)]];
};
fragment main0_out main0(constant Registers& registers [[buffer(0)]])
{
main0_out out = {};
out.FragColor = 10.0 + registers.foo;
return out;
}