xref: /aosp_15_r20/external/skia/tests/sksl/shared/NoFragCoordsPosRT.metal (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1#include <metal_stdlib>
2#include <simd/simd.h>
3#ifdef __clang__
4#pragma clang diagnostic ignored "-Wall"
5#endif
6using namespace metal;
7struct Uniforms {
8    float4 sk_RTAdjust;
9};
10struct Inputs {
11    float4 pos  [[attribute(0)]];
12};
13struct Outputs {
14    float4 sk_Position [[position]];
15    float sk_PointSize [[point_size]];
16};
17vertex Outputs vertexMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], uint sk_VertexID [[vertex_id]], uint sk_InstanceID [[instance_id]]) {
18    Outputs _out;
19    (void)_out;
20    _out.sk_Position = _in.pos;
21    _out.sk_Position = float4(_out.sk_Position.xy * _uniforms.sk_RTAdjust.xz + _out.sk_Position.ww * _uniforms.sk_RTAdjust.yw, 0.0, _out.sk_Position.w);
22    return _out;
23}
24