bc0c29ead3
This allows dead-stripping to properly optimize away unreferenced clones of intrinsic functions, and allows the inliner to detect intrinsic functions that are only called once (which can generally always be inlined without penalty). Change-Id: I0cf034d880ae5d52f4cc0f93de6e2c7aad34e975 Bug: skia:10776 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320258 Commit-Queue: John Stiles <johnstiles@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
23 lines
549 B
Metal
23 lines
549 B
Metal
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
using namespace metal;
|
|
struct Inputs {
|
|
float4 srcdst;
|
|
};
|
|
struct Outputs {
|
|
float4 sk_FragColor [[color(0)]];
|
|
};
|
|
|
|
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
|
Outputs _outputStruct;
|
|
thread Outputs* _out = &_outputStruct;
|
|
float4 _0_blend_src_atop;
|
|
{
|
|
_0_blend_src_atop = _in.dst.w * _in.src + (1.0 - _in.src.w) * _in.dst;
|
|
}
|
|
|
|
_out->sk_FragColor = _0_blend_src_atop;
|
|
|
|
return *_out;
|
|
}
|