c068a8f00b
These tests have updated to return green on success, or red on failure. Some tests were modified slightly to conform to ES2 limitations, or split into separate ES2 and ES3 parts. Change-Id: Ib47aeca217aef33f3c4b5999d93afed5d42a1e62 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363876 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
36 lines
857 B
Metal
36 lines
857 B
Metal
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
using namespace metal;
|
|
struct Uniforms {
|
|
float4 colorGreen;
|
|
float4 colorRed;
|
|
};
|
|
struct Inputs {
|
|
};
|
|
struct Outputs {
|
|
float4 sk_FragColor [[color(0)]];
|
|
};
|
|
float4 unpremul(float4 color) {
|
|
return float4(color.xyz / max(color.w, 9.9999997473787516e-05), color.w);
|
|
}
|
|
|
|
|
|
float4 live_fn(float4 a, float4 b) {
|
|
return a + b;
|
|
}
|
|
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
|
Outputs _out;
|
|
(void)_out;
|
|
float4 a;
|
|
float4 b;
|
|
|
|
{
|
|
a = live_fn(float4(3.0), float4(-5.0));
|
|
}
|
|
{
|
|
b = unpremul(float4(1.0));
|
|
}
|
|
_out.sk_FragColor = any(a != float4(0.0)) && any(b != float4(0.0)) ? _uniforms.colorGreen : _uniforms.colorRed;
|
|
return _out;
|
|
}
|