SPIRV-Cross/reference/shaders-msl/frag/sample-position.frag
Chip Davis 39bc101e82 MSL: Handle the SamplePosition builtin.
This is somewhat tricky, because in MSL this value is obtained through a
function, `get_sample_position()`. Since the call expression is an
rvalue, it can't be passed by reference, so functions get a copy
instead.

This was the last piece preventing us from turning on sample-rate
shading support in MoltenVK.
2018-09-13 09:34:28 -05:00

18 lines
319 B
GLSL

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct main0_out
{
float4 FragColor [[color(0)]];
};
fragment main0_out main0(uint gl_SampleID [[sample_id]])
{
main0_out out = {};
out.FragColor = float4(get_sample_position(gl_SampleID), float(gl_SampleID), 1.0);
return out;
}