Avoid generating unused variables in the Inliner.

These variables were later being eliminated by the dead-code-elimination
pass, so you can't see them directly in the final output, but removing
them affects the name mangling off all future symbols, so it causes an
enormous ripple effect in the diff. And of course, it's a waste of time
and memory to synthesize IRNodes just to destroy them later.

If we disable control-flow analysis, we lose the dead-code-elimination
pass entirely; this change is also beneficial for emitting better code
when optimizations are turned off.

Change-Id: I882b3be4f3fd99b77d99b6abe128f26bb9252c89
Bug: skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375776
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This commit is contained in:
John Stiles 2021-02-25 11:17:02 -05:00 committed by Skia Commit-Bot
parent a935c3f661
commit 511c500ad4
91 changed files with 1935 additions and 1932 deletions

View File

@ -492,13 +492,13 @@ std::unique_ptr<Statement> Inliner::inlineStatement(int offset,
// inside an Block's scope, we don't need to store the result in a variable at all. Just
// replace the function-call expression with the function's return expression.
SkASSERT(resultExpr);
SkASSERT(*resultExpr);
if (returnComplexity <= ReturnComplexity::kSingleSafeReturn) {
*resultExpr = expr(r.expression());
return std::make_unique<Nop>();
}
// For more complex functions, assign their result into a variable.
SkASSERT(*resultExpr);
auto assignment =
std::make_unique<ExpressionStatement>(std::make_unique<BinaryExpression>(
offset,
@ -645,9 +645,12 @@ Inliner::InlinedCall Inliner::inlineCall(FunctionCall* call,
inlinedBody.children().push_back(std::make_unique<InlineMarker>(&call->function()));
// Create a variable to hold the result in the extra statements (excepting void).
std::unique_ptr<Expression> resultExpr;
if (function.declaration().returnType() != *fContext->fTypes.fVoid) {
if (returnComplexity > ReturnComplexity::kSingleSafeReturn &&
function.declaration().returnType() != *fContext->fTypes.fVoid) {
// Create a variable to hold the result in the extra statements. We don't need to do this
// for void-return functions, or in cases that are simple enough that we can just replace
// the function-call node with the result expression.
std::unique_ptr<Expression> noInitialValue;
InlineVariable var = this->makeInlineVariable(function.declaration().name(),
&function.declaration().returnType(),
@ -655,7 +658,7 @@ Inliner::InlinedCall Inliner::inlineCall(FunctionCall* call,
caller->isBuiltin(), &noInitialValue);
inlinedBody.children().push_back(std::move(var.fVarDecl));
resultExpr = std::make_unique<VariableReference>(/*offset=*/-1, var.fVarSymbol);
}
}
// Create variables in the extra statements to hold the arguments, and assign the arguments to
// them.

View File

@ -8,17 +8,17 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %main "main"
OpName %_1_alpha "_1_alpha"
OpName %_2_sda "_2_sda"
OpName %_3_dsa "_3_dsa"
OpName %_4_blend_set_color_luminance "_4_blend_set_color_luminance"
OpName %_5_lum "_5_lum"
OpName %_6_result "_6_result"
OpName %_7_minComp "_7_minComp"
OpName %_8_maxComp "_8_maxComp"
OpName %_9_d "_9_d"
OpName %_10_n "_10_n"
OpName %_11_d "_11_d"
OpName %_0_alpha "_0_alpha"
OpName %_1_sda "_1_sda"
OpName %_2_dsa "_2_dsa"
OpName %_3_blend_set_color_luminance "_3_blend_set_color_luminance"
OpName %_4_lum "_4_lum"
OpName %_5_result "_5_result"
OpName %_6_minComp "_6_minComp"
OpName %_7_maxComp "_7_maxComp"
OpName %_8_d "_8_d"
OpName %_9_n "_9_n"
OpName %_10_d "_10_d"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -110,71 +110,71 @@ OpDecorate %152 RelaxedPrecision
%float_1 = OpConstant %float 1
%main = OpFunction %void None %14
%15 = OpLabel
%_1_alpha = OpVariable %_ptr_Function_float Function
%_2_sda = OpVariable %_ptr_Function_v3float Function
%_3_dsa = OpVariable %_ptr_Function_v3float Function
%_4_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_5_lum = OpVariable %_ptr_Function_float Function
%_6_result = OpVariable %_ptr_Function_v3float Function
%_7_minComp = OpVariable %_ptr_Function_float Function
%_8_maxComp = OpVariable %_ptr_Function_float Function
%_9_d = OpVariable %_ptr_Function_float Function
%_10_n = OpVariable %_ptr_Function_v3float Function
%_11_d = OpVariable %_ptr_Function_float Function
%_0_alpha = OpVariable %_ptr_Function_float Function
%_1_sda = OpVariable %_ptr_Function_v3float Function
%_2_dsa = OpVariable %_ptr_Function_v3float Function
%_3_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_4_lum = OpVariable %_ptr_Function_float Function
%_5_result = OpVariable %_ptr_Function_v3float Function
%_6_minComp = OpVariable %_ptr_Function_float Function
%_7_maxComp = OpVariable %_ptr_Function_float Function
%_8_d = OpVariable %_ptr_Function_float Function
%_9_n = OpVariable %_ptr_Function_v3float Function
%_10_d = OpVariable %_ptr_Function_float Function
%18 = OpLoad %v4float %dst
%19 = OpCompositeExtract %float %18 3
%20 = OpLoad %v4float %src
%21 = OpCompositeExtract %float %20 3
%22 = OpFMul %float %19 %21
OpStore %_1_alpha %22
OpStore %_0_alpha %22
%26 = OpLoad %v4float %src
%27 = OpVectorShuffle %v3float %26 %26 0 1 2
%28 = OpLoad %v4float %dst
%29 = OpCompositeExtract %float %28 3
%30 = OpVectorTimesScalar %v3float %27 %29
OpStore %_2_sda %30
OpStore %_1_sda %30
%32 = OpLoad %v4float %dst
%33 = OpVectorShuffle %v3float %32 %32 0 1 2
%34 = OpLoad %v4float %src
%35 = OpCompositeExtract %float %34 3
%36 = OpVectorTimesScalar %v3float %33 %35
OpStore %_3_dsa %36
%44 = OpLoad %v3float %_3_dsa
OpStore %_2_dsa %36
%44 = OpLoad %v3float %_2_dsa
%39 = OpDot %float %43 %44
OpStore %_5_lum %39
%46 = OpLoad %float %_5_lum
%48 = OpLoad %v3float %_2_sda
OpStore %_4_lum %39
%46 = OpLoad %float %_4_lum
%48 = OpLoad %v3float %_1_sda
%47 = OpDot %float %43 %48
%49 = OpFSub %float %46 %47
%50 = OpLoad %v3float %_2_sda
%50 = OpLoad %v3float %_1_sda
%51 = OpCompositeConstruct %v3float %49 %49 %49
%52 = OpFAdd %v3float %51 %50
OpStore %_6_result %52
%56 = OpLoad %v3float %_6_result
OpStore %_5_result %52
%56 = OpLoad %v3float %_5_result
%57 = OpCompositeExtract %float %56 0
%58 = OpLoad %v3float %_6_result
%58 = OpLoad %v3float %_5_result
%59 = OpCompositeExtract %float %58 1
%55 = OpExtInst %float %1 FMin %57 %59
%60 = OpLoad %v3float %_6_result
%60 = OpLoad %v3float %_5_result
%61 = OpCompositeExtract %float %60 2
%54 = OpExtInst %float %1 FMin %55 %61
OpStore %_7_minComp %54
%65 = OpLoad %v3float %_6_result
OpStore %_6_minComp %54
%65 = OpLoad %v3float %_5_result
%66 = OpCompositeExtract %float %65 0
%67 = OpLoad %v3float %_6_result
%67 = OpLoad %v3float %_5_result
%68 = OpCompositeExtract %float %67 1
%64 = OpExtInst %float %1 FMax %66 %68
%69 = OpLoad %v3float %_6_result
%69 = OpLoad %v3float %_5_result
%70 = OpCompositeExtract %float %69 2
%63 = OpExtInst %float %1 FMax %64 %70
OpStore %_8_maxComp %63
%72 = OpLoad %float %_7_minComp
OpStore %_7_maxComp %63
%72 = OpLoad %float %_6_minComp
%74 = OpFOrdLessThan %bool %72 %float_0
OpSelectionMerge %76 None
OpBranchConditional %74 %75 %76
%75 = OpLabel
%77 = OpLoad %float %_5_lum
%78 = OpLoad %float %_7_minComp
%77 = OpLoad %float %_4_lum
%78 = OpLoad %float %_6_minComp
%79 = OpFOrdNotEqual %bool %77 %78
OpBranch %76
%76 = OpLabel
@ -182,32 +182,32 @@ OpBranch %76
OpSelectionMerge %82 None
OpBranchConditional %80 %81 %82
%81 = OpLabel
%84 = OpLoad %float %_5_lum
%85 = OpLoad %float %_7_minComp
%84 = OpLoad %float %_4_lum
%85 = OpLoad %float %_6_minComp
%86 = OpFSub %float %84 %85
OpStore %_9_d %86
%87 = OpLoad %float %_5_lum
%88 = OpLoad %v3float %_6_result
%89 = OpLoad %float %_5_lum
OpStore %_8_d %86
%87 = OpLoad %float %_4_lum
%88 = OpLoad %v3float %_5_result
%89 = OpLoad %float %_4_lum
%90 = OpCompositeConstruct %v3float %89 %89 %89
%91 = OpFSub %v3float %88 %90
%92 = OpLoad %float %_5_lum
%93 = OpLoad %float %_9_d
%92 = OpLoad %float %_4_lum
%93 = OpLoad %float %_8_d
%94 = OpFDiv %float %92 %93
%95 = OpVectorTimesScalar %v3float %91 %94
%96 = OpCompositeConstruct %v3float %87 %87 %87
%97 = OpFAdd %v3float %96 %95
OpStore %_6_result %97
OpStore %_5_result %97
OpBranch %82
%82 = OpLabel
%98 = OpLoad %float %_8_maxComp
%99 = OpLoad %float %_1_alpha
%98 = OpLoad %float %_7_maxComp
%99 = OpLoad %float %_0_alpha
%100 = OpFOrdGreaterThan %bool %98 %99
OpSelectionMerge %102 None
OpBranchConditional %100 %101 %102
%101 = OpLabel
%103 = OpLoad %float %_8_maxComp
%104 = OpLoad %float %_5_lum
%103 = OpLoad %float %_7_maxComp
%104 = OpLoad %float %_4_lum
%105 = OpFOrdNotEqual %bool %103 %104
OpBranch %102
%102 = OpLabel
@ -215,43 +215,43 @@ OpBranch %102
OpSelectionMerge %109 None
OpBranchConditional %106 %107 %108
%107 = OpLabel
%111 = OpLoad %v3float %_6_result
%112 = OpLoad %float %_5_lum
%111 = OpLoad %v3float %_5_result
%112 = OpLoad %float %_4_lum
%113 = OpCompositeConstruct %v3float %112 %112 %112
%114 = OpFSub %v3float %111 %113
%115 = OpLoad %float %_1_alpha
%116 = OpLoad %float %_5_lum
%115 = OpLoad %float %_0_alpha
%116 = OpLoad %float %_4_lum
%117 = OpFSub %float %115 %116
%118 = OpVectorTimesScalar %v3float %114 %117
OpStore %_10_n %118
%120 = OpLoad %float %_8_maxComp
%121 = OpLoad %float %_5_lum
OpStore %_9_n %118
%120 = OpLoad %float %_7_maxComp
%121 = OpLoad %float %_4_lum
%122 = OpFSub %float %120 %121
OpStore %_11_d %122
%123 = OpLoad %float %_5_lum
%124 = OpLoad %v3float %_10_n
%125 = OpLoad %float %_11_d
OpStore %_10_d %122
%123 = OpLoad %float %_4_lum
%124 = OpLoad %v3float %_9_n
%125 = OpLoad %float %_10_d
%127 = OpFDiv %float %float_1 %125
%128 = OpVectorTimesScalar %v3float %124 %127
%129 = OpCompositeConstruct %v3float %123 %123 %123
%130 = OpFAdd %v3float %129 %128
OpStore %_4_blend_set_color_luminance %130
OpStore %_3_blend_set_color_luminance %130
OpBranch %109
%108 = OpLabel
%131 = OpLoad %v3float %_6_result
OpStore %_4_blend_set_color_luminance %131
%131 = OpLoad %v3float %_5_result
OpStore %_3_blend_set_color_luminance %131
OpBranch %109
%109 = OpLabel
%132 = OpLoad %v3float %_4_blend_set_color_luminance
%132 = OpLoad %v3float %_3_blend_set_color_luminance
%133 = OpLoad %v4float %dst
%134 = OpVectorShuffle %v3float %133 %133 0 1 2
%135 = OpFAdd %v3float %132 %134
%136 = OpLoad %v3float %_3_dsa
%136 = OpLoad %v3float %_2_dsa
%137 = OpFSub %v3float %135 %136
%138 = OpLoad %v4float %src
%139 = OpVectorShuffle %v3float %138 %138 0 1 2
%140 = OpFAdd %v3float %137 %139
%141 = OpLoad %v3float %_2_sda
%141 = OpLoad %v3float %_1_sda
%142 = OpFSub %v3float %140 %141
%143 = OpCompositeExtract %float %142 0
%144 = OpCompositeExtract %float %142 1
@ -261,7 +261,7 @@ OpBranch %109
%148 = OpLoad %v4float %dst
%149 = OpCompositeExtract %float %148 3
%150 = OpFAdd %float %147 %149
%151 = OpLoad %float %_1_alpha
%151 = OpLoad %float %_0_alpha
%152 = OpFSub %float %150 %151
%153 = OpCompositeConstruct %v4float %143 %144 %145 %152
OpStore %sk_FragColor %153

View File

@ -3,30 +3,30 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_luminance;
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_luminance;
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda)) + _2_sda;
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _1_sda)) + _1_sda;
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
float _9_d = _5_lum - _7_minComp;
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / _9_d);
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
float _8_d = _4_lum - _6_minComp;
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / _8_d);
}
if (_8_maxComp > _1_alpha && _8_maxComp != _5_lum) {
vec3 _10_n = (_6_result - _5_lum) * (_1_alpha - _5_lum);
float _11_d = _8_maxComp - _5_lum;
_4_blend_set_color_luminance = _5_lum + _10_n / _11_d;
if (_7_maxComp > _0_alpha && _7_maxComp != _4_lum) {
vec3 _9_n = (_5_result - _4_lum) * (_0_alpha - _4_lum);
float _10_d = _7_maxComp - _4_lum;
_3_blend_set_color_luminance = _4_lum + _9_n / _10_d;
} else {
_4_blend_set_color_luminance = _6_result;
_3_blend_set_color_luminance = _5_result;
}
sk_FragColor = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_3_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);
}

View File

@ -13,30 +13,30 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float _1_alpha = _in.dst.w * _in.src.w;
float3 _2_sda = _in.src.xyz * _in.dst.w;
float3 _3_dsa = _in.dst.xyz * _in.src.w;
float3 _4_blend_set_color_luminance;
float _5_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
float _0_alpha = _in.dst.w * _in.src.w;
float3 _1_sda = _in.src.xyz * _in.dst.w;
float3 _2_dsa = _in.dst.xyz * _in.src.w;
float3 _3_blend_set_color_luminance;
float _4_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
float3 _6_result = (_5_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda)) + _2_sda;
float3 _5_result = (_4_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _1_sda)) + _1_sda;
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
float _9_d = _5_lum - _7_minComp;
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / _9_d);
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
float _8_d = _4_lum - _6_minComp;
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / _8_d);
}
if (_8_maxComp > _1_alpha && _8_maxComp != _5_lum) {
float3 _10_n = (_6_result - _5_lum) * (_1_alpha - _5_lum);
float _11_d = _8_maxComp - _5_lum;
_4_blend_set_color_luminance = _5_lum + _10_n / _11_d;
if (_7_maxComp > _0_alpha && _7_maxComp != _4_lum) {
float3 _9_n = (_5_result - _4_lum) * (_0_alpha - _4_lum);
float _10_d = _7_maxComp - _4_lum;
_3_blend_set_color_luminance = _4_lum + _9_n / _10_d;
} else {
_4_blend_set_color_luminance = _6_result;
_3_blend_set_color_luminance = _5_result;
}
_out.sk_FragColor = float4((((_4_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
_out.sk_FragColor = float4((((_3_blend_set_color_luminance + _in.dst.xyz) - _2_dsa) + _in.src.xyz) - _1_sda, (_in.src.w + _in.dst.w) - _0_alpha);
return _out;

View File

@ -8,7 +8,7 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %_color_burn_component "_color_burn_component"
OpName %_6_n "_6_n"
OpName %_1_n "_1_n"
OpName %delta "delta"
OpName %main "main"
OpDecorate %sk_FragColor RelaxedPrecision
@ -95,7 +95,7 @@ OpDecorate %130 RelaxedPrecision
%17 = OpFunctionParameter %_ptr_Function_v2float
%18 = OpFunctionParameter %_ptr_Function_v2float
%19 = OpLabel
%_6_n = OpVariable %_ptr_Function_float Function
%_1_n = OpVariable %_ptr_Function_float Function
%delta = OpVariable %_ptr_Function_float Function
%20 = OpLoad %v2float %18
%21 = OpCompositeExtract %float %20 1
@ -148,10 +148,10 @@ OpReturnValue %60
%68 = OpLoad %v2float %17
%69 = OpCompositeExtract %float %68 1
%70 = OpFMul %float %67 %69
OpStore %_6_n %70
OpStore %_1_n %70
%73 = OpLoad %v2float %18
%74 = OpCompositeExtract %float %73 1
%75 = OpLoad %float %_6_n
%75 = OpLoad %float %_1_n
%76 = OpLoad %v2float %17
%77 = OpCompositeExtract %float %76 0
%78 = OpFDiv %float %75 %77

View File

@ -8,8 +8,8 @@ float _color_burn_component(vec2 s, vec2 d) {
} else if (s.x == 0.0) {
return d.x * (1.0 - s.y);
} else {
float _6_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _6_n / s.x);
float _1_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _1_n / s.x);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}

View File

@ -14,8 +14,8 @@ float _color_burn_component(float2 s, float2 d) {
} else if (s.x == 0.0) {
return d.x * (1.0 - s.y);
} else {
float _6_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _6_n / s.x);
float _1_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _1_n / s.x);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}

View File

@ -8,8 +8,8 @@ float _color_burn_component(vec2 s, vec2 d) {
} else if (s.x == 0.0) {
return d.x * (1.0 - s.y);
} else {
float _6_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _6_n / s.x);
float _1_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _1_n / s.x);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}

View File

@ -9,7 +9,7 @@ OpName %src "src"
OpName %dst "dst"
OpName %_color_dodge_component "_color_dodge_component"
OpName %delta "delta"
OpName %_4_n "_4_n"
OpName %_0_n "_0_n"
OpName %main "main"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
@ -95,7 +95,7 @@ OpDecorate %127 RelaxedPrecision
%18 = OpFunctionParameter %_ptr_Function_v2float
%19 = OpLabel
%delta = OpVariable %_ptr_Function_float Function
%_4_n = OpVariable %_ptr_Function_float Function
%_0_n = OpVariable %_ptr_Function_float Function
%20 = OpLoad %v2float %18
%21 = OpCompositeExtract %float %20 0
%23 = OpFOrdEqual %bool %21 %float_0
@ -147,10 +147,10 @@ OpReturnValue %64
%68 = OpLoad %v2float %17
%69 = OpCompositeExtract %float %68 1
%70 = OpFMul %float %67 %69
OpStore %_4_n %70
OpStore %_0_n %70
%72 = OpLoad %v2float %18
%73 = OpCompositeExtract %float %72 1
%74 = OpLoad %float %_4_n
%74 = OpLoad %float %_0_n
%75 = OpLoad %float %delta
%76 = OpFDiv %float %74 %75
%71 = OpExtInst %float %1 FMin %73 %76

View File

@ -10,8 +10,8 @@ float _color_dodge_component(vec2 s, vec2 d) {
if (delta == 0.0) {
return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
} else {
float _4_n = d.x * s.y;
delta = min(d.y, _4_n / delta);
float _0_n = d.x * s.y;
delta = min(d.y, _0_n / delta);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}

View File

@ -16,8 +16,8 @@ float _color_dodge_component(float2 s, float2 d) {
if (delta == 0.0) {
return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
} else {
float _4_n = d.x * s.y;
delta = min(d.y, _4_n / delta);
float _0_n = d.x * s.y;
delta = min(d.y, _0_n / delta);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}

View File

@ -10,8 +10,8 @@ float _color_dodge_component(vec2 s, vec2 d) {
if (delta == 0.0) {
return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
} else {
float _4_n = d.x * s.y;
delta = min(d.y, _4_n / delta);
float _0_n = d.x * s.y;
delta = min(d.y, _0_n / delta);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}

View File

@ -3,30 +3,30 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_luminance;
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_luminance;
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda)) + _2_sda;
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _1_sda)) + _1_sda;
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
float _9_d = _5_lum - _7_minComp;
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / _9_d);
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
float _8_d = _4_lum - _6_minComp;
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / _8_d);
}
if (_8_maxComp > _1_alpha && _8_maxComp != _5_lum) {
vec3 _10_n = (_6_result - _5_lum) * (_1_alpha - _5_lum);
float _11_d = _8_maxComp - _5_lum;
_4_blend_set_color_luminance = _5_lum + _10_n / _11_d;
if (_7_maxComp > _0_alpha && _7_maxComp != _4_lum) {
vec3 _9_n = (_5_result - _4_lum) * (_0_alpha - _4_lum);
float _10_d = _7_maxComp - _4_lum;
_3_blend_set_color_luminance = _4_lum + _9_n / _10_d;
} else {
_4_blend_set_color_luminance = _6_result;
_3_blend_set_color_luminance = _5_result;
}
sk_FragColor = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_3_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);
}

View File

@ -8,7 +8,7 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %main "main"
OpName %_1_result "_1_result"
OpName %_0_result "_0_result"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -46,7 +46,7 @@ OpDecorate %41 RelaxedPrecision
%v3float = OpTypeVector %float 3
%main = OpFunction %void None %14
%15 = OpLabel
%_1_result = OpVariable %_ptr_Function_v4float Function
%_0_result = OpVariable %_ptr_Function_v4float Function
%18 = OpLoad %v4float %src
%20 = OpLoad %v4float %src
%21 = OpCompositeExtract %float %20 3
@ -54,8 +54,8 @@ OpDecorate %41 RelaxedPrecision
%23 = OpLoad %v4float %dst
%24 = OpVectorTimesScalar %v4float %23 %22
%25 = OpFAdd %v4float %18 %24
OpStore %_1_result %25
%27 = OpLoad %v4float %_1_result
OpStore %_0_result %25
%27 = OpLoad %v4float %_0_result
%28 = OpVectorShuffle %v3float %27 %27 0 1 2
%30 = OpLoad %v4float %dst
%31 = OpCompositeExtract %float %30 3
@ -67,10 +67,10 @@ OpStore %_1_result %25
%37 = OpVectorShuffle %v3float %36 %36 0 1 2
%38 = OpFAdd %v3float %35 %37
%26 = OpExtInst %v3float %1 FMin %28 %38
%39 = OpLoad %v4float %_1_result
%39 = OpLoad %v4float %_0_result
%40 = OpVectorShuffle %v4float %39 %26 4 5 6 3
OpStore %_1_result %40
%41 = OpLoad %v4float %_1_result
OpStore %_0_result %40
%41 = OpLoad %v4float %_0_result
OpStore %sk_FragColor %41
OpReturn
OpFunctionEnd

View File

@ -3,9 +3,9 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
vec4 _1_result = src + (1.0 - src.w) * dst;
vec4 _0_result = src + (1.0 - src.w) * dst;
_1_result.xyz = min(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _1_result;
_0_result.xyz = min(_0_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _0_result;
}

View File

@ -13,10 +13,10 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _1_result = _in.src + (1.0 - _in.src.w) * _in.dst;
float4 _0_result = _in.src + (1.0 - _in.src.w) * _in.dst;
_1_result.xyz = min(_1_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
_out.sk_FragColor = _1_result;
_0_result.xyz = min(_0_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
_out.sk_FragColor = _0_result;
return _out;
}

View File

@ -3,9 +3,9 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
vec4 _1_result = src + (1.0 - src.w) * dst;
vec4 _0_result = src + (1.0 - src.w) * dst;
_1_result.xyz = min(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _1_result;
_0_result.xyz = min(_0_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _0_result;
}

View File

@ -9,7 +9,7 @@ OpName %src "src"
OpName %dst "dst"
OpName %_blend_overlay_component "_blend_overlay_component"
OpName %main "main"
OpName %_2_result "_2_result"
OpName %_0_result "_0_result"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -130,7 +130,7 @@ OpReturnValue %56
OpFunctionEnd
%main = OpFunction %void None %58
%59 = OpLabel
%_2_result = OpVariable %_ptr_Function_v4float Function
%_0_result = OpVariable %_ptr_Function_v4float Function
%64 = OpVariable %_ptr_Function_v2float Function
%67 = OpVariable %_ptr_Function_v2float Function
%71 = OpVariable %_ptr_Function_v2float Function
@ -168,8 +168,8 @@ OpStore %81 %80
%91 = OpFMul %float %88 %90
%92 = OpFAdd %float %84 %91
%93 = OpCompositeConstruct %v4float %68 %75 %82 %92
OpStore %_2_result %93
%94 = OpLoad %v4float %_2_result
OpStore %_0_result %93
%94 = OpLoad %v4float %_0_result
%95 = OpVectorShuffle %v3float %94 %94 0 1 2
%97 = OpLoad %v4float %src
%98 = OpVectorShuffle %v3float %97 %97 0 1 2
@ -185,10 +185,10 @@ OpStore %_2_result %93
%108 = OpVectorTimesScalar %v3float %104 %107
%109 = OpFAdd %v3float %102 %108
%110 = OpFAdd %v3float %95 %109
%111 = OpLoad %v4float %_2_result
%111 = OpLoad %v4float %_0_result
%112 = OpVectorShuffle %v4float %111 %110 4 5 6 3
OpStore %_2_result %112
%113 = OpLoad %v4float %_2_result
OpStore %_0_result %112
%113 = OpLoad %v4float %_0_result
OpStore %sk_FragColor %113
OpReturn
OpFunctionEnd

View File

@ -6,9 +6,9 @@ float _blend_overlay_component(vec2 s, vec2 d) {
return 2.0 * d.x <= d.y ? (2.0 * s.x) * d.x : s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x);
}
void main() {
vec4 _2_result = vec4(_blend_overlay_component(dst.xw, src.xw), _blend_overlay_component(dst.yw, src.yw), _blend_overlay_component(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w);
_2_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w);
sk_FragColor = _2_result;
vec4 _0_result = vec4(_blend_overlay_component(dst.xw, src.xw), _blend_overlay_component(dst.yw, src.yw), _blend_overlay_component(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w);
_0_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w);
sk_FragColor = _0_result;
}

View File

@ -16,9 +16,9 @@ float _blend_overlay_component(float2 s, float2 d) {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _2_result = float4(_blend_overlay_component(_in.dst.xw, _in.src.xw), _blend_overlay_component(_in.dst.yw, _in.src.yw), _blend_overlay_component(_in.dst.zw, _in.src.zw), _in.dst.w + (1.0 - _in.dst.w) * _in.src.w);
_2_result.xyz = _2_result.xyz + _in.src.xyz * (1.0 - _in.dst.w) + _in.dst.xyz * (1.0 - _in.src.w);
_out.sk_FragColor = _2_result;
float4 _0_result = float4(_blend_overlay_component(_in.dst.xw, _in.src.xw), _blend_overlay_component(_in.dst.yw, _in.src.yw), _blend_overlay_component(_in.dst.zw, _in.src.zw), _in.dst.w + (1.0 - _in.dst.w) * _in.src.w);
_0_result.xyz = _0_result.xyz + _in.src.xyz * (1.0 - _in.dst.w) + _in.dst.xyz * (1.0 - _in.src.w);
_out.sk_FragColor = _0_result;
return _out;

View File

@ -6,9 +6,9 @@ float _blend_overlay_component(vec2 s, vec2 d) {
return 2.0 * d.x <= d.y ? (2.0 * s.x) * d.x : s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x);
}
void main() {
vec4 _2_result = vec4(_blend_overlay_component(dst.xw, src.xw), _blend_overlay_component(dst.yw, src.yw), _blend_overlay_component(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w);
_2_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w);
sk_FragColor = _2_result;
vec4 _0_result = vec4(_blend_overlay_component(dst.xw, src.xw), _blend_overlay_component(dst.yw, src.yw), _blend_overlay_component(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w);
_0_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w);
sk_FragColor = _0_result;
}

View File

@ -8,22 +8,22 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %_blend_set_color_saturation_helper "_blend_set_color_saturation_helper"
OpName %_19_n "_19_n"
OpName %_20_d "_20_d"
OpName %_7_n "_7_n"
OpName %_8_d "_8_d"
OpName %main "main"
OpName %_1_alpha "_1_alpha"
OpName %_2_sda "_2_sda"
OpName %_3_dsa "_3_dsa"
OpName %_4_blend_set_color_saturation "_4_blend_set_color_saturation"
OpName %_5_sat "_5_sat"
OpName %_6_blend_set_color_luminance "_6_blend_set_color_luminance"
OpName %_7_lum "_7_lum"
OpName %_8_result "_8_result"
OpName %_9_minComp "_9_minComp"
OpName %_10_maxComp "_10_maxComp"
OpName %_11_d "_11_d"
OpName %_12_n "_12_n"
OpName %_13_d "_13_d"
OpName %_0_alpha "_0_alpha"
OpName %_1_sda "_1_sda"
OpName %_2_dsa "_2_dsa"
OpName %_3_blend_set_color_saturation "_3_blend_set_color_saturation"
OpName %_4_sat "_4_sat"
OpName %_5_blend_set_color_luminance "_5_blend_set_color_luminance"
OpName %_6_lum "_6_lum"
OpName %_7_result "_7_result"
OpName %_8_minComp "_8_minComp"
OpName %_9_maxComp "_9_maxComp"
OpName %_10_d "_10_d"
OpName %_11_n "_11_n"
OpName %_12_d "_12_d"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -162,8 +162,8 @@ OpDecorate %284 RelaxedPrecision
%18 = OpFunctionParameter %_ptr_Function_v3float
%19 = OpFunctionParameter %_ptr_Function_float
%20 = OpLabel
%_19_n = OpVariable %_ptr_Function_float Function
%_20_d = OpVariable %_ptr_Function_float Function
%_7_n = OpVariable %_ptr_Function_float Function
%_8_d = OpVariable %_ptr_Function_float Function
%21 = OpLoad %v3float %18
%22 = OpCompositeExtract %float %21 0
%23 = OpLoad %v3float %18
@ -179,15 +179,15 @@ OpBranchConditional %25 %26 %27
%34 = OpCompositeExtract %float %33 0
%35 = OpFSub %float %32 %34
%36 = OpFMul %float %30 %35
OpStore %_19_n %36
OpStore %_7_n %36
%38 = OpLoad %v3float %18
%39 = OpCompositeExtract %float %38 2
%40 = OpLoad %v3float %18
%41 = OpCompositeExtract %float %40 0
%42 = OpFSub %float %39 %41
OpStore %_20_d %42
%44 = OpLoad %float %_19_n
%45 = OpLoad %float %_20_d
OpStore %_8_d %42
%44 = OpLoad %float %_7_n
%45 = OpLoad %float %_8_d
%46 = OpFDiv %float %44 %45
%47 = OpLoad %float %19
%48 = OpCompositeConstruct %v3float %float_0 %46 %47
@ -199,11 +199,11 @@ OpUnreachable
OpFunctionEnd
%main = OpFunction %void None %51
%52 = OpLabel
%_1_alpha = OpVariable %_ptr_Function_float Function
%_2_sda = OpVariable %_ptr_Function_v3float Function
%_3_dsa = OpVariable %_ptr_Function_v3float Function
%_4_blend_set_color_saturation = OpVariable %_ptr_Function_v3float Function
%_5_sat = OpVariable %_ptr_Function_float Function
%_0_alpha = OpVariable %_ptr_Function_float Function
%_1_sda = OpVariable %_ptr_Function_v3float Function
%_2_dsa = OpVariable %_ptr_Function_v3float Function
%_3_blend_set_color_saturation = OpVariable %_ptr_Function_v3float Function
%_4_sat = OpVariable %_ptr_Function_float Function
%107 = OpVariable %_ptr_Function_v3float Function
%109 = OpVariable %_ptr_Function_float Function
%121 = OpVariable %_ptr_Function_v3float Function
@ -216,192 +216,192 @@ OpFunctionEnd
%160 = OpVariable %_ptr_Function_float Function
%165 = OpVariable %_ptr_Function_v3float Function
%167 = OpVariable %_ptr_Function_float Function
%_6_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_7_lum = OpVariable %_ptr_Function_float Function
%_8_result = OpVariable %_ptr_Function_v3float Function
%_9_minComp = OpVariable %_ptr_Function_float Function
%_10_maxComp = OpVariable %_ptr_Function_float Function
%_11_d = OpVariable %_ptr_Function_float Function
%_12_n = OpVariable %_ptr_Function_v3float Function
%_13_d = OpVariable %_ptr_Function_float Function
%_5_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_6_lum = OpVariable %_ptr_Function_float Function
%_7_result = OpVariable %_ptr_Function_v3float Function
%_8_minComp = OpVariable %_ptr_Function_float Function
%_9_maxComp = OpVariable %_ptr_Function_float Function
%_10_d = OpVariable %_ptr_Function_float Function
%_11_n = OpVariable %_ptr_Function_v3float Function
%_12_d = OpVariable %_ptr_Function_float Function
%54 = OpLoad %v4float %dst
%55 = OpCompositeExtract %float %54 3
%56 = OpLoad %v4float %src
%57 = OpCompositeExtract %float %56 3
%58 = OpFMul %float %55 %57
OpStore %_1_alpha %58
OpStore %_0_alpha %58
%60 = OpLoad %v4float %src
%61 = OpVectorShuffle %v3float %60 %60 0 1 2
%62 = OpLoad %v4float %dst
%63 = OpCompositeExtract %float %62 3
%64 = OpVectorTimesScalar %v3float %61 %63
OpStore %_2_sda %64
OpStore %_1_sda %64
%66 = OpLoad %v4float %dst
%67 = OpVectorShuffle %v3float %66 %66 0 1 2
%68 = OpLoad %v4float %src
%69 = OpCompositeExtract %float %68 3
%70 = OpVectorTimesScalar %v3float %67 %69
OpStore %_3_dsa %70
%75 = OpLoad %v3float %_3_dsa
OpStore %_2_dsa %70
%75 = OpLoad %v3float %_2_dsa
%76 = OpCompositeExtract %float %75 0
%77 = OpLoad %v3float %_3_dsa
%77 = OpLoad %v3float %_2_dsa
%78 = OpCompositeExtract %float %77 1
%74 = OpExtInst %float %1 FMax %76 %78
%79 = OpLoad %v3float %_3_dsa
%79 = OpLoad %v3float %_2_dsa
%80 = OpCompositeExtract %float %79 2
%73 = OpExtInst %float %1 FMax %74 %80
%83 = OpLoad %v3float %_3_dsa
%83 = OpLoad %v3float %_2_dsa
%84 = OpCompositeExtract %float %83 0
%85 = OpLoad %v3float %_3_dsa
%85 = OpLoad %v3float %_2_dsa
%86 = OpCompositeExtract %float %85 1
%82 = OpExtInst %float %1 FMin %84 %86
%87 = OpLoad %v3float %_3_dsa
%87 = OpLoad %v3float %_2_dsa
%88 = OpCompositeExtract %float %87 2
%81 = OpExtInst %float %1 FMin %82 %88
%89 = OpFSub %float %73 %81
OpStore %_5_sat %89
%90 = OpLoad %v3float %_2_sda
OpStore %_4_sat %89
%90 = OpLoad %v3float %_1_sda
%91 = OpCompositeExtract %float %90 0
%92 = OpLoad %v3float %_2_sda
%92 = OpLoad %v3float %_1_sda
%93 = OpCompositeExtract %float %92 1
%94 = OpFOrdLessThanEqual %bool %91 %93
OpSelectionMerge %97 None
OpBranchConditional %94 %95 %96
%95 = OpLabel
%98 = OpLoad %v3float %_2_sda
%98 = OpLoad %v3float %_1_sda
%99 = OpCompositeExtract %float %98 1
%100 = OpLoad %v3float %_2_sda
%100 = OpLoad %v3float %_1_sda
%101 = OpCompositeExtract %float %100 2
%102 = OpFOrdLessThanEqual %bool %99 %101
OpSelectionMerge %105 None
OpBranchConditional %102 %103 %104
%103 = OpLabel
%106 = OpLoad %v3float %_2_sda
%106 = OpLoad %v3float %_1_sda
OpStore %107 %106
%108 = OpLoad %float %_5_sat
%108 = OpLoad %float %_4_sat
OpStore %109 %108
%110 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %107 %109
OpStore %_4_blend_set_color_saturation %110
OpStore %_3_blend_set_color_saturation %110
OpBranch %105
%104 = OpLabel
%111 = OpLoad %v3float %_2_sda
%111 = OpLoad %v3float %_1_sda
%112 = OpCompositeExtract %float %111 0
%113 = OpLoad %v3float %_2_sda
%113 = OpLoad %v3float %_1_sda
%114 = OpCompositeExtract %float %113 2
%115 = OpFOrdLessThanEqual %bool %112 %114
OpSelectionMerge %118 None
OpBranchConditional %115 %116 %117
%116 = OpLabel
%119 = OpLoad %v3float %_2_sda
%119 = OpLoad %v3float %_1_sda
%120 = OpVectorShuffle %v3float %119 %119 0 2 1
OpStore %121 %120
%122 = OpLoad %float %_5_sat
%122 = OpLoad %float %_4_sat
OpStore %123 %122
%124 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %121 %123
%125 = OpVectorShuffle %v3float %124 %124 0 2 1
OpStore %_4_blend_set_color_saturation %125
OpStore %_3_blend_set_color_saturation %125
OpBranch %118
%117 = OpLabel
%126 = OpLoad %v3float %_2_sda
%126 = OpLoad %v3float %_1_sda
%127 = OpVectorShuffle %v3float %126 %126 2 0 1
OpStore %128 %127
%129 = OpLoad %float %_5_sat
%129 = OpLoad %float %_4_sat
OpStore %130 %129
%131 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %128 %130
%132 = OpVectorShuffle %v3float %131 %131 1 2 0
OpStore %_4_blend_set_color_saturation %132
OpStore %_3_blend_set_color_saturation %132
OpBranch %118
%118 = OpLabel
OpBranch %105
%105 = OpLabel
OpBranch %97
%96 = OpLabel
%133 = OpLoad %v3float %_2_sda
%133 = OpLoad %v3float %_1_sda
%134 = OpCompositeExtract %float %133 0
%135 = OpLoad %v3float %_2_sda
%135 = OpLoad %v3float %_1_sda
%136 = OpCompositeExtract %float %135 2
%137 = OpFOrdLessThanEqual %bool %134 %136
OpSelectionMerge %140 None
OpBranchConditional %137 %138 %139
%138 = OpLabel
%141 = OpLoad %v3float %_2_sda
%141 = OpLoad %v3float %_1_sda
%142 = OpVectorShuffle %v3float %141 %141 1 0 2
OpStore %143 %142
%144 = OpLoad %float %_5_sat
%144 = OpLoad %float %_4_sat
OpStore %145 %144
%146 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %143 %145
%147 = OpVectorShuffle %v3float %146 %146 1 0 2
OpStore %_4_blend_set_color_saturation %147
OpStore %_3_blend_set_color_saturation %147
OpBranch %140
%139 = OpLabel
%148 = OpLoad %v3float %_2_sda
%148 = OpLoad %v3float %_1_sda
%149 = OpCompositeExtract %float %148 1
%150 = OpLoad %v3float %_2_sda
%150 = OpLoad %v3float %_1_sda
%151 = OpCompositeExtract %float %150 2
%152 = OpFOrdLessThanEqual %bool %149 %151
OpSelectionMerge %155 None
OpBranchConditional %152 %153 %154
%153 = OpLabel
%156 = OpLoad %v3float %_2_sda
%156 = OpLoad %v3float %_1_sda
%157 = OpVectorShuffle %v3float %156 %156 1 2 0
OpStore %158 %157
%159 = OpLoad %float %_5_sat
%159 = OpLoad %float %_4_sat
OpStore %160 %159
%161 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %158 %160
%162 = OpVectorShuffle %v3float %161 %161 2 0 1
OpStore %_4_blend_set_color_saturation %162
OpStore %_3_blend_set_color_saturation %162
OpBranch %155
%154 = OpLabel
%163 = OpLoad %v3float %_2_sda
%163 = OpLoad %v3float %_1_sda
%164 = OpVectorShuffle %v3float %163 %163 2 1 0
OpStore %165 %164
%166 = OpLoad %float %_5_sat
%166 = OpLoad %float %_4_sat
OpStore %167 %166
%168 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %165 %167
%169 = OpVectorShuffle %v3float %168 %168 2 1 0
OpStore %_4_blend_set_color_saturation %169
OpStore %_3_blend_set_color_saturation %169
OpBranch %155
%155 = OpLabel
OpBranch %140
%140 = OpLabel
OpBranch %97
%97 = OpLabel
%177 = OpLoad %v3float %_3_dsa
%177 = OpLoad %v3float %_2_dsa
%172 = OpDot %float %176 %177
OpStore %_7_lum %172
%179 = OpLoad %float %_7_lum
%181 = OpLoad %v3float %_4_blend_set_color_saturation
OpStore %_6_lum %172
%179 = OpLoad %float %_6_lum
%181 = OpLoad %v3float %_3_blend_set_color_saturation
%180 = OpDot %float %176 %181
%182 = OpFSub %float %179 %180
%183 = OpLoad %v3float %_4_blend_set_color_saturation
%183 = OpLoad %v3float %_3_blend_set_color_saturation
%184 = OpCompositeConstruct %v3float %182 %182 %182
%185 = OpFAdd %v3float %184 %183
OpStore %_8_result %185
%189 = OpLoad %v3float %_8_result
OpStore %_7_result %185
%189 = OpLoad %v3float %_7_result
%190 = OpCompositeExtract %float %189 0
%191 = OpLoad %v3float %_8_result
%191 = OpLoad %v3float %_7_result
%192 = OpCompositeExtract %float %191 1
%188 = OpExtInst %float %1 FMin %190 %192
%193 = OpLoad %v3float %_8_result
%193 = OpLoad %v3float %_7_result
%194 = OpCompositeExtract %float %193 2
%187 = OpExtInst %float %1 FMin %188 %194
OpStore %_9_minComp %187
%198 = OpLoad %v3float %_8_result
OpStore %_8_minComp %187
%198 = OpLoad %v3float %_7_result
%199 = OpCompositeExtract %float %198 0
%200 = OpLoad %v3float %_8_result
%200 = OpLoad %v3float %_7_result
%201 = OpCompositeExtract %float %200 1
%197 = OpExtInst %float %1 FMax %199 %201
%202 = OpLoad %v3float %_8_result
%202 = OpLoad %v3float %_7_result
%203 = OpCompositeExtract %float %202 2
%196 = OpExtInst %float %1 FMax %197 %203
OpStore %_10_maxComp %196
%205 = OpLoad %float %_9_minComp
OpStore %_9_maxComp %196
%205 = OpLoad %float %_8_minComp
%206 = OpFOrdLessThan %bool %205 %float_0
OpSelectionMerge %208 None
OpBranchConditional %206 %207 %208
%207 = OpLabel
%209 = OpLoad %float %_7_lum
%210 = OpLoad %float %_9_minComp
%209 = OpLoad %float %_6_lum
%210 = OpLoad %float %_8_minComp
%211 = OpFOrdNotEqual %bool %209 %210
OpBranch %208
%208 = OpLabel
@ -409,32 +409,32 @@ OpBranch %208
OpSelectionMerge %214 None
OpBranchConditional %212 %213 %214
%213 = OpLabel
%216 = OpLoad %float %_7_lum
%217 = OpLoad %float %_9_minComp
%216 = OpLoad %float %_6_lum
%217 = OpLoad %float %_8_minComp
%218 = OpFSub %float %216 %217
OpStore %_11_d %218
%219 = OpLoad %float %_7_lum
%220 = OpLoad %v3float %_8_result
%221 = OpLoad %float %_7_lum
OpStore %_10_d %218
%219 = OpLoad %float %_6_lum
%220 = OpLoad %v3float %_7_result
%221 = OpLoad %float %_6_lum
%222 = OpCompositeConstruct %v3float %221 %221 %221
%223 = OpFSub %v3float %220 %222
%224 = OpLoad %float %_7_lum
%225 = OpLoad %float %_11_d
%224 = OpLoad %float %_6_lum
%225 = OpLoad %float %_10_d
%226 = OpFDiv %float %224 %225
%227 = OpVectorTimesScalar %v3float %223 %226
%228 = OpCompositeConstruct %v3float %219 %219 %219
%229 = OpFAdd %v3float %228 %227
OpStore %_8_result %229
OpStore %_7_result %229
OpBranch %214
%214 = OpLabel
%230 = OpLoad %float %_10_maxComp
%231 = OpLoad %float %_1_alpha
%230 = OpLoad %float %_9_maxComp
%231 = OpLoad %float %_0_alpha
%232 = OpFOrdGreaterThan %bool %230 %231
OpSelectionMerge %234 None
OpBranchConditional %232 %233 %234
%233 = OpLabel
%235 = OpLoad %float %_10_maxComp
%236 = OpLoad %float %_7_lum
%235 = OpLoad %float %_9_maxComp
%236 = OpLoad %float %_6_lum
%237 = OpFOrdNotEqual %bool %235 %236
OpBranch %234
%234 = OpLabel
@ -442,43 +442,43 @@ OpBranch %234
OpSelectionMerge %241 None
OpBranchConditional %238 %239 %240
%239 = OpLabel
%243 = OpLoad %v3float %_8_result
%244 = OpLoad %float %_7_lum
%243 = OpLoad %v3float %_7_result
%244 = OpLoad %float %_6_lum
%245 = OpCompositeConstruct %v3float %244 %244 %244
%246 = OpFSub %v3float %243 %245
%247 = OpLoad %float %_1_alpha
%248 = OpLoad %float %_7_lum
%247 = OpLoad %float %_0_alpha
%248 = OpLoad %float %_6_lum
%249 = OpFSub %float %247 %248
%250 = OpVectorTimesScalar %v3float %246 %249
OpStore %_12_n %250
%252 = OpLoad %float %_10_maxComp
%253 = OpLoad %float %_7_lum
OpStore %_11_n %250
%252 = OpLoad %float %_9_maxComp
%253 = OpLoad %float %_6_lum
%254 = OpFSub %float %252 %253
OpStore %_13_d %254
%255 = OpLoad %float %_7_lum
%256 = OpLoad %v3float %_12_n
%257 = OpLoad %float %_13_d
OpStore %_12_d %254
%255 = OpLoad %float %_6_lum
%256 = OpLoad %v3float %_11_n
%257 = OpLoad %float %_12_d
%259 = OpFDiv %float %float_1 %257
%260 = OpVectorTimesScalar %v3float %256 %259
%261 = OpCompositeConstruct %v3float %255 %255 %255
%262 = OpFAdd %v3float %261 %260
OpStore %_6_blend_set_color_luminance %262
OpStore %_5_blend_set_color_luminance %262
OpBranch %241
%240 = OpLabel
%263 = OpLoad %v3float %_8_result
OpStore %_6_blend_set_color_luminance %263
%263 = OpLoad %v3float %_7_result
OpStore %_5_blend_set_color_luminance %263
OpBranch %241
%241 = OpLabel
%264 = OpLoad %v3float %_6_blend_set_color_luminance
%264 = OpLoad %v3float %_5_blend_set_color_luminance
%265 = OpLoad %v4float %dst
%266 = OpVectorShuffle %v3float %265 %265 0 1 2
%267 = OpFAdd %v3float %264 %266
%268 = OpLoad %v3float %_3_dsa
%268 = OpLoad %v3float %_2_dsa
%269 = OpFSub %v3float %267 %268
%270 = OpLoad %v4float %src
%271 = OpVectorShuffle %v3float %270 %270 0 1 2
%272 = OpFAdd %v3float %269 %271
%273 = OpLoad %v3float %_2_sda
%273 = OpLoad %v3float %_1_sda
%274 = OpFSub %v3float %272 %273
%275 = OpCompositeExtract %float %274 0
%276 = OpCompositeExtract %float %274 1
@ -488,7 +488,7 @@ OpBranch %241
%280 = OpLoad %v4float %dst
%281 = OpCompositeExtract %float %280 3
%282 = OpFAdd %float %279 %281
%283 = OpLoad %float %_1_alpha
%283 = OpLoad %float %_0_alpha
%284 = OpFSub %float %282 %283
%285 = OpCompositeConstruct %v4float %275 %276 %277 %284
OpStore %sk_FragColor %285

View File

@ -4,57 +4,57 @@ in vec4 src;
in vec4 dst;
vec3 _blend_set_color_saturation_helper(vec3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _7_n / _8_d, sat);
} else {
return vec3(0.0);
}
}
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_saturation;
float _5_sat = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_saturation;
float _4_sat = max(max(_2_dsa.x, _2_dsa.y), _2_dsa.z) - min(min(_2_dsa.x, _2_dsa.y), _2_dsa.z);
if (_2_sda.x <= _2_sda.y) {
if (_2_sda.y <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _5_sat);
} else if (_2_sda.x <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _5_sat).xzy;
if (_1_sda.x <= _1_sda.y) {
if (_1_sda.y <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda, _4_sat);
} else if (_1_sda.x <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.xzy, _4_sat).xzy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _5_sat).yzx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.zxy, _4_sat).yzx;
}
} else if (_2_sda.x <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _5_sat).yxz;
} else if (_2_sda.y <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _5_sat).zxy;
} else if (_1_sda.x <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.yxz, _4_sat).yxz;
} else if (_1_sda.y <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.yzx, _4_sat).zxy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _5_sat).zyx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.zyx, _4_sat).zyx;
}
vec3 _6_blend_set_color_luminance;
float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
vec3 _5_blend_set_color_luminance;
float _6_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
vec3 _7_result = (_6_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_blend_set_color_saturation)) + _3_blend_set_color_saturation;
float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
float _11_d = _7_lum - _9_minComp;
_8_result = _7_lum + (_8_result - _7_lum) * (_7_lum / _11_d);
float _8_minComp = min(min(_7_result.x, _7_result.y), _7_result.z);
float _9_maxComp = max(max(_7_result.x, _7_result.y), _7_result.z);
if (_8_minComp < 0.0 && _6_lum != _8_minComp) {
float _10_d = _6_lum - _8_minComp;
_7_result = _6_lum + (_7_result - _6_lum) * (_6_lum / _10_d);
}
if (_10_maxComp > _1_alpha && _10_maxComp != _7_lum) {
vec3 _12_n = (_8_result - _7_lum) * (_1_alpha - _7_lum);
float _13_d = _10_maxComp - _7_lum;
_6_blend_set_color_luminance = _7_lum + _12_n / _13_d;
if (_9_maxComp > _0_alpha && _9_maxComp != _6_lum) {
vec3 _11_n = (_7_result - _6_lum) * (_0_alpha - _6_lum);
float _12_d = _9_maxComp - _6_lum;
_5_blend_set_color_luminance = _6_lum + _11_n / _12_d;
} else {
_6_blend_set_color_luminance = _8_result;
_5_blend_set_color_luminance = _7_result;
}
sk_FragColor = vec4((((_6_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_5_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);

View File

@ -10,9 +10,9 @@ struct Outputs {
};
float3 _blend_set_color_saturation_helper(float3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return float3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return float3(0.0, _7_n / _8_d, sat);
} else {
return float3(0.0);
@ -23,48 +23,48 @@ float3 _blend_set_color_saturation_helper(float3 minMidMax, float sat) {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float _1_alpha = _in.dst.w * _in.src.w;
float3 _2_sda = _in.src.xyz * _in.dst.w;
float3 _3_dsa = _in.dst.xyz * _in.src.w;
float3 _4_blend_set_color_saturation;
float _5_sat = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
float _0_alpha = _in.dst.w * _in.src.w;
float3 _1_sda = _in.src.xyz * _in.dst.w;
float3 _2_dsa = _in.dst.xyz * _in.src.w;
float3 _3_blend_set_color_saturation;
float _4_sat = max(max(_2_dsa.x, _2_dsa.y), _2_dsa.z) - min(min(_2_dsa.x, _2_dsa.y), _2_dsa.z);
if (_2_sda.x <= _2_sda.y) {
if (_2_sda.y <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _5_sat);
} else if (_2_sda.x <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _5_sat).xzy;
if (_1_sda.x <= _1_sda.y) {
if (_1_sda.y <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda, _4_sat);
} else if (_1_sda.x <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.xzy, _4_sat).xzy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _5_sat).yzx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.zxy, _4_sat).yzx;
}
} else if (_2_sda.x <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _5_sat).yxz;
} else if (_2_sda.y <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _5_sat).zxy;
} else if (_1_sda.x <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.yxz, _4_sat).yxz;
} else if (_1_sda.y <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.yzx, _4_sat).zxy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _5_sat).zyx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.zyx, _4_sat).zyx;
}
float3 _6_blend_set_color_luminance;
float _7_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
float3 _5_blend_set_color_luminance;
float _6_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
float3 _8_result = (_7_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
float3 _7_result = (_6_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_blend_set_color_saturation)) + _3_blend_set_color_saturation;
float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
float _11_d = _7_lum - _9_minComp;
_8_result = _7_lum + (_8_result - _7_lum) * (_7_lum / _11_d);
float _8_minComp = min(min(_7_result.x, _7_result.y), _7_result.z);
float _9_maxComp = max(max(_7_result.x, _7_result.y), _7_result.z);
if (_8_minComp < 0.0 && _6_lum != _8_minComp) {
float _10_d = _6_lum - _8_minComp;
_7_result = _6_lum + (_7_result - _6_lum) * (_6_lum / _10_d);
}
if (_10_maxComp > _1_alpha && _10_maxComp != _7_lum) {
float3 _12_n = (_8_result - _7_lum) * (_1_alpha - _7_lum);
float _13_d = _10_maxComp - _7_lum;
_6_blend_set_color_luminance = _7_lum + _12_n / _13_d;
if (_9_maxComp > _0_alpha && _9_maxComp != _6_lum) {
float3 _11_n = (_7_result - _6_lum) * (_0_alpha - _6_lum);
float _12_d = _9_maxComp - _6_lum;
_5_blend_set_color_luminance = _6_lum + _11_n / _12_d;
} else {
_6_blend_set_color_luminance = _8_result;
_5_blend_set_color_luminance = _7_result;
}
_out.sk_FragColor = float4((((_6_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
_out.sk_FragColor = float4((((_5_blend_set_color_luminance + _in.dst.xyz) - _2_dsa) + _in.src.xyz) - _1_sda, (_in.src.w + _in.dst.w) - _0_alpha);

View File

@ -4,57 +4,57 @@ in vec4 src;
in vec4 dst;
vec3 _blend_set_color_saturation_helper(vec3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _7_n / _8_d, sat);
} else {
return vec3(0.0);
}
}
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_saturation;
float _5_sat = max(max(_3_dsa.x, _3_dsa.y), _3_dsa.z) - min(min(_3_dsa.x, _3_dsa.y), _3_dsa.z);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_saturation;
float _4_sat = max(max(_2_dsa.x, _2_dsa.y), _2_dsa.z) - min(min(_2_dsa.x, _2_dsa.y), _2_dsa.z);
if (_2_sda.x <= _2_sda.y) {
if (_2_sda.y <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda, _5_sat);
} else if (_2_sda.x <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.xzy, _5_sat).xzy;
if (_1_sda.x <= _1_sda.y) {
if (_1_sda.y <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda, _4_sat);
} else if (_1_sda.x <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.xzy, _4_sat).xzy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zxy, _5_sat).yzx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.zxy, _4_sat).yzx;
}
} else if (_2_sda.x <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yxz, _5_sat).yxz;
} else if (_2_sda.y <= _2_sda.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.yzx, _5_sat).zxy;
} else if (_1_sda.x <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.yxz, _4_sat).yxz;
} else if (_1_sda.y <= _1_sda.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.yzx, _4_sat).zxy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_sda.zyx, _5_sat).zyx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_1_sda.zyx, _4_sat).zyx;
}
vec3 _6_blend_set_color_luminance;
float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
vec3 _5_blend_set_color_luminance;
float _6_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
vec3 _7_result = (_6_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_blend_set_color_saturation)) + _3_blend_set_color_saturation;
float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
float _11_d = _7_lum - _9_minComp;
_8_result = _7_lum + (_8_result - _7_lum) * (_7_lum / _11_d);
float _8_minComp = min(min(_7_result.x, _7_result.y), _7_result.z);
float _9_maxComp = max(max(_7_result.x, _7_result.y), _7_result.z);
if (_8_minComp < 0.0 && _6_lum != _8_minComp) {
float _10_d = _6_lum - _8_minComp;
_7_result = _6_lum + (_7_result - _6_lum) * (_6_lum / _10_d);
}
if (_10_maxComp > _1_alpha && _10_maxComp != _7_lum) {
vec3 _12_n = (_8_result - _7_lum) * (_1_alpha - _7_lum);
float _13_d = _10_maxComp - _7_lum;
_6_blend_set_color_luminance = _7_lum + _12_n / _13_d;
if (_9_maxComp > _0_alpha && _9_maxComp != _6_lum) {
vec3 _11_n = (_7_result - _6_lum) * (_0_alpha - _6_lum);
float _12_d = _9_maxComp - _6_lum;
_5_blend_set_color_luminance = _6_lum + _11_n / _12_d;
} else {
_6_blend_set_color_luminance = _8_result;
_5_blend_set_color_luminance = _7_result;
}
sk_FragColor = vec4((((_6_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_5_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);

View File

@ -8,7 +8,7 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %main "main"
OpName %_1_result "_1_result"
OpName %_0_result "_0_result"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -46,7 +46,7 @@ OpDecorate %41 RelaxedPrecision
%v3float = OpTypeVector %float 3
%main = OpFunction %void None %14
%15 = OpLabel
%_1_result = OpVariable %_ptr_Function_v4float Function
%_0_result = OpVariable %_ptr_Function_v4float Function
%18 = OpLoad %v4float %src
%20 = OpLoad %v4float %src
%21 = OpCompositeExtract %float %20 3
@ -54,8 +54,8 @@ OpDecorate %41 RelaxedPrecision
%23 = OpLoad %v4float %dst
%24 = OpVectorTimesScalar %v4float %23 %22
%25 = OpFAdd %v4float %18 %24
OpStore %_1_result %25
%27 = OpLoad %v4float %_1_result
OpStore %_0_result %25
%27 = OpLoad %v4float %_0_result
%28 = OpVectorShuffle %v3float %27 %27 0 1 2
%30 = OpLoad %v4float %dst
%31 = OpCompositeExtract %float %30 3
@ -67,10 +67,10 @@ OpStore %_1_result %25
%37 = OpVectorShuffle %v3float %36 %36 0 1 2
%38 = OpFAdd %v3float %35 %37
%26 = OpExtInst %v3float %1 FMax %28 %38
%39 = OpLoad %v4float %_1_result
%39 = OpLoad %v4float %_0_result
%40 = OpVectorShuffle %v4float %39 %26 4 5 6 3
OpStore %_1_result %40
%41 = OpLoad %v4float %_1_result
OpStore %_0_result %40
%41 = OpLoad %v4float %_0_result
OpStore %sk_FragColor %41
OpReturn
OpFunctionEnd

View File

@ -3,9 +3,9 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
vec4 _1_result = src + (1.0 - src.w) * dst;
vec4 _0_result = src + (1.0 - src.w) * dst;
_1_result.xyz = max(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _1_result;
_0_result.xyz = max(_0_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _0_result;
}

View File

@ -13,10 +13,10 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _1_result = _in.src + (1.0 - _in.src.w) * _in.dst;
float4 _0_result = _in.src + (1.0 - _in.src.w) * _in.dst;
_1_result.xyz = max(_1_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
_out.sk_FragColor = _1_result;
_0_result.xyz = max(_0_result.xyz, (1.0 - _in.dst.w) * _in.src.xyz + _in.dst.xyz);
_out.sk_FragColor = _0_result;
return _out;
}

View File

@ -3,9 +3,9 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
vec4 _1_result = src + (1.0 - src.w) * dst;
vec4 _0_result = src + (1.0 - src.w) * dst;
_1_result.xyz = max(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _1_result;
_0_result.xyz = max(_0_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
sk_FragColor = _0_result;
}

View File

@ -8,17 +8,17 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %main "main"
OpName %_1_alpha "_1_alpha"
OpName %_2_sda "_2_sda"
OpName %_3_dsa "_3_dsa"
OpName %_4_blend_set_color_luminance "_4_blend_set_color_luminance"
OpName %_5_lum "_5_lum"
OpName %_6_result "_6_result"
OpName %_7_minComp "_7_minComp"
OpName %_8_maxComp "_8_maxComp"
OpName %_9_d "_9_d"
OpName %_10_n "_10_n"
OpName %_11_d "_11_d"
OpName %_0_alpha "_0_alpha"
OpName %_1_sda "_1_sda"
OpName %_2_dsa "_2_dsa"
OpName %_3_blend_set_color_luminance "_3_blend_set_color_luminance"
OpName %_4_lum "_4_lum"
OpName %_5_result "_5_result"
OpName %_6_minComp "_6_minComp"
OpName %_7_maxComp "_7_maxComp"
OpName %_8_d "_8_d"
OpName %_9_n "_9_n"
OpName %_10_d "_10_d"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -110,71 +110,71 @@ OpDecorate %152 RelaxedPrecision
%float_1 = OpConstant %float 1
%main = OpFunction %void None %14
%15 = OpLabel
%_1_alpha = OpVariable %_ptr_Function_float Function
%_2_sda = OpVariable %_ptr_Function_v3float Function
%_3_dsa = OpVariable %_ptr_Function_v3float Function
%_4_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_5_lum = OpVariable %_ptr_Function_float Function
%_6_result = OpVariable %_ptr_Function_v3float Function
%_7_minComp = OpVariable %_ptr_Function_float Function
%_8_maxComp = OpVariable %_ptr_Function_float Function
%_9_d = OpVariable %_ptr_Function_float Function
%_10_n = OpVariable %_ptr_Function_v3float Function
%_11_d = OpVariable %_ptr_Function_float Function
%_0_alpha = OpVariable %_ptr_Function_float Function
%_1_sda = OpVariable %_ptr_Function_v3float Function
%_2_dsa = OpVariable %_ptr_Function_v3float Function
%_3_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_4_lum = OpVariable %_ptr_Function_float Function
%_5_result = OpVariable %_ptr_Function_v3float Function
%_6_minComp = OpVariable %_ptr_Function_float Function
%_7_maxComp = OpVariable %_ptr_Function_float Function
%_8_d = OpVariable %_ptr_Function_float Function
%_9_n = OpVariable %_ptr_Function_v3float Function
%_10_d = OpVariable %_ptr_Function_float Function
%18 = OpLoad %v4float %dst
%19 = OpCompositeExtract %float %18 3
%20 = OpLoad %v4float %src
%21 = OpCompositeExtract %float %20 3
%22 = OpFMul %float %19 %21
OpStore %_1_alpha %22
OpStore %_0_alpha %22
%26 = OpLoad %v4float %src
%27 = OpVectorShuffle %v3float %26 %26 0 1 2
%28 = OpLoad %v4float %dst
%29 = OpCompositeExtract %float %28 3
%30 = OpVectorTimesScalar %v3float %27 %29
OpStore %_2_sda %30
OpStore %_1_sda %30
%32 = OpLoad %v4float %dst
%33 = OpVectorShuffle %v3float %32 %32 0 1 2
%34 = OpLoad %v4float %src
%35 = OpCompositeExtract %float %34 3
%36 = OpVectorTimesScalar %v3float %33 %35
OpStore %_3_dsa %36
%44 = OpLoad %v3float %_2_sda
OpStore %_2_dsa %36
%44 = OpLoad %v3float %_1_sda
%39 = OpDot %float %43 %44
OpStore %_5_lum %39
%46 = OpLoad %float %_5_lum
%48 = OpLoad %v3float %_3_dsa
OpStore %_4_lum %39
%46 = OpLoad %float %_4_lum
%48 = OpLoad %v3float %_2_dsa
%47 = OpDot %float %43 %48
%49 = OpFSub %float %46 %47
%50 = OpLoad %v3float %_3_dsa
%50 = OpLoad %v3float %_2_dsa
%51 = OpCompositeConstruct %v3float %49 %49 %49
%52 = OpFAdd %v3float %51 %50
OpStore %_6_result %52
%56 = OpLoad %v3float %_6_result
OpStore %_5_result %52
%56 = OpLoad %v3float %_5_result
%57 = OpCompositeExtract %float %56 0
%58 = OpLoad %v3float %_6_result
%58 = OpLoad %v3float %_5_result
%59 = OpCompositeExtract %float %58 1
%55 = OpExtInst %float %1 FMin %57 %59
%60 = OpLoad %v3float %_6_result
%60 = OpLoad %v3float %_5_result
%61 = OpCompositeExtract %float %60 2
%54 = OpExtInst %float %1 FMin %55 %61
OpStore %_7_minComp %54
%65 = OpLoad %v3float %_6_result
OpStore %_6_minComp %54
%65 = OpLoad %v3float %_5_result
%66 = OpCompositeExtract %float %65 0
%67 = OpLoad %v3float %_6_result
%67 = OpLoad %v3float %_5_result
%68 = OpCompositeExtract %float %67 1
%64 = OpExtInst %float %1 FMax %66 %68
%69 = OpLoad %v3float %_6_result
%69 = OpLoad %v3float %_5_result
%70 = OpCompositeExtract %float %69 2
%63 = OpExtInst %float %1 FMax %64 %70
OpStore %_8_maxComp %63
%72 = OpLoad %float %_7_minComp
OpStore %_7_maxComp %63
%72 = OpLoad %float %_6_minComp
%74 = OpFOrdLessThan %bool %72 %float_0
OpSelectionMerge %76 None
OpBranchConditional %74 %75 %76
%75 = OpLabel
%77 = OpLoad %float %_5_lum
%78 = OpLoad %float %_7_minComp
%77 = OpLoad %float %_4_lum
%78 = OpLoad %float %_6_minComp
%79 = OpFOrdNotEqual %bool %77 %78
OpBranch %76
%76 = OpLabel
@ -182,32 +182,32 @@ OpBranch %76
OpSelectionMerge %82 None
OpBranchConditional %80 %81 %82
%81 = OpLabel
%84 = OpLoad %float %_5_lum
%85 = OpLoad %float %_7_minComp
%84 = OpLoad %float %_4_lum
%85 = OpLoad %float %_6_minComp
%86 = OpFSub %float %84 %85
OpStore %_9_d %86
%87 = OpLoad %float %_5_lum
%88 = OpLoad %v3float %_6_result
%89 = OpLoad %float %_5_lum
OpStore %_8_d %86
%87 = OpLoad %float %_4_lum
%88 = OpLoad %v3float %_5_result
%89 = OpLoad %float %_4_lum
%90 = OpCompositeConstruct %v3float %89 %89 %89
%91 = OpFSub %v3float %88 %90
%92 = OpLoad %float %_5_lum
%93 = OpLoad %float %_9_d
%92 = OpLoad %float %_4_lum
%93 = OpLoad %float %_8_d
%94 = OpFDiv %float %92 %93
%95 = OpVectorTimesScalar %v3float %91 %94
%96 = OpCompositeConstruct %v3float %87 %87 %87
%97 = OpFAdd %v3float %96 %95
OpStore %_6_result %97
OpStore %_5_result %97
OpBranch %82
%82 = OpLabel
%98 = OpLoad %float %_8_maxComp
%99 = OpLoad %float %_1_alpha
%98 = OpLoad %float %_7_maxComp
%99 = OpLoad %float %_0_alpha
%100 = OpFOrdGreaterThan %bool %98 %99
OpSelectionMerge %102 None
OpBranchConditional %100 %101 %102
%101 = OpLabel
%103 = OpLoad %float %_8_maxComp
%104 = OpLoad %float %_5_lum
%103 = OpLoad %float %_7_maxComp
%104 = OpLoad %float %_4_lum
%105 = OpFOrdNotEqual %bool %103 %104
OpBranch %102
%102 = OpLabel
@ -215,43 +215,43 @@ OpBranch %102
OpSelectionMerge %109 None
OpBranchConditional %106 %107 %108
%107 = OpLabel
%111 = OpLoad %v3float %_6_result
%112 = OpLoad %float %_5_lum
%111 = OpLoad %v3float %_5_result
%112 = OpLoad %float %_4_lum
%113 = OpCompositeConstruct %v3float %112 %112 %112
%114 = OpFSub %v3float %111 %113
%115 = OpLoad %float %_1_alpha
%116 = OpLoad %float %_5_lum
%115 = OpLoad %float %_0_alpha
%116 = OpLoad %float %_4_lum
%117 = OpFSub %float %115 %116
%118 = OpVectorTimesScalar %v3float %114 %117
OpStore %_10_n %118
%120 = OpLoad %float %_8_maxComp
%121 = OpLoad %float %_5_lum
OpStore %_9_n %118
%120 = OpLoad %float %_7_maxComp
%121 = OpLoad %float %_4_lum
%122 = OpFSub %float %120 %121
OpStore %_11_d %122
%123 = OpLoad %float %_5_lum
%124 = OpLoad %v3float %_10_n
%125 = OpLoad %float %_11_d
OpStore %_10_d %122
%123 = OpLoad %float %_4_lum
%124 = OpLoad %v3float %_9_n
%125 = OpLoad %float %_10_d
%127 = OpFDiv %float %float_1 %125
%128 = OpVectorTimesScalar %v3float %124 %127
%129 = OpCompositeConstruct %v3float %123 %123 %123
%130 = OpFAdd %v3float %129 %128
OpStore %_4_blend_set_color_luminance %130
OpStore %_3_blend_set_color_luminance %130
OpBranch %109
%108 = OpLabel
%131 = OpLoad %v3float %_6_result
OpStore %_4_blend_set_color_luminance %131
%131 = OpLoad %v3float %_5_result
OpStore %_3_blend_set_color_luminance %131
OpBranch %109
%109 = OpLabel
%132 = OpLoad %v3float %_4_blend_set_color_luminance
%132 = OpLoad %v3float %_3_blend_set_color_luminance
%133 = OpLoad %v4float %dst
%134 = OpVectorShuffle %v3float %133 %133 0 1 2
%135 = OpFAdd %v3float %132 %134
%136 = OpLoad %v3float %_3_dsa
%136 = OpLoad %v3float %_2_dsa
%137 = OpFSub %v3float %135 %136
%138 = OpLoad %v4float %src
%139 = OpVectorShuffle %v3float %138 %138 0 1 2
%140 = OpFAdd %v3float %137 %139
%141 = OpLoad %v3float %_2_sda
%141 = OpLoad %v3float %_1_sda
%142 = OpFSub %v3float %140 %141
%143 = OpCompositeExtract %float %142 0
%144 = OpCompositeExtract %float %142 1
@ -261,7 +261,7 @@ OpBranch %109
%148 = OpLoad %v4float %dst
%149 = OpCompositeExtract %float %148 3
%150 = OpFAdd %float %147 %149
%151 = OpLoad %float %_1_alpha
%151 = OpLoad %float %_0_alpha
%152 = OpFSub %float %150 %151
%153 = OpCompositeConstruct %v4float %143 %144 %145 %152
OpStore %sk_FragColor %153

View File

@ -3,30 +3,30 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_luminance;
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_luminance;
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _1_sda);
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa)) + _3_dsa;
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa)) + _2_dsa;
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
float _9_d = _5_lum - _7_minComp;
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / _9_d);
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
float _8_d = _4_lum - _6_minComp;
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / _8_d);
}
if (_8_maxComp > _1_alpha && _8_maxComp != _5_lum) {
vec3 _10_n = (_6_result - _5_lum) * (_1_alpha - _5_lum);
float _11_d = _8_maxComp - _5_lum;
_4_blend_set_color_luminance = _5_lum + _10_n / _11_d;
if (_7_maxComp > _0_alpha && _7_maxComp != _4_lum) {
vec3 _9_n = (_5_result - _4_lum) * (_0_alpha - _4_lum);
float _10_d = _7_maxComp - _4_lum;
_3_blend_set_color_luminance = _4_lum + _9_n / _10_d;
} else {
_4_blend_set_color_luminance = _6_result;
_3_blend_set_color_luminance = _5_result;
}
sk_FragColor = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_3_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);
}

View File

@ -13,30 +13,30 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float _1_alpha = _in.dst.w * _in.src.w;
float3 _2_sda = _in.src.xyz * _in.dst.w;
float3 _3_dsa = _in.dst.xyz * _in.src.w;
float3 _4_blend_set_color_luminance;
float _5_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
float _0_alpha = _in.dst.w * _in.src.w;
float3 _1_sda = _in.src.xyz * _in.dst.w;
float3 _2_dsa = _in.dst.xyz * _in.src.w;
float3 _3_blend_set_color_luminance;
float _4_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _1_sda);
float3 _6_result = (_5_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa)) + _3_dsa;
float3 _5_result = (_4_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa)) + _2_dsa;
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
float _9_d = _5_lum - _7_minComp;
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / _9_d);
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
float _8_d = _4_lum - _6_minComp;
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / _8_d);
}
if (_8_maxComp > _1_alpha && _8_maxComp != _5_lum) {
float3 _10_n = (_6_result - _5_lum) * (_1_alpha - _5_lum);
float _11_d = _8_maxComp - _5_lum;
_4_blend_set_color_luminance = _5_lum + _10_n / _11_d;
if (_7_maxComp > _0_alpha && _7_maxComp != _4_lum) {
float3 _9_n = (_5_result - _4_lum) * (_0_alpha - _4_lum);
float _10_d = _7_maxComp - _4_lum;
_3_blend_set_color_luminance = _4_lum + _9_n / _10_d;
} else {
_4_blend_set_color_luminance = _6_result;
_3_blend_set_color_luminance = _5_result;
}
_out.sk_FragColor = float4((((_4_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
_out.sk_FragColor = float4((((_3_blend_set_color_luminance + _in.dst.xyz) - _2_dsa) + _in.src.xyz) - _1_sda, (_in.src.w + _in.dst.w) - _0_alpha);
return _out;

View File

@ -3,30 +3,30 @@ out vec4 sk_FragColor;
in vec4 src;
in vec4 dst;
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_luminance;
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_sda);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_luminance;
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _1_sda);
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa)) + _3_dsa;
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa)) + _2_dsa;
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
float _9_d = _5_lum - _7_minComp;
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / _9_d);
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
float _8_d = _4_lum - _6_minComp;
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / _8_d);
}
if (_8_maxComp > _1_alpha && _8_maxComp != _5_lum) {
vec3 _10_n = (_6_result - _5_lum) * (_1_alpha - _5_lum);
float _11_d = _8_maxComp - _5_lum;
_4_blend_set_color_luminance = _5_lum + _10_n / _11_d;
if (_7_maxComp > _0_alpha && _7_maxComp != _4_lum) {
vec3 _9_n = (_5_result - _4_lum) * (_0_alpha - _4_lum);
float _10_d = _7_maxComp - _4_lum;
_3_blend_set_color_luminance = _4_lum + _9_n / _10_d;
} else {
_4_blend_set_color_luminance = _6_result;
_3_blend_set_color_luminance = _5_result;
}
sk_FragColor = vec4((((_4_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_3_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);
}

View File

@ -9,7 +9,7 @@ OpName %src "src"
OpName %dst "dst"
OpName %_blend_overlay_component "_blend_overlay_component"
OpName %main "main"
OpName %_1_result "_1_result"
OpName %_0_result "_0_result"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -130,7 +130,7 @@ OpReturnValue %56
OpFunctionEnd
%main = OpFunction %void None %58
%59 = OpLabel
%_1_result = OpVariable %_ptr_Function_v4float Function
%_0_result = OpVariable %_ptr_Function_v4float Function
%64 = OpVariable %_ptr_Function_v2float Function
%67 = OpVariable %_ptr_Function_v2float Function
%71 = OpVariable %_ptr_Function_v2float Function
@ -168,8 +168,8 @@ OpStore %81 %80
%91 = OpFMul %float %88 %90
%92 = OpFAdd %float %84 %91
%93 = OpCompositeConstruct %v4float %68 %75 %82 %92
OpStore %_1_result %93
%94 = OpLoad %v4float %_1_result
OpStore %_0_result %93
%94 = OpLoad %v4float %_0_result
%95 = OpVectorShuffle %v3float %94 %94 0 1 2
%97 = OpLoad %v4float %dst
%98 = OpVectorShuffle %v3float %97 %97 0 1 2
@ -185,10 +185,10 @@ OpStore %_1_result %93
%108 = OpVectorTimesScalar %v3float %104 %107
%109 = OpFAdd %v3float %102 %108
%110 = OpFAdd %v3float %95 %109
%111 = OpLoad %v4float %_1_result
%111 = OpLoad %v4float %_0_result
%112 = OpVectorShuffle %v4float %111 %110 4 5 6 3
OpStore %_1_result %112
%113 = OpLoad %v4float %_1_result
OpStore %_0_result %112
%113 = OpLoad %v4float %_0_result
OpStore %sk_FragColor %113
OpReturn
OpFunctionEnd

View File

@ -6,8 +6,8 @@ float _blend_overlay_component(vec2 s, vec2 d) {
return 2.0 * d.x <= d.y ? (2.0 * s.x) * d.x : s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x);
}
void main() {
vec4 _1_result = vec4(_blend_overlay_component(src.xw, dst.xw), _blend_overlay_component(src.yw, dst.yw), _blend_overlay_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
_1_result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
sk_FragColor = _1_result;
vec4 _0_result = vec4(_blend_overlay_component(src.xw, dst.xw), _blend_overlay_component(src.yw, dst.yw), _blend_overlay_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
_0_result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
sk_FragColor = _0_result;
}

View File

@ -16,9 +16,9 @@ float _blend_overlay_component(float2 s, float2 d) {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _1_result = float4(_blend_overlay_component(_in.src.xw, _in.dst.xw), _blend_overlay_component(_in.src.yw, _in.dst.yw), _blend_overlay_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
_1_result.xyz = _1_result.xyz + _in.dst.xyz * (1.0 - _in.src.w) + _in.src.xyz * (1.0 - _in.dst.w);
_out.sk_FragColor = _1_result;
float4 _0_result = float4(_blend_overlay_component(_in.src.xw, _in.dst.xw), _blend_overlay_component(_in.src.yw, _in.dst.yw), _blend_overlay_component(_in.src.zw, _in.dst.zw), _in.src.w + (1.0 - _in.src.w) * _in.dst.w);
_0_result.xyz = _0_result.xyz + _in.dst.xyz * (1.0 - _in.src.w) + _in.src.xyz * (1.0 - _in.dst.w);
_out.sk_FragColor = _0_result;
return _out;
}

View File

@ -6,8 +6,8 @@ float _blend_overlay_component(vec2 s, vec2 d) {
return 2.0 * d.x <= d.y ? (2.0 * s.x) * d.x : s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x);
}
void main() {
vec4 _1_result = vec4(_blend_overlay_component(src.xw, dst.xw), _blend_overlay_component(src.yw, dst.yw), _blend_overlay_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
_1_result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
sk_FragColor = _1_result;
vec4 _0_result = vec4(_blend_overlay_component(src.xw, dst.xw), _blend_overlay_component(src.yw, dst.yw), _blend_overlay_component(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
_0_result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
sk_FragColor = _0_result;
}

View File

@ -8,22 +8,22 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %_blend_set_color_saturation_helper "_blend_set_color_saturation_helper"
OpName %_19_n "_19_n"
OpName %_20_d "_20_d"
OpName %_7_n "_7_n"
OpName %_8_d "_8_d"
OpName %main "main"
OpName %_1_alpha "_1_alpha"
OpName %_2_sda "_2_sda"
OpName %_3_dsa "_3_dsa"
OpName %_4_blend_set_color_saturation "_4_blend_set_color_saturation"
OpName %_5_sat "_5_sat"
OpName %_6_blend_set_color_luminance "_6_blend_set_color_luminance"
OpName %_7_lum "_7_lum"
OpName %_8_result "_8_result"
OpName %_9_minComp "_9_minComp"
OpName %_10_maxComp "_10_maxComp"
OpName %_11_d "_11_d"
OpName %_12_n "_12_n"
OpName %_13_d "_13_d"
OpName %_0_alpha "_0_alpha"
OpName %_1_sda "_1_sda"
OpName %_2_dsa "_2_dsa"
OpName %_3_blend_set_color_saturation "_3_blend_set_color_saturation"
OpName %_4_sat "_4_sat"
OpName %_5_blend_set_color_luminance "_5_blend_set_color_luminance"
OpName %_6_lum "_6_lum"
OpName %_7_result "_7_result"
OpName %_8_minComp "_8_minComp"
OpName %_9_maxComp "_9_maxComp"
OpName %_10_d "_10_d"
OpName %_11_n "_11_n"
OpName %_12_d "_12_d"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -162,8 +162,8 @@ OpDecorate %284 RelaxedPrecision
%18 = OpFunctionParameter %_ptr_Function_v3float
%19 = OpFunctionParameter %_ptr_Function_float
%20 = OpLabel
%_19_n = OpVariable %_ptr_Function_float Function
%_20_d = OpVariable %_ptr_Function_float Function
%_7_n = OpVariable %_ptr_Function_float Function
%_8_d = OpVariable %_ptr_Function_float Function
%21 = OpLoad %v3float %18
%22 = OpCompositeExtract %float %21 0
%23 = OpLoad %v3float %18
@ -179,15 +179,15 @@ OpBranchConditional %25 %26 %27
%34 = OpCompositeExtract %float %33 0
%35 = OpFSub %float %32 %34
%36 = OpFMul %float %30 %35
OpStore %_19_n %36
OpStore %_7_n %36
%38 = OpLoad %v3float %18
%39 = OpCompositeExtract %float %38 2
%40 = OpLoad %v3float %18
%41 = OpCompositeExtract %float %40 0
%42 = OpFSub %float %39 %41
OpStore %_20_d %42
%44 = OpLoad %float %_19_n
%45 = OpLoad %float %_20_d
OpStore %_8_d %42
%44 = OpLoad %float %_7_n
%45 = OpLoad %float %_8_d
%46 = OpFDiv %float %44 %45
%47 = OpLoad %float %19
%48 = OpCompositeConstruct %v3float %float_0 %46 %47
@ -199,11 +199,11 @@ OpUnreachable
OpFunctionEnd
%main = OpFunction %void None %51
%52 = OpLabel
%_1_alpha = OpVariable %_ptr_Function_float Function
%_2_sda = OpVariable %_ptr_Function_v3float Function
%_3_dsa = OpVariable %_ptr_Function_v3float Function
%_4_blend_set_color_saturation = OpVariable %_ptr_Function_v3float Function
%_5_sat = OpVariable %_ptr_Function_float Function
%_0_alpha = OpVariable %_ptr_Function_float Function
%_1_sda = OpVariable %_ptr_Function_v3float Function
%_2_dsa = OpVariable %_ptr_Function_v3float Function
%_3_blend_set_color_saturation = OpVariable %_ptr_Function_v3float Function
%_4_sat = OpVariable %_ptr_Function_float Function
%107 = OpVariable %_ptr_Function_v3float Function
%109 = OpVariable %_ptr_Function_float Function
%121 = OpVariable %_ptr_Function_v3float Function
@ -216,192 +216,192 @@ OpFunctionEnd
%160 = OpVariable %_ptr_Function_float Function
%165 = OpVariable %_ptr_Function_v3float Function
%167 = OpVariable %_ptr_Function_float Function
%_6_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_7_lum = OpVariable %_ptr_Function_float Function
%_8_result = OpVariable %_ptr_Function_v3float Function
%_9_minComp = OpVariable %_ptr_Function_float Function
%_10_maxComp = OpVariable %_ptr_Function_float Function
%_11_d = OpVariable %_ptr_Function_float Function
%_12_n = OpVariable %_ptr_Function_v3float Function
%_13_d = OpVariable %_ptr_Function_float Function
%_5_blend_set_color_luminance = OpVariable %_ptr_Function_v3float Function
%_6_lum = OpVariable %_ptr_Function_float Function
%_7_result = OpVariable %_ptr_Function_v3float Function
%_8_minComp = OpVariable %_ptr_Function_float Function
%_9_maxComp = OpVariable %_ptr_Function_float Function
%_10_d = OpVariable %_ptr_Function_float Function
%_11_n = OpVariable %_ptr_Function_v3float Function
%_12_d = OpVariable %_ptr_Function_float Function
%54 = OpLoad %v4float %dst
%55 = OpCompositeExtract %float %54 3
%56 = OpLoad %v4float %src
%57 = OpCompositeExtract %float %56 3
%58 = OpFMul %float %55 %57
OpStore %_1_alpha %58
OpStore %_0_alpha %58
%60 = OpLoad %v4float %src
%61 = OpVectorShuffle %v3float %60 %60 0 1 2
%62 = OpLoad %v4float %dst
%63 = OpCompositeExtract %float %62 3
%64 = OpVectorTimesScalar %v3float %61 %63
OpStore %_2_sda %64
OpStore %_1_sda %64
%66 = OpLoad %v4float %dst
%67 = OpVectorShuffle %v3float %66 %66 0 1 2
%68 = OpLoad %v4float %src
%69 = OpCompositeExtract %float %68 3
%70 = OpVectorTimesScalar %v3float %67 %69
OpStore %_3_dsa %70
%75 = OpLoad %v3float %_2_sda
OpStore %_2_dsa %70
%75 = OpLoad %v3float %_1_sda
%76 = OpCompositeExtract %float %75 0
%77 = OpLoad %v3float %_2_sda
%77 = OpLoad %v3float %_1_sda
%78 = OpCompositeExtract %float %77 1
%74 = OpExtInst %float %1 FMax %76 %78
%79 = OpLoad %v3float %_2_sda
%79 = OpLoad %v3float %_1_sda
%80 = OpCompositeExtract %float %79 2
%73 = OpExtInst %float %1 FMax %74 %80
%83 = OpLoad %v3float %_2_sda
%83 = OpLoad %v3float %_1_sda
%84 = OpCompositeExtract %float %83 0
%85 = OpLoad %v3float %_2_sda
%85 = OpLoad %v3float %_1_sda
%86 = OpCompositeExtract %float %85 1
%82 = OpExtInst %float %1 FMin %84 %86
%87 = OpLoad %v3float %_2_sda
%87 = OpLoad %v3float %_1_sda
%88 = OpCompositeExtract %float %87 2
%81 = OpExtInst %float %1 FMin %82 %88
%89 = OpFSub %float %73 %81
OpStore %_5_sat %89
%90 = OpLoad %v3float %_3_dsa
OpStore %_4_sat %89
%90 = OpLoad %v3float %_2_dsa
%91 = OpCompositeExtract %float %90 0
%92 = OpLoad %v3float %_3_dsa
%92 = OpLoad %v3float %_2_dsa
%93 = OpCompositeExtract %float %92 1
%94 = OpFOrdLessThanEqual %bool %91 %93
OpSelectionMerge %97 None
OpBranchConditional %94 %95 %96
%95 = OpLabel
%98 = OpLoad %v3float %_3_dsa
%98 = OpLoad %v3float %_2_dsa
%99 = OpCompositeExtract %float %98 1
%100 = OpLoad %v3float %_3_dsa
%100 = OpLoad %v3float %_2_dsa
%101 = OpCompositeExtract %float %100 2
%102 = OpFOrdLessThanEqual %bool %99 %101
OpSelectionMerge %105 None
OpBranchConditional %102 %103 %104
%103 = OpLabel
%106 = OpLoad %v3float %_3_dsa
%106 = OpLoad %v3float %_2_dsa
OpStore %107 %106
%108 = OpLoad %float %_5_sat
%108 = OpLoad %float %_4_sat
OpStore %109 %108
%110 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %107 %109
OpStore %_4_blend_set_color_saturation %110
OpStore %_3_blend_set_color_saturation %110
OpBranch %105
%104 = OpLabel
%111 = OpLoad %v3float %_3_dsa
%111 = OpLoad %v3float %_2_dsa
%112 = OpCompositeExtract %float %111 0
%113 = OpLoad %v3float %_3_dsa
%113 = OpLoad %v3float %_2_dsa
%114 = OpCompositeExtract %float %113 2
%115 = OpFOrdLessThanEqual %bool %112 %114
OpSelectionMerge %118 None
OpBranchConditional %115 %116 %117
%116 = OpLabel
%119 = OpLoad %v3float %_3_dsa
%119 = OpLoad %v3float %_2_dsa
%120 = OpVectorShuffle %v3float %119 %119 0 2 1
OpStore %121 %120
%122 = OpLoad %float %_5_sat
%122 = OpLoad %float %_4_sat
OpStore %123 %122
%124 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %121 %123
%125 = OpVectorShuffle %v3float %124 %124 0 2 1
OpStore %_4_blend_set_color_saturation %125
OpStore %_3_blend_set_color_saturation %125
OpBranch %118
%117 = OpLabel
%126 = OpLoad %v3float %_3_dsa
%126 = OpLoad %v3float %_2_dsa
%127 = OpVectorShuffle %v3float %126 %126 2 0 1
OpStore %128 %127
%129 = OpLoad %float %_5_sat
%129 = OpLoad %float %_4_sat
OpStore %130 %129
%131 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %128 %130
%132 = OpVectorShuffle %v3float %131 %131 1 2 0
OpStore %_4_blend_set_color_saturation %132
OpStore %_3_blend_set_color_saturation %132
OpBranch %118
%118 = OpLabel
OpBranch %105
%105 = OpLabel
OpBranch %97
%96 = OpLabel
%133 = OpLoad %v3float %_3_dsa
%133 = OpLoad %v3float %_2_dsa
%134 = OpCompositeExtract %float %133 0
%135 = OpLoad %v3float %_3_dsa
%135 = OpLoad %v3float %_2_dsa
%136 = OpCompositeExtract %float %135 2
%137 = OpFOrdLessThanEqual %bool %134 %136
OpSelectionMerge %140 None
OpBranchConditional %137 %138 %139
%138 = OpLabel
%141 = OpLoad %v3float %_3_dsa
%141 = OpLoad %v3float %_2_dsa
%142 = OpVectorShuffle %v3float %141 %141 1 0 2
OpStore %143 %142
%144 = OpLoad %float %_5_sat
%144 = OpLoad %float %_4_sat
OpStore %145 %144
%146 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %143 %145
%147 = OpVectorShuffle %v3float %146 %146 1 0 2
OpStore %_4_blend_set_color_saturation %147
OpStore %_3_blend_set_color_saturation %147
OpBranch %140
%139 = OpLabel
%148 = OpLoad %v3float %_3_dsa
%148 = OpLoad %v3float %_2_dsa
%149 = OpCompositeExtract %float %148 1
%150 = OpLoad %v3float %_3_dsa
%150 = OpLoad %v3float %_2_dsa
%151 = OpCompositeExtract %float %150 2
%152 = OpFOrdLessThanEqual %bool %149 %151
OpSelectionMerge %155 None
OpBranchConditional %152 %153 %154
%153 = OpLabel
%156 = OpLoad %v3float %_3_dsa
%156 = OpLoad %v3float %_2_dsa
%157 = OpVectorShuffle %v3float %156 %156 1 2 0
OpStore %158 %157
%159 = OpLoad %float %_5_sat
%159 = OpLoad %float %_4_sat
OpStore %160 %159
%161 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %158 %160
%162 = OpVectorShuffle %v3float %161 %161 2 0 1
OpStore %_4_blend_set_color_saturation %162
OpStore %_3_blend_set_color_saturation %162
OpBranch %155
%154 = OpLabel
%163 = OpLoad %v3float %_3_dsa
%163 = OpLoad %v3float %_2_dsa
%164 = OpVectorShuffle %v3float %163 %163 2 1 0
OpStore %165 %164
%166 = OpLoad %float %_5_sat
%166 = OpLoad %float %_4_sat
OpStore %167 %166
%168 = OpFunctionCall %v3float %_blend_set_color_saturation_helper %165 %167
%169 = OpVectorShuffle %v3float %168 %168 2 1 0
OpStore %_4_blend_set_color_saturation %169
OpStore %_3_blend_set_color_saturation %169
OpBranch %155
%155 = OpLabel
OpBranch %140
%140 = OpLabel
OpBranch %97
%97 = OpLabel
%177 = OpLoad %v3float %_3_dsa
%177 = OpLoad %v3float %_2_dsa
%172 = OpDot %float %176 %177
OpStore %_7_lum %172
%179 = OpLoad %float %_7_lum
%181 = OpLoad %v3float %_4_blend_set_color_saturation
OpStore %_6_lum %172
%179 = OpLoad %float %_6_lum
%181 = OpLoad %v3float %_3_blend_set_color_saturation
%180 = OpDot %float %176 %181
%182 = OpFSub %float %179 %180
%183 = OpLoad %v3float %_4_blend_set_color_saturation
%183 = OpLoad %v3float %_3_blend_set_color_saturation
%184 = OpCompositeConstruct %v3float %182 %182 %182
%185 = OpFAdd %v3float %184 %183
OpStore %_8_result %185
%189 = OpLoad %v3float %_8_result
OpStore %_7_result %185
%189 = OpLoad %v3float %_7_result
%190 = OpCompositeExtract %float %189 0
%191 = OpLoad %v3float %_8_result
%191 = OpLoad %v3float %_7_result
%192 = OpCompositeExtract %float %191 1
%188 = OpExtInst %float %1 FMin %190 %192
%193 = OpLoad %v3float %_8_result
%193 = OpLoad %v3float %_7_result
%194 = OpCompositeExtract %float %193 2
%187 = OpExtInst %float %1 FMin %188 %194
OpStore %_9_minComp %187
%198 = OpLoad %v3float %_8_result
OpStore %_8_minComp %187
%198 = OpLoad %v3float %_7_result
%199 = OpCompositeExtract %float %198 0
%200 = OpLoad %v3float %_8_result
%200 = OpLoad %v3float %_7_result
%201 = OpCompositeExtract %float %200 1
%197 = OpExtInst %float %1 FMax %199 %201
%202 = OpLoad %v3float %_8_result
%202 = OpLoad %v3float %_7_result
%203 = OpCompositeExtract %float %202 2
%196 = OpExtInst %float %1 FMax %197 %203
OpStore %_10_maxComp %196
%205 = OpLoad %float %_9_minComp
OpStore %_9_maxComp %196
%205 = OpLoad %float %_8_minComp
%206 = OpFOrdLessThan %bool %205 %float_0
OpSelectionMerge %208 None
OpBranchConditional %206 %207 %208
%207 = OpLabel
%209 = OpLoad %float %_7_lum
%210 = OpLoad %float %_9_minComp
%209 = OpLoad %float %_6_lum
%210 = OpLoad %float %_8_minComp
%211 = OpFOrdNotEqual %bool %209 %210
OpBranch %208
%208 = OpLabel
@ -409,32 +409,32 @@ OpBranch %208
OpSelectionMerge %214 None
OpBranchConditional %212 %213 %214
%213 = OpLabel
%216 = OpLoad %float %_7_lum
%217 = OpLoad %float %_9_minComp
%216 = OpLoad %float %_6_lum
%217 = OpLoad %float %_8_minComp
%218 = OpFSub %float %216 %217
OpStore %_11_d %218
%219 = OpLoad %float %_7_lum
%220 = OpLoad %v3float %_8_result
%221 = OpLoad %float %_7_lum
OpStore %_10_d %218
%219 = OpLoad %float %_6_lum
%220 = OpLoad %v3float %_7_result
%221 = OpLoad %float %_6_lum
%222 = OpCompositeConstruct %v3float %221 %221 %221
%223 = OpFSub %v3float %220 %222
%224 = OpLoad %float %_7_lum
%225 = OpLoad %float %_11_d
%224 = OpLoad %float %_6_lum
%225 = OpLoad %float %_10_d
%226 = OpFDiv %float %224 %225
%227 = OpVectorTimesScalar %v3float %223 %226
%228 = OpCompositeConstruct %v3float %219 %219 %219
%229 = OpFAdd %v3float %228 %227
OpStore %_8_result %229
OpStore %_7_result %229
OpBranch %214
%214 = OpLabel
%230 = OpLoad %float %_10_maxComp
%231 = OpLoad %float %_1_alpha
%230 = OpLoad %float %_9_maxComp
%231 = OpLoad %float %_0_alpha
%232 = OpFOrdGreaterThan %bool %230 %231
OpSelectionMerge %234 None
OpBranchConditional %232 %233 %234
%233 = OpLabel
%235 = OpLoad %float %_10_maxComp
%236 = OpLoad %float %_7_lum
%235 = OpLoad %float %_9_maxComp
%236 = OpLoad %float %_6_lum
%237 = OpFOrdNotEqual %bool %235 %236
OpBranch %234
%234 = OpLabel
@ -442,43 +442,43 @@ OpBranch %234
OpSelectionMerge %241 None
OpBranchConditional %238 %239 %240
%239 = OpLabel
%243 = OpLoad %v3float %_8_result
%244 = OpLoad %float %_7_lum
%243 = OpLoad %v3float %_7_result
%244 = OpLoad %float %_6_lum
%245 = OpCompositeConstruct %v3float %244 %244 %244
%246 = OpFSub %v3float %243 %245
%247 = OpLoad %float %_1_alpha
%248 = OpLoad %float %_7_lum
%247 = OpLoad %float %_0_alpha
%248 = OpLoad %float %_6_lum
%249 = OpFSub %float %247 %248
%250 = OpVectorTimesScalar %v3float %246 %249
OpStore %_12_n %250
%252 = OpLoad %float %_10_maxComp
%253 = OpLoad %float %_7_lum
OpStore %_11_n %250
%252 = OpLoad %float %_9_maxComp
%253 = OpLoad %float %_6_lum
%254 = OpFSub %float %252 %253
OpStore %_13_d %254
%255 = OpLoad %float %_7_lum
%256 = OpLoad %v3float %_12_n
%257 = OpLoad %float %_13_d
OpStore %_12_d %254
%255 = OpLoad %float %_6_lum
%256 = OpLoad %v3float %_11_n
%257 = OpLoad %float %_12_d
%259 = OpFDiv %float %float_1 %257
%260 = OpVectorTimesScalar %v3float %256 %259
%261 = OpCompositeConstruct %v3float %255 %255 %255
%262 = OpFAdd %v3float %261 %260
OpStore %_6_blend_set_color_luminance %262
OpStore %_5_blend_set_color_luminance %262
OpBranch %241
%240 = OpLabel
%263 = OpLoad %v3float %_8_result
OpStore %_6_blend_set_color_luminance %263
%263 = OpLoad %v3float %_7_result
OpStore %_5_blend_set_color_luminance %263
OpBranch %241
%241 = OpLabel
%264 = OpLoad %v3float %_6_blend_set_color_luminance
%264 = OpLoad %v3float %_5_blend_set_color_luminance
%265 = OpLoad %v4float %dst
%266 = OpVectorShuffle %v3float %265 %265 0 1 2
%267 = OpFAdd %v3float %264 %266
%268 = OpLoad %v3float %_3_dsa
%268 = OpLoad %v3float %_2_dsa
%269 = OpFSub %v3float %267 %268
%270 = OpLoad %v4float %src
%271 = OpVectorShuffle %v3float %270 %270 0 1 2
%272 = OpFAdd %v3float %269 %271
%273 = OpLoad %v3float %_2_sda
%273 = OpLoad %v3float %_1_sda
%274 = OpFSub %v3float %272 %273
%275 = OpCompositeExtract %float %274 0
%276 = OpCompositeExtract %float %274 1
@ -488,7 +488,7 @@ OpBranch %241
%280 = OpLoad %v4float %dst
%281 = OpCompositeExtract %float %280 3
%282 = OpFAdd %float %279 %281
%283 = OpLoad %float %_1_alpha
%283 = OpLoad %float %_0_alpha
%284 = OpFSub %float %282 %283
%285 = OpCompositeConstruct %v4float %275 %276 %277 %284
OpStore %sk_FragColor %285

View File

@ -4,57 +4,57 @@ in vec4 src;
in vec4 dst;
vec3 _blend_set_color_saturation_helper(vec3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _7_n / _8_d, sat);
} else {
return vec3(0.0);
}
}
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_saturation;
float _5_sat = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_saturation;
float _4_sat = max(max(_1_sda.x, _1_sda.y), _1_sda.z) - min(min(_1_sda.x, _1_sda.y), _1_sda.z);
if (_3_dsa.x <= _3_dsa.y) {
if (_3_dsa.y <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _5_sat);
} else if (_3_dsa.x <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _5_sat).xzy;
if (_2_dsa.x <= _2_dsa.y) {
if (_2_dsa.y <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa, _4_sat);
} else if (_2_dsa.x <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.xzy, _4_sat).xzy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _5_sat).yzx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.zxy, _4_sat).yzx;
}
} else if (_3_dsa.x <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _5_sat).yxz;
} else if (_3_dsa.y <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _5_sat).zxy;
} else if (_2_dsa.x <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.yxz, _4_sat).yxz;
} else if (_2_dsa.y <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.yzx, _4_sat).zxy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _5_sat).zyx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.zyx, _4_sat).zyx;
}
vec3 _6_blend_set_color_luminance;
float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
vec3 _5_blend_set_color_luminance;
float _6_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
vec3 _7_result = (_6_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_blend_set_color_saturation)) + _3_blend_set_color_saturation;
float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
float _11_d = _7_lum - _9_minComp;
_8_result = _7_lum + (_8_result - _7_lum) * (_7_lum / _11_d);
float _8_minComp = min(min(_7_result.x, _7_result.y), _7_result.z);
float _9_maxComp = max(max(_7_result.x, _7_result.y), _7_result.z);
if (_8_minComp < 0.0 && _6_lum != _8_minComp) {
float _10_d = _6_lum - _8_minComp;
_7_result = _6_lum + (_7_result - _6_lum) * (_6_lum / _10_d);
}
if (_10_maxComp > _1_alpha && _10_maxComp != _7_lum) {
vec3 _12_n = (_8_result - _7_lum) * (_1_alpha - _7_lum);
float _13_d = _10_maxComp - _7_lum;
_6_blend_set_color_luminance = _7_lum + _12_n / _13_d;
if (_9_maxComp > _0_alpha && _9_maxComp != _6_lum) {
vec3 _11_n = (_7_result - _6_lum) * (_0_alpha - _6_lum);
float _12_d = _9_maxComp - _6_lum;
_5_blend_set_color_luminance = _6_lum + _11_n / _12_d;
} else {
_6_blend_set_color_luminance = _8_result;
_5_blend_set_color_luminance = _7_result;
}
sk_FragColor = vec4((((_6_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_5_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);

View File

@ -10,9 +10,9 @@ struct Outputs {
};
float3 _blend_set_color_saturation_helper(float3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return float3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return float3(0.0, _7_n / _8_d, sat);
} else {
return float3(0.0);
@ -23,48 +23,48 @@ float3 _blend_set_color_saturation_helper(float3 minMidMax, float sat) {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float _1_alpha = _in.dst.w * _in.src.w;
float3 _2_sda = _in.src.xyz * _in.dst.w;
float3 _3_dsa = _in.dst.xyz * _in.src.w;
float3 _4_blend_set_color_saturation;
float _5_sat = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
float _0_alpha = _in.dst.w * _in.src.w;
float3 _1_sda = _in.src.xyz * _in.dst.w;
float3 _2_dsa = _in.dst.xyz * _in.src.w;
float3 _3_blend_set_color_saturation;
float _4_sat = max(max(_1_sda.x, _1_sda.y), _1_sda.z) - min(min(_1_sda.x, _1_sda.y), _1_sda.z);
if (_3_dsa.x <= _3_dsa.y) {
if (_3_dsa.y <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _5_sat);
} else if (_3_dsa.x <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _5_sat).xzy;
if (_2_dsa.x <= _2_dsa.y) {
if (_2_dsa.y <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa, _4_sat);
} else if (_2_dsa.x <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.xzy, _4_sat).xzy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _5_sat).yzx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.zxy, _4_sat).yzx;
}
} else if (_3_dsa.x <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _5_sat).yxz;
} else if (_3_dsa.y <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _5_sat).zxy;
} else if (_2_dsa.x <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.yxz, _4_sat).yxz;
} else if (_2_dsa.y <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.yzx, _4_sat).zxy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _5_sat).zyx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.zyx, _4_sat).zyx;
}
float3 _6_blend_set_color_luminance;
float _7_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
float3 _5_blend_set_color_luminance;
float _6_lum = dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
float3 _8_result = (_7_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
float3 _7_result = (_6_lum - dot(float3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_blend_set_color_saturation)) + _3_blend_set_color_saturation;
float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
float _11_d = _7_lum - _9_minComp;
_8_result = _7_lum + (_8_result - _7_lum) * (_7_lum / _11_d);
float _8_minComp = min(min(_7_result.x, _7_result.y), _7_result.z);
float _9_maxComp = max(max(_7_result.x, _7_result.y), _7_result.z);
if (_8_minComp < 0.0 && _6_lum != _8_minComp) {
float _10_d = _6_lum - _8_minComp;
_7_result = _6_lum + (_7_result - _6_lum) * (_6_lum / _10_d);
}
if (_10_maxComp > _1_alpha && _10_maxComp != _7_lum) {
float3 _12_n = (_8_result - _7_lum) * (_1_alpha - _7_lum);
float _13_d = _10_maxComp - _7_lum;
_6_blend_set_color_luminance = _7_lum + _12_n / _13_d;
if (_9_maxComp > _0_alpha && _9_maxComp != _6_lum) {
float3 _11_n = (_7_result - _6_lum) * (_0_alpha - _6_lum);
float _12_d = _9_maxComp - _6_lum;
_5_blend_set_color_luminance = _6_lum + _11_n / _12_d;
} else {
_6_blend_set_color_luminance = _8_result;
_5_blend_set_color_luminance = _7_result;
}
_out.sk_FragColor = float4((((_6_blend_set_color_luminance + _in.dst.xyz) - _3_dsa) + _in.src.xyz) - _2_sda, (_in.src.w + _in.dst.w) - _1_alpha);
_out.sk_FragColor = float4((((_5_blend_set_color_luminance + _in.dst.xyz) - _2_dsa) + _in.src.xyz) - _1_sda, (_in.src.w + _in.dst.w) - _0_alpha);

View File

@ -4,57 +4,57 @@ in vec4 src;
in vec4 dst;
vec3 _blend_set_color_saturation_helper(vec3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _7_n / _8_d, sat);
} else {
return vec3(0.0);
}
}
void main() {
float _1_alpha = dst.w * src.w;
vec3 _2_sda = src.xyz * dst.w;
vec3 _3_dsa = dst.xyz * src.w;
vec3 _4_blend_set_color_saturation;
float _5_sat = max(max(_2_sda.x, _2_sda.y), _2_sda.z) - min(min(_2_sda.x, _2_sda.y), _2_sda.z);
float _0_alpha = dst.w * src.w;
vec3 _1_sda = src.xyz * dst.w;
vec3 _2_dsa = dst.xyz * src.w;
vec3 _3_blend_set_color_saturation;
float _4_sat = max(max(_1_sda.x, _1_sda.y), _1_sda.z) - min(min(_1_sda.x, _1_sda.y), _1_sda.z);
if (_3_dsa.x <= _3_dsa.y) {
if (_3_dsa.y <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa, _5_sat);
} else if (_3_dsa.x <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.xzy, _5_sat).xzy;
if (_2_dsa.x <= _2_dsa.y) {
if (_2_dsa.y <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa, _4_sat);
} else if (_2_dsa.x <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.xzy, _4_sat).xzy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zxy, _5_sat).yzx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.zxy, _4_sat).yzx;
}
} else if (_3_dsa.x <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yxz, _5_sat).yxz;
} else if (_3_dsa.y <= _3_dsa.z) {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.yzx, _5_sat).zxy;
} else if (_2_dsa.x <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.yxz, _4_sat).yxz;
} else if (_2_dsa.y <= _2_dsa.z) {
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.yzx, _4_sat).zxy;
} else {
_4_blend_set_color_saturation = _blend_set_color_saturation_helper(_3_dsa.zyx, _5_sat).zyx;
_3_blend_set_color_saturation = _blend_set_color_saturation_helper(_2_dsa.zyx, _4_sat).zyx;
}
vec3 _6_blend_set_color_luminance;
float _7_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_dsa);
vec3 _5_blend_set_color_luminance;
float _6_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _2_dsa);
vec3 _8_result = (_7_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _4_blend_set_color_saturation)) + _4_blend_set_color_saturation;
vec3 _7_result = (_6_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), _3_blend_set_color_saturation)) + _3_blend_set_color_saturation;
float _9_minComp = min(min(_8_result.x, _8_result.y), _8_result.z);
float _10_maxComp = max(max(_8_result.x, _8_result.y), _8_result.z);
if (_9_minComp < 0.0 && _7_lum != _9_minComp) {
float _11_d = _7_lum - _9_minComp;
_8_result = _7_lum + (_8_result - _7_lum) * (_7_lum / _11_d);
float _8_minComp = min(min(_7_result.x, _7_result.y), _7_result.z);
float _9_maxComp = max(max(_7_result.x, _7_result.y), _7_result.z);
if (_8_minComp < 0.0 && _6_lum != _8_minComp) {
float _10_d = _6_lum - _8_minComp;
_7_result = _6_lum + (_7_result - _6_lum) * (_6_lum / _10_d);
}
if (_10_maxComp > _1_alpha && _10_maxComp != _7_lum) {
vec3 _12_n = (_8_result - _7_lum) * (_1_alpha - _7_lum);
float _13_d = _10_maxComp - _7_lum;
_6_blend_set_color_luminance = _7_lum + _12_n / _13_d;
if (_9_maxComp > _0_alpha && _9_maxComp != _6_lum) {
vec3 _11_n = (_7_result - _6_lum) * (_0_alpha - _6_lum);
float _12_d = _9_maxComp - _6_lum;
_5_blend_set_color_luminance = _6_lum + _11_n / _12_d;
} else {
_6_blend_set_color_luminance = _8_result;
_5_blend_set_color_luminance = _7_result;
}
sk_FragColor = vec4((((_6_blend_set_color_luminance + dst.xyz) - _3_dsa) + src.xyz) - _2_sda, (src.w + dst.w) - _1_alpha);
sk_FragColor = vec4((((_5_blend_set_color_luminance + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha);

View File

@ -8,12 +8,12 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %src "src"
OpName %dst "dst"
OpName %_soft_light_component "_soft_light_component"
OpName %_8_n "_8_n"
OpName %_2_n "_2_n"
OpName %DSqd "DSqd"
OpName %DCub "DCub"
OpName %DaSqd "DaSqd"
OpName %DaCub "DaCub"
OpName %_10_n "_10_n"
OpName %_3_n "_3_n"
OpName %main "main"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
@ -168,12 +168,12 @@ OpDecorate %229 RelaxedPrecision
%17 = OpFunctionParameter %_ptr_Function_v2float
%18 = OpFunctionParameter %_ptr_Function_v2float
%19 = OpLabel
%_8_n = OpVariable %_ptr_Function_float Function
%_2_n = OpVariable %_ptr_Function_float Function
%DSqd = OpVariable %_ptr_Function_float Function
%DCub = OpVariable %_ptr_Function_float Function
%DaSqd = OpVariable %_ptr_Function_float Function
%DaCub = OpVariable %_ptr_Function_float Function
%_10_n = OpVariable %_ptr_Function_float Function
%_3_n = OpVariable %_ptr_Function_float Function
%21 = OpLoad %v2float %17
%22 = OpCompositeExtract %float %21 0
%23 = OpFMul %float %float_2 %22
@ -195,8 +195,8 @@ OpBranchConditional %26 %27 %28
%41 = OpFMul %float %float_2 %40
%42 = OpFSub %float %38 %41
%43 = OpFMul %float %36 %42
OpStore %_8_n %43
%44 = OpLoad %float %_8_n
OpStore %_2_n %43
%44 = OpLoad %float %_2_n
%45 = OpLoad %v2float %18
%46 = OpCompositeExtract %float %45 1
%47 = OpFDiv %float %44 %46
@ -296,8 +296,8 @@ OpStore %DaCub %99
%146 = OpCompositeExtract %float %145 0
%147 = OpFMul %float %144 %146
%148 = OpFSub %float %143 %147
OpStore %_10_n %148
%149 = OpLoad %float %_10_n
OpStore %_3_n %148
%149 = OpLoad %float %_3_n
%150 = OpLoad %float %DaSqd
%151 = OpFDiv %float %149 %150
OpReturnValue %151

View File

@ -4,16 +4,16 @@ in vec4 src;
in vec4 dst;
float _soft_light_component(vec2 s, vec2 d) {
if (2.0 * s.x <= s.y) {
float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
float _2_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_2_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
} else if (4.0 * d.x <= d.y) {
float DSqd = d.x * d.x;
float DCub = DSqd * d.x;
float DaSqd = d.y * d.y;
float DaCub = DaSqd * d.y;
float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _10_n / DaSqd;
float _3_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _3_n / DaSqd;
} else {
return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;

View File

@ -10,16 +10,16 @@ struct Outputs {
};
float _soft_light_component(float2 s, float2 d) {
if (2.0 * s.x <= s.y) {
float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
float _2_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_2_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
} else if (4.0 * d.x <= d.y) {
float DSqd = d.x * d.x;
float DCub = DSqd * d.x;
float DaSqd = d.y * d.y;
float DaCub = DaSqd * d.y;
float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _10_n / DaSqd;
float _3_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _3_n / DaSqd;
} else {
return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;

View File

@ -4,16 +4,16 @@ in vec4 src;
in vec4 dst;
float _soft_light_component(vec2 s, vec2 d) {
if (2.0 * s.x <= s.y) {
float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
float _2_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_2_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
} else if (4.0 * d.x <= d.y) {
float DSqd = d.x * d.x;
float DCub = DSqd * d.x;
float DaSqd = d.y * d.y;
float DaCub = DaSqd * d.y;
float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _10_n / DaSqd;
float _3_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _3_n / DaSqd;
} else {
return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;

View File

@ -3,69 +3,69 @@ out vec4 sk_FragColor;
uniform vec4 colorRed;
uniform vec4 colorGreen;
vec4 main() {
bool _1_ok = true;
float _2_x = 34.0;
_1_ok = true;
_2_x = 30.0;
_1_ok = true;
_2_x = 64.0;
_1_ok = true;
_2_x = 16.0;
_1_ok = true;
_2_x = 19.0;
_1_ok = true;
_2_x = 1.0;
_1_ok = true;
_2_x = -2.0;
_1_ok = true;
_2_x = 3.0;
_1_ok = true;
_2_x = -4.0;
_1_ok = true;
_2_x = 5.0;
_1_ok = true;
_2_x = -6.0;
_1_ok = true;
_2_x = 7.0;
_1_ok = true;
_2_x = -8.0;
_1_ok = true;
_2_x = 9.0;
_1_ok = true;
_2_x = -10.0;
_1_ok = true;
_2_x = 11.0;
_1_ok = true;
_2_x = -12.0;
_1_ok = true;
float _3_unknown = sqrt(4.0);
_2_x = _3_unknown;
_1_ok = _2_x == _3_unknown;
_2_x = _3_unknown;
_1_ok = _1_ok && _2_x == _3_unknown;
_2_x = _3_unknown;
_1_ok = _1_ok && _2_x == _3_unknown;
_2_x = 0.0;
_2_x = _3_unknown;
_1_ok = _1_ok && _2_x == _3_unknown;
_2_x = _3_unknown;
_1_ok = _1_ok && _2_x == _3_unknown;
_2_x = 0.0;
_2_x = _3_unknown;
_1_ok = _1_ok && _2_x == _3_unknown;
_2_x = 0.0;
_2_x += 1.0;
_1_ok = _1_ok && _2_x == 1.0;
_1_ok = _1_ok && _2_x == 1.0;
_2_x -= 2.0;
_1_ok = _1_ok && _2_x == -1.0;
_1_ok = _1_ok && _2_x == -1.0;
_1_ok = _1_ok && _2_x == -1.0;
_2_x *= 2.0;
_1_ok = _1_ok && _2_x == -2.0;
_1_ok = _1_ok && _2_x == -2.0;
_2_x /= 2.0;
_1_ok = _1_ok && _2_x == -1.0;
return _1_ok ? colorGreen : colorRed;
bool _0_ok = true;
float _1_x = 34.0;
_0_ok = true;
_1_x = 30.0;
_0_ok = true;
_1_x = 64.0;
_0_ok = true;
_1_x = 16.0;
_0_ok = true;
_1_x = 19.0;
_0_ok = true;
_1_x = 1.0;
_0_ok = true;
_1_x = -2.0;
_0_ok = true;
_1_x = 3.0;
_0_ok = true;
_1_x = -4.0;
_0_ok = true;
_1_x = 5.0;
_0_ok = true;
_1_x = -6.0;
_0_ok = true;
_1_x = 7.0;
_0_ok = true;
_1_x = -8.0;
_0_ok = true;
_1_x = 9.0;
_0_ok = true;
_1_x = -10.0;
_0_ok = true;
_1_x = 11.0;
_0_ok = true;
_1_x = -12.0;
_0_ok = true;
float _2_unknown = sqrt(4.0);
_1_x = _2_unknown;
_0_ok = _1_x == _2_unknown;
_1_x = _2_unknown;
_0_ok = _0_ok && _1_x == _2_unknown;
_1_x = _2_unknown;
_0_ok = _0_ok && _1_x == _2_unknown;
_1_x = 0.0;
_1_x = _2_unknown;
_0_ok = _0_ok && _1_x == _2_unknown;
_1_x = _2_unknown;
_0_ok = _0_ok && _1_x == _2_unknown;
_1_x = 0.0;
_1_x = _2_unknown;
_0_ok = _0_ok && _1_x == _2_unknown;
_1_x = 0.0;
_1_x += 1.0;
_0_ok = _0_ok && _1_x == 1.0;
_0_ok = _0_ok && _1_x == 1.0;
_1_x -= 2.0;
_0_ok = _0_ok && _1_x == -1.0;
_0_ok = _0_ok && _1_x == -1.0;
_0_ok = _0_ok && _1_x == -1.0;
_1_x *= 2.0;
_0_ok = _0_ok && _1_x == -2.0;
_0_ok = _0_ok && _1_x == -2.0;
_1_x /= 2.0;
_0_ok = _0_ok && _1_x == -1.0;
return _0_ok ? colorGreen : colorRed;
}

View File

@ -4,67 +4,67 @@ uniform vec4 colorRed;
uniform vec4 colorGreen;
uniform float unknownInput;
vec4 main() {
int _1_unknown = int(unknownInput);
bool _2_ok = true;
int _3_x = 34;
_2_ok = true;
_3_x = 30;
_2_ok = true;
_3_x = 64;
_2_ok = true;
_3_x = 16;
_2_ok = true;
_3_x = 1;
_2_ok = true;
_3_x = -2;
_2_ok = true;
_3_x = 3;
_2_ok = true;
_3_x = -4;
_2_ok = true;
_3_x = 5;
_2_ok = true;
_3_x = -6;
_2_ok = true;
_3_x = 7;
_2_ok = true;
_3_x = -8;
_2_ok = true;
_3_x = 9;
_2_ok = true;
_3_x = -10;
_2_ok = true;
_3_x = 11;
_2_ok = true;
_3_x = -12;
_2_ok = true;
_3_x = _1_unknown;
_2_ok = _3_x == _1_unknown;
_3_x = _1_unknown;
_2_ok = _2_ok && _3_x == _1_unknown;
_3_x = _1_unknown;
_2_ok = _2_ok && _3_x == _1_unknown;
_3_x = 0;
_3_x = _1_unknown;
_2_ok = _2_ok && _3_x == _1_unknown;
_3_x = _1_unknown;
_2_ok = _2_ok && _3_x == _1_unknown;
_3_x = 0;
_3_x = _1_unknown;
_2_ok = _2_ok && _3_x == _1_unknown;
_3_x = 0;
_3_x += 1;
_2_ok = _2_ok && _3_x == 1;
_2_ok = _2_ok && _3_x == 1;
_3_x -= 2;
_2_ok = _2_ok && _3_x == -1;
_2_ok = _2_ok && _3_x == -1;
_2_ok = _2_ok && _3_x == -1;
_3_x *= 2;
_2_ok = _2_ok && _3_x == -2;
_2_ok = _2_ok && _3_x == -2;
_3_x /= 2;
_2_ok = _2_ok && _3_x == -1;
return _2_ok ? colorGreen : colorRed;
int _0_unknown = int(unknownInput);
bool _1_ok = true;
int _2_x = 34;
_1_ok = true;
_2_x = 30;
_1_ok = true;
_2_x = 64;
_1_ok = true;
_2_x = 16;
_1_ok = true;
_2_x = 1;
_1_ok = true;
_2_x = -2;
_1_ok = true;
_2_x = 3;
_1_ok = true;
_2_x = -4;
_1_ok = true;
_2_x = 5;
_1_ok = true;
_2_x = -6;
_1_ok = true;
_2_x = 7;
_1_ok = true;
_2_x = -8;
_1_ok = true;
_2_x = 9;
_1_ok = true;
_2_x = -10;
_1_ok = true;
_2_x = 11;
_1_ok = true;
_2_x = -12;
_1_ok = true;
_2_x = _0_unknown;
_1_ok = _2_x == _0_unknown;
_2_x = _0_unknown;
_1_ok = _1_ok && _2_x == _0_unknown;
_2_x = _0_unknown;
_1_ok = _1_ok && _2_x == _0_unknown;
_2_x = 0;
_2_x = _0_unknown;
_1_ok = _1_ok && _2_x == _0_unknown;
_2_x = _0_unknown;
_1_ok = _1_ok && _2_x == _0_unknown;
_2_x = 0;
_2_x = _0_unknown;
_1_ok = _1_ok && _2_x == _0_unknown;
_2_x = 0;
_2_x += 1;
_1_ok = _1_ok && _2_x == 1;
_1_ok = _1_ok && _2_x == 1;
_2_x -= 2;
_1_ok = _1_ok && _2_x == -1;
_1_ok = _1_ok && _2_x == -1;
_1_ok = _1_ok && _2_x == -1;
_2_x *= 2;
_1_ok = _1_ok && _2_x == -2;
_1_ok = _1_ok && _2_x == -2;
_2_x /= 2;
_1_ok = _1_ok && _2_x == -1;
return _1_ok ? colorGreen : colorRed;
}

View File

@ -4,116 +4,116 @@ uniform vec4 colorRed;
uniform vec4 colorGreen;
uniform float unknownInput;
vec4 main() {
bool _1_expr = unknownInput > 0.0;
int _2_ok = 0;
int _3_bad = 0;
bool _0_expr = unknownInput > 0.0;
int _1_ok = 0;
int _2_bad = 0;
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
{
++_2_ok;
++_1_ok;
}
if (true ^^ _1_expr) {
++_3_bad;
if (true ^^ _0_expr) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
{
++_2_ok;
++_1_ok;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
if (false == _1_expr) {
++_3_bad;
if (false == _0_expr) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
if (true != _1_expr) {
++_3_bad;
if (true != _0_expr) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
{
++_2_ok;
++_1_ok;
}
if (_1_expr ^^ true) {
++_3_bad;
if (_0_expr ^^ true) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
{
++_2_ok;
++_1_ok;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
if (_1_expr == false) {
++_3_bad;
if (_0_expr == false) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
if (_1_expr != true) {
++_3_bad;
if (_0_expr != true) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
if (_1_expr) {
++_2_ok;
if (_0_expr) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
float _4_a = sqrt(1.0);
float _5_b = sqrt(2.0);
float _3_a = sqrt(1.0);
float _4_b = sqrt(2.0);
if (_4_a == _5_b) {
++_3_bad;
if (_3_a == _4_b) {
++_2_bad;
} else {
++_2_ok;
++_1_ok;
}
bool(_4_a = _5_b) || true;
if (_4_a == _5_b) {
++_2_ok;
bool(_3_a = _4_b) || true;
if (_3_a == _4_b) {
++_1_ok;
} else {
++_3_bad;
++_2_bad;
}
return _2_ok == 22 && _3_bad == 0 ? colorGreen : colorRed;
return _1_ok == 22 && _2_bad == 0 ? colorGreen : colorRed;
}

View File

@ -64,63 +64,63 @@ bool test_int() {
return ok;
}
vec4 main() {
bool _1_ok = true;
vec4 _2_x = vec4(6.0, 6.0, 7.0, 8.0);
_1_ok = true;
_2_x = vec4(7.0, 9.0, 9.0, 9.0);
_1_ok = true;
_2_x = vec4(9.0, 9.0, 10.0, 10.0);
_1_ok = true;
_2_x.xyz = vec3(6.0, 6.0, 6.0);
_1_ok = _2_x == vec4(6.0, 6.0, 6.0, 10.0);
_2_x.xy = vec2(3.0, 3.0);
_1_ok = _1_ok && _2_x == vec4(3.0, 3.0, 6.0, 10.0);
_2_x = vec4(6.0, 6.0, 6.0, 6.0);
_2_x = vec4(6.0, 6.0, 7.0, 8.0);
_2_x = vec4(-7.0, -9.0, -9.0, -9.0);
_2_x = vec4(9.0, 9.0, 10.0, 10.0);
_2_x.xyz = vec3(6.0, 6.0, 6.0);
_1_ok = _1_ok && _2_x == vec4(6.0, 6.0, 6.0, 10.0);
_2_x.xy = vec2(8.0, 8.0);
_1_ok = _1_ok && _2_x == vec4(8.0, 8.0, 6.0, 10.0);
_2_x = vec4(2.0, 1.0, 0.5, 0.25);
_2_x = vec4(6.0, 6.0, 6.0, 6.0);
float _3_unknown = unknownInput;
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(0.0);
_2_x = vec4(0.0);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(0.0);
_2_x = vec4(0.0);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(0.0);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_2_x += 1.0;
_2_x -= 1.0;
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
_2_x = vec4(_3_unknown);
_2_x = _2_x + 1.0;
_2_x = _2_x - 1.0;
_1_ok = _1_ok && _2_x == vec4(_3_unknown);
return _1_ok && test_int() ? colorGreen : colorRed;
bool _0_ok = true;
vec4 _1_x = vec4(6.0, 6.0, 7.0, 8.0);
_0_ok = true;
_1_x = vec4(7.0, 9.0, 9.0, 9.0);
_0_ok = true;
_1_x = vec4(9.0, 9.0, 10.0, 10.0);
_0_ok = true;
_1_x.xyz = vec3(6.0, 6.0, 6.0);
_0_ok = _1_x == vec4(6.0, 6.0, 6.0, 10.0);
_1_x.xy = vec2(3.0, 3.0);
_0_ok = _0_ok && _1_x == vec4(3.0, 3.0, 6.0, 10.0);
_1_x = vec4(6.0, 6.0, 6.0, 6.0);
_1_x = vec4(6.0, 6.0, 7.0, 8.0);
_1_x = vec4(-7.0, -9.0, -9.0, -9.0);
_1_x = vec4(9.0, 9.0, 10.0, 10.0);
_1_x.xyz = vec3(6.0, 6.0, 6.0);
_0_ok = _0_ok && _1_x == vec4(6.0, 6.0, 6.0, 10.0);
_1_x.xy = vec2(8.0, 8.0);
_0_ok = _0_ok && _1_x == vec4(8.0, 8.0, 6.0, 10.0);
_1_x = vec4(2.0, 1.0, 0.5, 0.25);
_1_x = vec4(6.0, 6.0, 6.0, 6.0);
float _2_unknown = unknownInput;
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(0.0);
_1_x = vec4(0.0);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(0.0);
_1_x = vec4(0.0);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(0.0);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_1_x += 1.0;
_1_x -= 1.0;
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
_1_x = vec4(_2_unknown);
_1_x = _1_x + 1.0;
_1_x = _1_x - 1.0;
_0_ok = _0_ok && _1_x == vec4(_2_unknown);
return _0_ok && test_int() ? colorGreen : colorRed;
}

View File

@ -52,51 +52,51 @@ bool test_int() {
return ok;
}
vec4 main() {
float _1_unknown = unknownInput;
bool _2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = true;
_2_ok = vec4(_1_unknown) == vec4(_1_unknown);
_2_ok = _2_ok && vec4(_1_unknown) == vec4(_1_unknown);
_2_ok = _2_ok && vec4(_1_unknown) == vec4(_1_unknown);
_2_ok = _2_ok && vec4(_1_unknown) == vec4(_1_unknown);
_2_ok = _2_ok && vec4(_1_unknown) == vec4(_1_unknown);
vec4 _3_val = vec4(_1_unknown);
_3_val += vec4(1.0);
_3_val -= vec4(1.0);
_3_val = _3_val + vec4(1.0);
_3_val = _3_val - vec4(1.0);
_2_ok = _2_ok && _3_val == vec4(_1_unknown);
_3_val *= vec4(2.0);
_3_val /= vec4(2.0);
_3_val = _3_val * vec4(2.0);
_3_val = _3_val / vec4(2.0);
_2_ok = _2_ok && _3_val == vec4(_1_unknown);
return _2_ok && test_int() ? colorGreen : colorRed;
float _0_unknown = unknownInput;
bool _1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = true;
_1_ok = vec4(_0_unknown) == vec4(_0_unknown);
_1_ok = _1_ok && vec4(_0_unknown) == vec4(_0_unknown);
_1_ok = _1_ok && vec4(_0_unknown) == vec4(_0_unknown);
_1_ok = _1_ok && vec4(_0_unknown) == vec4(_0_unknown);
_1_ok = _1_ok && vec4(_0_unknown) == vec4(_0_unknown);
vec4 _2_val = vec4(_0_unknown);
_2_val += vec4(1.0);
_2_val -= vec4(1.0);
_2_val = _2_val + vec4(1.0);
_2_val = _2_val - vec4(1.0);
_1_ok = _1_ok && _2_val == vec4(_0_unknown);
_2_val *= vec4(2.0);
_2_val /= vec4(2.0);
_2_val = _2_val * vec4(2.0);
_2_val = _2_val / vec4(2.0);
_1_ok = _1_ok && _2_val == vec4(_0_unknown);
return _1_ok && test_int() ? colorGreen : colorRed;
}

View File

@ -2,10 +2,10 @@
out vec4 sk_FragColor;
uniform int value;
void main() {
vec4 _1_result = vec4(1.0);
for (int _2_x = 0;_2_x < 5; ++_2_x) {
if (_2_x == value) _1_result = vec4(0.5);
vec4 _0_result = vec4(1.0);
for (int _1_x = 0;_1_x < 5; ++_1_x) {
if (_1_x == value) _0_result = vec4(0.5);
}
sk_FragColor = _1_result;
sk_FragColor = _0_result;
}

View File

@ -1,8 +1,8 @@
out vec4 sk_FragColor;
void main() {
float _1_x = 1.0;
_1_x *= 2.0;
sk_FragColor.x = _1_x;
float _0_x = 1.0;
_0_x *= 2.0;
sk_FragColor.x = _0_x;
}

View File

@ -2,7 +2,43 @@
out vec4 sk_FragColor;
uniform float val;
void main() {
float _1_x = val;
float _0_x = val;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
++_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
--_0_x;
_0_x = 456.0;
float _1_x = 456.0;
++_1_x;
++_1_x;
++_1_x;
@ -37,43 +73,7 @@ void main() {
--_1_x;
--_1_x;
--_1_x;
_1_x = 456.0;
float _3_x = 456.0;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
++_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
--_3_x;
_3_x = 123.0;
_1_x = 123.0;
sk_FragColor = vec4(123.0);

View File

@ -1,42 +1,42 @@
out vec4 sk_FragColor;
void main() {
float _2_y = 0.0;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
++_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
--_2_y;
_2_y = 42.0;
float _0_y = 0.0;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
++_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
--_0_y;
_0_y = 42.0;
sk_FragColor.x = 0.0;

View File

@ -2,9 +2,9 @@
out vec4 sk_FragColor;
in vec2 x;
vec4 main() {
vec2 _3_reusedName = x + vec2(1.0, 2.0);
vec2 _5_reusedName = _3_reusedName + vec2(3.0, 4.0);
vec2 _1_reusedName = x + vec2(1.0, 2.0);
vec2 _2_reusedName = _1_reusedName + vec2(3.0, 4.0);
return _5_reusedName.xyxy;
return _2_reusedName.xyxy;
}

View File

@ -16,14 +16,14 @@ vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
float minComp = min(min(result.x, result.y), result.z);
float maxComp = max(max(result.x, result.y), result.z);
if (minComp < 0.0 && lum != minComp) {
float _14_d = lum - minComp;
result = lum + (result - lum) * (lum / _14_d);
float _4_d = lum - minComp;
result = lum + (result - lum) * (lum / _4_d);
}
if (maxComp > alpha && maxComp != lum) {
vec3 _16_n = (result - lum) * (alpha - lum);
float _17_d = maxComp - lum;
return lum + _16_n / _17_d;
vec3 _5_n = (result - lum) * (alpha - lum);
float _6_d = maxComp - lum;
return lum + _5_n / _6_d;
} else {
return result;
@ -31,9 +31,9 @@ vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
}
vec3 _blend_set_color_saturation_helper(vec3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _7_n / _8_d, sat);
} else {
return vec3(0.0);

View File

@ -9,14 +9,14 @@ vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
float minComp = min(min(result.x, result.y), result.z);
float maxComp = max(max(result.x, result.y), result.z);
if (minComp < 0.0 && lum != minComp) {
float _14_d = lum - minComp;
result = lum + (result - lum) * (lum / _14_d);
float _4_d = lum - minComp;
result = lum + (result - lum) * (lum / _4_d);
}
if (maxComp > alpha && maxComp != lum) {
vec3 _16_n = (result - lum) * (alpha - lum);
float _17_d = maxComp - lum;
return lum + _16_n / _17_d;
vec3 _5_n = (result - lum) * (alpha - lum);
float _6_d = maxComp - lum;
return lum + _5_n / _6_d;
} else {
return result;
@ -24,9 +24,9 @@ vec3 _blend_set_color_luminance(vec3 hueSatColor, float alpha, vec3 lumColor) {
}
vec3 _blend_set_color_saturation_helper(vec3 minMidMax, float sat) {
if (minMidMax.x < minMidMax.z) {
float _19_n = sat * (minMidMax.y - minMidMax.x);
float _20_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _19_n / _20_d, sat);
float _7_n = sat * (minMidMax.y - minMidMax.x);
float _8_d = minMidMax.z - minMidMax.x;
return vec3(0.0, _7_n / _8_d, sat);
} else {
return vec3(0.0);
@ -58,9 +58,9 @@ vec4 blend_hue(vec4 src, vec4 dst) {
return vec4((((_blend_set_color_luminance(_blend_set_color_saturation(sda, dsa), alpha, dsa) + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
}
void main() {
float _7_a = color.x * color.y;
float _8_c = _7_a + color.z;
sk_FragColor = vec4(_8_c);
float _0_a = color.x * color.y;
float _1_c = _0_a + color.z;
sk_FragColor = vec4(_1_c);
sk_FragColor *= 1.25;

View File

@ -2,11 +2,11 @@
out vec4 sk_FragColor;
uniform vec4 color;
void main() {
vec4 _1_c = color;
vec4 _0_c = color;
{
vec4 _2_d = _1_c * 0.75;
_1_c = _2_d;
vec4 _1_d = _0_c * 0.75;
_0_c = _1_d;
}
sk_FragColor = _1_c.xxxx;
sk_FragColor = _0_c.xxxx;
}

View File

@ -2,23 +2,23 @@
out vec4 sk_FragColor;
uniform vec4 color;
vec4 main() {
float _9_a = color.x * color.y;
float _10_c = _9_a + color.z;
float a = _10_c;
float _0_a = color.x * color.y;
float _1_c = _0_a + color.z;
float a = _1_c;
float _12_a = color.y * color.z;
float _13_c = _12_a + color.w;
float b = _13_c;
float _2_a = color.y * color.z;
float _3_c = _2_a + color.w;
float b = _3_c;
float _15_a = color.z * color.w;
float _16_c = _15_a + color.x;
float c = _16_c;
float _4_a = color.z * color.w;
float _5_c = _4_a + color.x;
float c = _5_c;
float _19_b = b * c;
return vec4(a, b, c * c, a * _19_b);
float _6_b = b * c;
return vec4(a, b, c * c, a * _6_b);

View File

@ -8,11 +8,11 @@ struct Color {
float alpha;
};
void main() {
Color _1_c;
_1_c.red = 0.25;
_1_c.green = 0.5;
_1_c.blue = 0.75;
_1_c.alpha = 1.0;
sk_FragColor = vec4(_1_c.red, _1_c.green, _1_c.blue, _1_c.alpha);
Color _0_c;
_0_c.red = 0.25;
_0_c.green = 0.5;
_0_c.blue = 0.75;
_0_c.alpha = 1.0;
sk_FragColor = vec4(_0_c.red, _0_c.green, _0_c.blue, _0_c.alpha);
}

View File

@ -2,15 +2,15 @@
out vec4 sk_FragColor;
uniform vec4 color;
void main() {
vec4 _1_result;
vec4 _0_result;
switch (int(color.x)) {
case 1:
_1_result = color.yyyy;
_0_result = color.yyyy;
break;
default:
_1_result = color.zzzz;
_0_result = color.zzzz;
break;
}
sk_FragColor = _1_result;
sk_FragColor = _0_result;
}

View File

@ -2,11 +2,11 @@
out vec4 sk_FragColor;
uniform int value;
void main() {
vec4 _1_result = vec4(1.0);
vec4 _0_result = vec4(1.0);
switch (value) {
case 0:
_1_result = vec4(0.5);
_0_result = vec4(0.5);
}
sk_FragColor = _1_result;
sk_FragColor = _0_result;
}

View File

@ -4,23 +4,23 @@ uniform float u3[4];
uniform float u4[16];
float4 main()
{
float _2_sum = 0.0;
for (int _3_i = 3;_3_i >= 0; --_3_i)
float _0_sum = 0.0;
for (int _1_i = 3;_1_i >= 0; --_1_i)
{
_2_sum += u2[_3_i];
_0_sum += u2[_1_i];
}
float _5_prod = 1.0;
for (int _6_i = 0;_6_i < 4; ++_6_i)
float _2_prod = 1.0;
for (int _3_i = 0;_3_i < 4; ++_3_i)
{
_5_prod *= u3[_6_i < 2 ? 0 : _6_i];
_2_prod *= u3[_3_i < 2 ? 0 : _3_i];
}
float _8_sum = 0.0;
for (float _9_f = -2.2999999523162842;_9_f < 17.0; _9_f += 3.7000000476837158)
float _4_sum = 0.0;
for (float _5_f = -2.2999999523162842;_5_f < 17.0; _5_f += 3.7000000476837158)
{
if (_9_f > 0.0 && _9_f < 16.0)
if (_5_f > 0.0 && _5_f < 16.0)
{
_8_sum -= u4[int(_9_f)];
_4_sum -= u4[int(_5_f)];
}
}
return half4(float4(u1[0], _2_sum, _5_prod, _8_sum));
return half4(float4(u1[0], _0_sum, _2_prod, _4_sum));
}

View File

@ -11,28 +11,28 @@ float return_loop_0()
}
half4 main()
{
float _1_sum = 0.0;
for (float _2_i = 0.0;_2_i < 10.0; ++_2_i)
float _0_sum = 0.0;
for (float _1_i = 0.0;_1_i < 10.0; ++_1_i)
{
if (_2_i < 5.0)
if (_1_i < 5.0)
{
continue;
}
_1_sum += _2_i;
_0_sum += _1_i;
}
float _4_sum = 0.0;
for (float _5_i = 0.0;_5_i < 10.0; ++_5_i)
float _2_sum = 0.0;
for (float _3_i = 0.0;_3_i < 10.0; ++_3_i)
{
if (_5_i > 5.0)
if (_3_i > 5.0)
{
break;
}
_2_sum += _3_i;
}
float _4_sum = 0.0;
for (float _5_i = 0.12300000339746475;_5_i < 0.60000002384185791; _5_i += 0.11100000143051147)
{
_4_sum += _5_i;
}
float _7_sum = 0.0;
for (float _8_i = 0.12300000339746475;_8_i < 0.60000002384185791; _8_i += 0.11100000143051147)
{
_7_sum += _8_i;
}
return half4(half4(half(return_loop_0()), half(_1_sum), half(_4_sum), half(_7_sum)));
return half4(half4(half(return_loop_0()), half(_0_sum), half(_2_sum), half(_4_sum)));
}

View File

@ -11,23 +11,23 @@ int return_loop_0()
}
half4 main()
{
int _1_sum = 0;
for (int _2_i = 0;_2_i < 10; ++_2_i)
int _0_sum = 0;
for (int _1_i = 0;_1_i < 10; ++_1_i)
{
if (_2_i < 5)
if (_1_i < 5)
{
continue;
}
_1_sum += _2_i;
_0_sum += _1_i;
}
int _4_sum = 0;
for (int _5_i = 0;_5_i < 10; ++_5_i)
int _2_sum = 0;
for (int _3_i = 0;_3_i < 10; ++_3_i)
{
if (_5_i > 5)
if (_3_i > 5)
{
break;
}
_4_sum += _5_i;
_2_sum += _3_i;
}
return half4(half4(half(return_loop_0()), half(_1_sum), half(_4_sum), 1.0));
return half4(half4(half(return_loop_0()), half(_0_sum), half(_2_sum), 1.0));
}

View File

@ -11,15 +11,15 @@ float index_clamped_out_of_bounds_0()
}
float4 main()
{
float _2_sum = 0.0;
float _0_sum = 0.0;
for (int _1_i = 0;_1_i < 4; ++_1_i)
{
_0_sum += u2[_1_i];
}
float _2_prod = 1.0;
for (int _3_i = 0;_3_i < 4; ++_3_i)
{
_2_sum += u2[_3_i];
_2_prod *= u3[_3_i < 2 ? 0 : _3_i];
}
float _5_prod = 1.0;
for (int _6_i = 0;_6_i < 4; ++_6_i)
{
_5_prod *= u3[_6_i < 2 ? 0 : _6_i];
}
return half4(float4(u1.x, _2_sum, _5_prod, index_clamped_out_of_bounds_0()));
return half4(float4(u1.x, _0_sum, _2_prod, index_clamped_out_of_bounds_0()));
}

View File

@ -16,17 +16,17 @@ OpName %sk_Clockwise "sk_Clockwise"
OpName %uTextureSampler_0_Stage1 "uTextureSampler_0_Stage1"
OpName %vLocalCoord_Stage0 "vLocalCoord_Stage0"
OpName %MatrixEffect_Stage1_c0_c0 "MatrixEffect_Stage1_c0_c0"
OpName %_1_coords "_1_coords"
OpName %_2_inCoord "_2_inCoord"
OpName %_3_subsetCoord "_3_subsetCoord"
OpName %_4_clampedCoord "_4_clampedCoord"
OpName %_5_textureColor "_5_textureColor"
OpName %_6_snappedX "_6_snappedX"
OpName %_0_coords "_0_coords"
OpName %_1_inCoord "_1_inCoord"
OpName %_2_subsetCoord "_2_subsetCoord"
OpName %_3_clampedCoord "_3_clampedCoord"
OpName %_4_textureColor "_4_textureColor"
OpName %_5_snappedX "_5_snappedX"
OpName %main "main"
OpName %output_Stage1 "output_Stage1"
OpName %_8_output "_8_output"
OpName %_9_coord "_9_coord"
OpName %_10_coordSampled "_10_coordSampled"
OpName %_6_output "_6_output"
OpName %_7_coord "_7_coord"
OpName %_8_coordSampled "_8_coordSampled"
OpDecorate %_arr_v4float_int_7 ArrayStride 16
OpMemberDecorate %uniformBuffer 0 Offset 0
OpMemberDecorate %uniformBuffer 1 Offset 16
@ -209,12 +209,12 @@ OpDecorate %497 RelaxedPrecision
%29 = OpFunctionParameter %_ptr_Function_v4float
%30 = OpFunctionParameter %_ptr_Function_v2float
%31 = OpLabel
%_1_coords = OpVariable %_ptr_Function_v2float Function
%_2_inCoord = OpVariable %_ptr_Function_v2float Function
%_3_subsetCoord = OpVariable %_ptr_Function_v2float Function
%_4_clampedCoord = OpVariable %_ptr_Function_v2float Function
%_5_textureColor = OpVariable %_ptr_Function_v4float Function
%_6_snappedX = OpVariable %_ptr_Function_float Function
%_0_coords = OpVariable %_ptr_Function_v2float Function
%_1_inCoord = OpVariable %_ptr_Function_v2float Function
%_2_subsetCoord = OpVariable %_ptr_Function_v2float Function
%_3_clampedCoord = OpVariable %_ptr_Function_v2float Function
%_4_textureColor = OpVariable %_ptr_Function_v4float Function
%_5_snappedX = OpVariable %_ptr_Function_float Function
%34 = OpAccessChain %_ptr_Uniform_mat3v3float %4 %int_3
%36 = OpLoad %mat3v3float %34
%37 = OpLoad %v2float %30
@ -223,40 +223,40 @@ OpDecorate %497 RelaxedPrecision
%41 = OpCompositeConstruct %v3float %38 %39 %float_1
%42 = OpMatrixTimesVector %v3float %36 %41
%43 = OpVectorShuffle %v2float %42 %42 0 1
OpStore %_1_coords %43
%45 = OpLoad %v2float %_1_coords
OpStore %_2_inCoord %45
%46 = OpLoad %v2float %_2_inCoord
OpStore %_0_coords %43
%45 = OpLoad %v2float %_0_coords
OpStore %_1_inCoord %45
%46 = OpLoad %v2float %_1_inCoord
%48 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
%50 = OpLoad %v4float %48
%51 = OpVectorShuffle %v2float %50 %50 0 1
%52 = OpFMul %v2float %46 %51
OpStore %_2_inCoord %52
%54 = OpLoad %v2float %_2_inCoord
OpStore %_1_inCoord %52
%54 = OpLoad %v2float %_1_inCoord
%55 = OpCompositeExtract %float %54 0
%56 = OpAccessChain %_ptr_Function_float %_3_subsetCoord %int_0
%56 = OpAccessChain %_ptr_Function_float %_2_subsetCoord %int_0
OpStore %56 %55
%59 = OpLoad %v2float %_2_inCoord
%59 = OpLoad %v2float %_1_inCoord
%60 = OpCompositeExtract %float %59 1
%61 = OpAccessChain %_ptr_Function_float %_3_subsetCoord %int_1
%61 = OpAccessChain %_ptr_Function_float %_2_subsetCoord %int_1
OpStore %61 %60
%64 = OpLoad %v2float %_3_subsetCoord
OpStore %_4_clampedCoord %64
%64 = OpLoad %v2float %_2_subsetCoord
OpStore %_3_clampedCoord %64
%67 = OpLoad %22 %uTextureSampler_0_Stage1
%68 = OpLoad %v2float %_4_clampedCoord
%68 = OpLoad %v2float %_3_clampedCoord
%69 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
%70 = OpLoad %v4float %69
%71 = OpVectorShuffle %v2float %70 %70 2 3
%72 = OpFMul %v2float %68 %71
%66 = OpImageSampleImplicitLod %v4float %67 %72
OpStore %_5_textureColor %66
%75 = OpLoad %v2float %_2_inCoord
OpStore %_4_textureColor %66
%75 = OpLoad %v2float %_1_inCoord
%76 = OpCompositeExtract %float %75 0
%78 = OpFAdd %float %76 %float_0_00100000005
%74 = OpExtInst %float %1 Floor %78
%80 = OpFAdd %float %74 %float_0_5
OpStore %_6_snappedX %80
%82 = OpLoad %float %_6_snappedX
OpStore %_5_snappedX %80
%82 = OpLoad %float %_5_snappedX
%84 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
%85 = OpLoad %v4float %84
%86 = OpCompositeExtract %float %85 0
@ -264,7 +264,7 @@ OpStore %_6_snappedX %80
OpSelectionMerge %89 None
OpBranchConditional %87 %89 %88
%88 = OpLabel
%90 = OpLoad %float %_6_snappedX
%90 = OpLoad %float %_5_snappedX
%91 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
%92 = OpLoad %v4float %91
%93 = OpCompositeExtract %float %92 2
@ -277,18 +277,18 @@ OpBranchConditional %95 %96 %97
%96 = OpLabel
%99 = OpAccessChain %_ptr_Uniform_v4float %4 %int_4
%100 = OpLoad %v4float %99
OpStore %_5_textureColor %100
OpStore %_4_textureColor %100
OpBranch %97
%97 = OpLabel
%101 = OpLoad %v4float %_5_textureColor
%101 = OpLoad %v4float %_4_textureColor
OpReturnValue %101
OpFunctionEnd
%main = OpFunction %void None %103
%104 = OpLabel
%output_Stage1 = OpVariable %_ptr_Function_v4float Function
%_8_output = OpVariable %_ptr_Function_v4float Function
%_9_coord = OpVariable %_ptr_Function_v2float Function
%_10_coordSampled = OpVariable %_ptr_Function_v2float Function
%_6_output = OpVariable %_ptr_Function_v4float Function
%_7_coord = OpVariable %_ptr_Function_v2float Function
%_8_coordSampled = OpVariable %_ptr_Function_v2float Function
%122 = OpVariable %_ptr_Function_v4float Function
%124 = OpVariable %_ptr_Function_v2float Function
%138 = OpVariable %_ptr_Function_v4float Function
@ -339,19 +339,19 @@ OpFunctionEnd
%470 = OpVariable %_ptr_Function_v2float Function
%483 = OpVariable %_ptr_Function_v4float Function
%485 = OpVariable %_ptr_Function_v2float Function
OpStore %_8_output %108
OpStore %_6_output %108
%110 = OpLoad %v2float %vLocalCoord_Stage0
%112 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%114 = OpLoad %v2float %112
%115 = OpVectorTimesScalar %v2float %114 %float_12
%116 = OpFSub %v2float %110 %115
OpStore %_9_coord %116
OpStore %_10_coordSampled %118
%119 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %119
%120 = OpLoad %v4float %_8_output
OpStore %_7_coord %116
OpStore %_8_coordSampled %118
%119 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %119
%120 = OpLoad %v4float %_6_output
OpStore %122 %121
%123 = OpLoad %v2float %_10_coordSampled
%123 = OpLoad %v2float %_8_coordSampled
OpStore %124 %123
%125 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %122 %124
%127 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
@ -359,17 +359,17 @@ OpStore %124 %123
%129 = OpCompositeExtract %float %128 0
%130 = OpVectorTimesScalar %v4float %125 %129
%131 = OpFAdd %v4float %120 %130
OpStore %_8_output %131
%132 = OpLoad %v2float %_9_coord
OpStore %_6_output %131
%132 = OpLoad %v2float %_7_coord
%133 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%134 = OpLoad %v2float %133
%135 = OpFAdd %v2float %132 %134
OpStore %_9_coord %135
%136 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %136
%137 = OpLoad %v4float %_8_output
OpStore %_7_coord %135
%136 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %136
%137 = OpLoad %v4float %_6_output
OpStore %138 %121
%139 = OpLoad %v2float %_10_coordSampled
%139 = OpLoad %v2float %_8_coordSampled
OpStore %140 %139
%141 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %138 %140
%142 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
@ -377,17 +377,17 @@ OpStore %140 %139
%144 = OpCompositeExtract %float %143 1
%145 = OpVectorTimesScalar %v4float %141 %144
%146 = OpFAdd %v4float %137 %145
OpStore %_8_output %146
%147 = OpLoad %v2float %_9_coord
OpStore %_6_output %146
%147 = OpLoad %v2float %_7_coord
%148 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%149 = OpLoad %v2float %148
%150 = OpFAdd %v2float %147 %149
OpStore %_9_coord %150
%151 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %151
%152 = OpLoad %v4float %_8_output
OpStore %_7_coord %150
%151 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %151
%152 = OpLoad %v4float %_6_output
OpStore %153 %121
%154 = OpLoad %v2float %_10_coordSampled
%154 = OpLoad %v2float %_8_coordSampled
OpStore %155 %154
%156 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %153 %155
%157 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
@ -395,17 +395,17 @@ OpStore %155 %154
%159 = OpCompositeExtract %float %158 2
%160 = OpVectorTimesScalar %v4float %156 %159
%161 = OpFAdd %v4float %152 %160
OpStore %_8_output %161
%162 = OpLoad %v2float %_9_coord
OpStore %_6_output %161
%162 = OpLoad %v2float %_7_coord
%163 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%164 = OpLoad %v2float %163
%165 = OpFAdd %v2float %162 %164
OpStore %_9_coord %165
%166 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %166
%167 = OpLoad %v4float %_8_output
OpStore %_7_coord %165
%166 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %166
%167 = OpLoad %v4float %_6_output
OpStore %168 %121
%169 = OpLoad %v2float %_10_coordSampled
%169 = OpLoad %v2float %_8_coordSampled
OpStore %170 %169
%171 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %168 %170
%172 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
@ -413,17 +413,17 @@ OpStore %170 %169
%174 = OpCompositeExtract %float %173 3
%175 = OpVectorTimesScalar %v4float %171 %174
%176 = OpFAdd %v4float %167 %175
OpStore %_8_output %176
%177 = OpLoad %v2float %_9_coord
OpStore %_6_output %176
%177 = OpLoad %v2float %_7_coord
%178 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%179 = OpLoad %v2float %178
%180 = OpFAdd %v2float %177 %179
OpStore %_9_coord %180
%181 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %181
%182 = OpLoad %v4float %_8_output
OpStore %_7_coord %180
%181 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %181
%182 = OpLoad %v4float %_6_output
OpStore %183 %121
%184 = OpLoad %v2float %_10_coordSampled
%184 = OpLoad %v2float %_8_coordSampled
OpStore %185 %184
%186 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %183 %185
%187 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
@ -431,17 +431,17 @@ OpStore %185 %184
%189 = OpCompositeExtract %float %188 0
%190 = OpVectorTimesScalar %v4float %186 %189
%191 = OpFAdd %v4float %182 %190
OpStore %_8_output %191
%192 = OpLoad %v2float %_9_coord
OpStore %_6_output %191
%192 = OpLoad %v2float %_7_coord
%193 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%194 = OpLoad %v2float %193
%195 = OpFAdd %v2float %192 %194
OpStore %_9_coord %195
%196 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %196
%197 = OpLoad %v4float %_8_output
OpStore %_7_coord %195
%196 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %196
%197 = OpLoad %v4float %_6_output
OpStore %198 %121
%199 = OpLoad %v2float %_10_coordSampled
%199 = OpLoad %v2float %_8_coordSampled
OpStore %200 %199
%201 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %198 %200
%202 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
@ -449,17 +449,17 @@ OpStore %200 %199
%204 = OpCompositeExtract %float %203 1
%205 = OpVectorTimesScalar %v4float %201 %204
%206 = OpFAdd %v4float %197 %205
OpStore %_8_output %206
%207 = OpLoad %v2float %_9_coord
OpStore %_6_output %206
%207 = OpLoad %v2float %_7_coord
%208 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%209 = OpLoad %v2float %208
%210 = OpFAdd %v2float %207 %209
OpStore %_9_coord %210
%211 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %211
%212 = OpLoad %v4float %_8_output
OpStore %_7_coord %210
%211 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %211
%212 = OpLoad %v4float %_6_output
OpStore %213 %121
%214 = OpLoad %v2float %_10_coordSampled
%214 = OpLoad %v2float %_8_coordSampled
OpStore %215 %214
%216 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %213 %215
%217 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
@ -467,17 +467,17 @@ OpStore %215 %214
%219 = OpCompositeExtract %float %218 2
%220 = OpVectorTimesScalar %v4float %216 %219
%221 = OpFAdd %v4float %212 %220
OpStore %_8_output %221
%222 = OpLoad %v2float %_9_coord
OpStore %_6_output %221
%222 = OpLoad %v2float %_7_coord
%223 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%224 = OpLoad %v2float %223
%225 = OpFAdd %v2float %222 %224
OpStore %_9_coord %225
%226 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %226
%227 = OpLoad %v4float %_8_output
OpStore %_7_coord %225
%226 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %226
%227 = OpLoad %v4float %_6_output
OpStore %228 %121
%229 = OpLoad %v2float %_10_coordSampled
%229 = OpLoad %v2float %_8_coordSampled
OpStore %230 %229
%231 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %228 %230
%232 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
@ -485,17 +485,17 @@ OpStore %230 %229
%234 = OpCompositeExtract %float %233 3
%235 = OpVectorTimesScalar %v4float %231 %234
%236 = OpFAdd %v4float %227 %235
OpStore %_8_output %236
%237 = OpLoad %v2float %_9_coord
OpStore %_6_output %236
%237 = OpLoad %v2float %_7_coord
%238 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%239 = OpLoad %v2float %238
%240 = OpFAdd %v2float %237 %239
OpStore %_9_coord %240
%241 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %241
%242 = OpLoad %v4float %_8_output
OpStore %_7_coord %240
%241 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %241
%242 = OpLoad %v4float %_6_output
OpStore %243 %121
%244 = OpLoad %v2float %_10_coordSampled
%244 = OpLoad %v2float %_8_coordSampled
OpStore %245 %244
%246 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %243 %245
%247 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
@ -503,17 +503,17 @@ OpStore %245 %244
%249 = OpCompositeExtract %float %248 0
%250 = OpVectorTimesScalar %v4float %246 %249
%251 = OpFAdd %v4float %242 %250
OpStore %_8_output %251
%252 = OpLoad %v2float %_9_coord
OpStore %_6_output %251
%252 = OpLoad %v2float %_7_coord
%253 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%254 = OpLoad %v2float %253
%255 = OpFAdd %v2float %252 %254
OpStore %_9_coord %255
%256 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %256
%257 = OpLoad %v4float %_8_output
OpStore %_7_coord %255
%256 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %256
%257 = OpLoad %v4float %_6_output
OpStore %258 %121
%259 = OpLoad %v2float %_10_coordSampled
%259 = OpLoad %v2float %_8_coordSampled
OpStore %260 %259
%261 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %258 %260
%262 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
@ -521,17 +521,17 @@ OpStore %260 %259
%264 = OpCompositeExtract %float %263 1
%265 = OpVectorTimesScalar %v4float %261 %264
%266 = OpFAdd %v4float %257 %265
OpStore %_8_output %266
%267 = OpLoad %v2float %_9_coord
OpStore %_6_output %266
%267 = OpLoad %v2float %_7_coord
%268 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%269 = OpLoad %v2float %268
%270 = OpFAdd %v2float %267 %269
OpStore %_9_coord %270
%271 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %271
%272 = OpLoad %v4float %_8_output
OpStore %_7_coord %270
%271 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %271
%272 = OpLoad %v4float %_6_output
OpStore %273 %121
%274 = OpLoad %v2float %_10_coordSampled
%274 = OpLoad %v2float %_8_coordSampled
OpStore %275 %274
%276 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %273 %275
%277 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
@ -539,17 +539,17 @@ OpStore %275 %274
%279 = OpCompositeExtract %float %278 2
%280 = OpVectorTimesScalar %v4float %276 %279
%281 = OpFAdd %v4float %272 %280
OpStore %_8_output %281
%282 = OpLoad %v2float %_9_coord
OpStore %_6_output %281
%282 = OpLoad %v2float %_7_coord
%283 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%284 = OpLoad %v2float %283
%285 = OpFAdd %v2float %282 %284
OpStore %_9_coord %285
%286 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %286
%287 = OpLoad %v4float %_8_output
OpStore %_7_coord %285
%286 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %286
%287 = OpLoad %v4float %_6_output
OpStore %288 %121
%289 = OpLoad %v2float %_10_coordSampled
%289 = OpLoad %v2float %_8_coordSampled
OpStore %290 %289
%291 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %288 %290
%292 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
@ -557,17 +557,17 @@ OpStore %290 %289
%294 = OpCompositeExtract %float %293 3
%295 = OpVectorTimesScalar %v4float %291 %294
%296 = OpFAdd %v4float %287 %295
OpStore %_8_output %296
%297 = OpLoad %v2float %_9_coord
OpStore %_6_output %296
%297 = OpLoad %v2float %_7_coord
%298 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%299 = OpLoad %v2float %298
%300 = OpFAdd %v2float %297 %299
OpStore %_9_coord %300
%301 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %301
%302 = OpLoad %v4float %_8_output
OpStore %_7_coord %300
%301 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %301
%302 = OpLoad %v4float %_6_output
OpStore %303 %121
%304 = OpLoad %v2float %_10_coordSampled
%304 = OpLoad %v2float %_8_coordSampled
OpStore %305 %304
%306 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %303 %305
%307 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
@ -575,17 +575,17 @@ OpStore %305 %304
%309 = OpCompositeExtract %float %308 0
%310 = OpVectorTimesScalar %v4float %306 %309
%311 = OpFAdd %v4float %302 %310
OpStore %_8_output %311
%312 = OpLoad %v2float %_9_coord
OpStore %_6_output %311
%312 = OpLoad %v2float %_7_coord
%313 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%314 = OpLoad %v2float %313
%315 = OpFAdd %v2float %312 %314
OpStore %_9_coord %315
%316 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %316
%317 = OpLoad %v4float %_8_output
OpStore %_7_coord %315
%316 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %316
%317 = OpLoad %v4float %_6_output
OpStore %318 %121
%319 = OpLoad %v2float %_10_coordSampled
%319 = OpLoad %v2float %_8_coordSampled
OpStore %320 %319
%321 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %318 %320
%322 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
@ -593,17 +593,17 @@ OpStore %320 %319
%324 = OpCompositeExtract %float %323 1
%325 = OpVectorTimesScalar %v4float %321 %324
%326 = OpFAdd %v4float %317 %325
OpStore %_8_output %326
%327 = OpLoad %v2float %_9_coord
OpStore %_6_output %326
%327 = OpLoad %v2float %_7_coord
%328 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%329 = OpLoad %v2float %328
%330 = OpFAdd %v2float %327 %329
OpStore %_9_coord %330
%331 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %331
%332 = OpLoad %v4float %_8_output
OpStore %_7_coord %330
%331 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %331
%332 = OpLoad %v4float %_6_output
OpStore %333 %121
%334 = OpLoad %v2float %_10_coordSampled
%334 = OpLoad %v2float %_8_coordSampled
OpStore %335 %334
%336 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %333 %335
%337 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
@ -611,17 +611,17 @@ OpStore %335 %334
%339 = OpCompositeExtract %float %338 2
%340 = OpVectorTimesScalar %v4float %336 %339
%341 = OpFAdd %v4float %332 %340
OpStore %_8_output %341
%342 = OpLoad %v2float %_9_coord
OpStore %_6_output %341
%342 = OpLoad %v2float %_7_coord
%343 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%344 = OpLoad %v2float %343
%345 = OpFAdd %v2float %342 %344
OpStore %_9_coord %345
%346 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %346
%347 = OpLoad %v4float %_8_output
OpStore %_7_coord %345
%346 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %346
%347 = OpLoad %v4float %_6_output
OpStore %348 %121
%349 = OpLoad %v2float %_10_coordSampled
%349 = OpLoad %v2float %_8_coordSampled
OpStore %350 %349
%351 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %348 %350
%352 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
@ -629,17 +629,17 @@ OpStore %350 %349
%354 = OpCompositeExtract %float %353 3
%355 = OpVectorTimesScalar %v4float %351 %354
%356 = OpFAdd %v4float %347 %355
OpStore %_8_output %356
%357 = OpLoad %v2float %_9_coord
OpStore %_6_output %356
%357 = OpLoad %v2float %_7_coord
%358 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%359 = OpLoad %v2float %358
%360 = OpFAdd %v2float %357 %359
OpStore %_9_coord %360
%361 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %361
%362 = OpLoad %v4float %_8_output
OpStore %_7_coord %360
%361 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %361
%362 = OpLoad %v4float %_6_output
OpStore %363 %121
%364 = OpLoad %v2float %_10_coordSampled
%364 = OpLoad %v2float %_8_coordSampled
OpStore %365 %364
%366 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %363 %365
%367 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
@ -647,17 +647,17 @@ OpStore %365 %364
%369 = OpCompositeExtract %float %368 0
%370 = OpVectorTimesScalar %v4float %366 %369
%371 = OpFAdd %v4float %362 %370
OpStore %_8_output %371
%372 = OpLoad %v2float %_9_coord
OpStore %_6_output %371
%372 = OpLoad %v2float %_7_coord
%373 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%374 = OpLoad %v2float %373
%375 = OpFAdd %v2float %372 %374
OpStore %_9_coord %375
%376 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %376
%377 = OpLoad %v4float %_8_output
OpStore %_7_coord %375
%376 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %376
%377 = OpLoad %v4float %_6_output
OpStore %378 %121
%379 = OpLoad %v2float %_10_coordSampled
%379 = OpLoad %v2float %_8_coordSampled
OpStore %380 %379
%381 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %378 %380
%382 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
@ -665,17 +665,17 @@ OpStore %380 %379
%384 = OpCompositeExtract %float %383 1
%385 = OpVectorTimesScalar %v4float %381 %384
%386 = OpFAdd %v4float %377 %385
OpStore %_8_output %386
%387 = OpLoad %v2float %_9_coord
OpStore %_6_output %386
%387 = OpLoad %v2float %_7_coord
%388 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%389 = OpLoad %v2float %388
%390 = OpFAdd %v2float %387 %389
OpStore %_9_coord %390
%391 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %391
%392 = OpLoad %v4float %_8_output
OpStore %_7_coord %390
%391 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %391
%392 = OpLoad %v4float %_6_output
OpStore %393 %121
%394 = OpLoad %v2float %_10_coordSampled
%394 = OpLoad %v2float %_8_coordSampled
OpStore %395 %394
%396 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %393 %395
%397 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
@ -683,17 +683,17 @@ OpStore %395 %394
%399 = OpCompositeExtract %float %398 2
%400 = OpVectorTimesScalar %v4float %396 %399
%401 = OpFAdd %v4float %392 %400
OpStore %_8_output %401
%402 = OpLoad %v2float %_9_coord
OpStore %_6_output %401
%402 = OpLoad %v2float %_7_coord
%403 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%404 = OpLoad %v2float %403
%405 = OpFAdd %v2float %402 %404
OpStore %_9_coord %405
%406 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %406
%407 = OpLoad %v4float %_8_output
OpStore %_7_coord %405
%406 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %406
%407 = OpLoad %v4float %_6_output
OpStore %408 %121
%409 = OpLoad %v2float %_10_coordSampled
%409 = OpLoad %v2float %_8_coordSampled
OpStore %410 %409
%411 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %408 %410
%412 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
@ -701,17 +701,17 @@ OpStore %410 %409
%414 = OpCompositeExtract %float %413 3
%415 = OpVectorTimesScalar %v4float %411 %414
%416 = OpFAdd %v4float %407 %415
OpStore %_8_output %416
%417 = OpLoad %v2float %_9_coord
OpStore %_6_output %416
%417 = OpLoad %v2float %_7_coord
%418 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%419 = OpLoad %v2float %418
%420 = OpFAdd %v2float %417 %419
OpStore %_9_coord %420
%421 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %421
%422 = OpLoad %v4float %_8_output
OpStore %_7_coord %420
%421 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %421
%422 = OpLoad %v4float %_6_output
OpStore %423 %121
%424 = OpLoad %v2float %_10_coordSampled
%424 = OpLoad %v2float %_8_coordSampled
OpStore %425 %424
%426 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %423 %425
%427 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
@ -719,17 +719,17 @@ OpStore %425 %424
%429 = OpCompositeExtract %float %428 0
%430 = OpVectorTimesScalar %v4float %426 %429
%431 = OpFAdd %v4float %422 %430
OpStore %_8_output %431
%432 = OpLoad %v2float %_9_coord
OpStore %_6_output %431
%432 = OpLoad %v2float %_7_coord
%433 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%434 = OpLoad %v2float %433
%435 = OpFAdd %v2float %432 %434
OpStore %_9_coord %435
%436 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %436
%437 = OpLoad %v4float %_8_output
OpStore %_7_coord %435
%436 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %436
%437 = OpLoad %v4float %_6_output
OpStore %438 %121
%439 = OpLoad %v2float %_10_coordSampled
%439 = OpLoad %v2float %_8_coordSampled
OpStore %440 %439
%441 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %438 %440
%442 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
@ -737,17 +737,17 @@ OpStore %440 %439
%444 = OpCompositeExtract %float %443 1
%445 = OpVectorTimesScalar %v4float %441 %444
%446 = OpFAdd %v4float %437 %445
OpStore %_8_output %446
%447 = OpLoad %v2float %_9_coord
OpStore %_6_output %446
%447 = OpLoad %v2float %_7_coord
%448 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%449 = OpLoad %v2float %448
%450 = OpFAdd %v2float %447 %449
OpStore %_9_coord %450
%451 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %451
%452 = OpLoad %v4float %_8_output
OpStore %_7_coord %450
%451 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %451
%452 = OpLoad %v4float %_6_output
OpStore %453 %121
%454 = OpLoad %v2float %_10_coordSampled
%454 = OpLoad %v2float %_8_coordSampled
OpStore %455 %454
%456 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %453 %455
%457 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
@ -755,17 +755,17 @@ OpStore %455 %454
%459 = OpCompositeExtract %float %458 2
%460 = OpVectorTimesScalar %v4float %456 %459
%461 = OpFAdd %v4float %452 %460
OpStore %_8_output %461
%462 = OpLoad %v2float %_9_coord
OpStore %_6_output %461
%462 = OpLoad %v2float %_7_coord
%463 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%464 = OpLoad %v2float %463
%465 = OpFAdd %v2float %462 %464
OpStore %_9_coord %465
%466 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %466
%467 = OpLoad %v4float %_8_output
OpStore %_7_coord %465
%466 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %466
%467 = OpLoad %v4float %_6_output
OpStore %468 %121
%469 = OpLoad %v2float %_10_coordSampled
%469 = OpLoad %v2float %_8_coordSampled
OpStore %470 %469
%471 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %468 %470
%472 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
@ -773,17 +773,17 @@ OpStore %470 %469
%474 = OpCompositeExtract %float %473 3
%475 = OpVectorTimesScalar %v4float %471 %474
%476 = OpFAdd %v4float %467 %475
OpStore %_8_output %476
%477 = OpLoad %v2float %_9_coord
OpStore %_6_output %476
%477 = OpLoad %v2float %_7_coord
%478 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%479 = OpLoad %v2float %478
%480 = OpFAdd %v2float %477 %479
OpStore %_9_coord %480
%481 = OpLoad %v2float %_9_coord
OpStore %_10_coordSampled %481
%482 = OpLoad %v4float %_8_output
OpStore %_7_coord %480
%481 = OpLoad %v2float %_7_coord
OpStore %_8_coordSampled %481
%482 = OpLoad %v4float %_6_output
OpStore %483 %121
%484 = OpLoad %v2float %_10_coordSampled
%484 = OpLoad %v2float %_8_coordSampled
OpStore %485 %484
%486 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0 %483 %485
%487 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_6
@ -791,13 +791,13 @@ OpStore %485 %484
%489 = OpCompositeExtract %float %488 0
%490 = OpVectorTimesScalar %v4float %486 %489
%491 = OpFAdd %v4float %482 %490
OpStore %_8_output %491
%492 = OpLoad %v2float %_9_coord
OpStore %_6_output %491
%492 = OpLoad %v2float %_7_coord
%493 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
%494 = OpLoad %v2float %493
%495 = OpFAdd %v2float %492 %494
OpStore %_9_coord %495
%496 = OpLoad %v4float %_8_output
OpStore %_7_coord %495
%496 = OpLoad %v4float %_6_output
OpStore %output_Stage1 %496
%497 = OpLoad %v4float %output_Stage1
OpStore %sk_FragColor %497

View File

@ -12,104 +12,104 @@ layout (binding = 0) uniform uniformBuffer {
};
layout (location = 0) in vec2 vLocalCoord_Stage0;
vec4 MatrixEffect_Stage1_c0_c0(vec4 _input, vec2 _coords) {
vec2 _1_coords = (umatrix_Stage1_c0_c0 * vec3(_coords, 1.0)).xy;
vec2 _2_inCoord = _1_coords;
_2_inCoord *= unorm_Stage1_c0_c0_c0.xy;
vec2 _3_subsetCoord;
_3_subsetCoord.x = _2_inCoord.x;
_3_subsetCoord.y = _2_inCoord.y;
vec2 _4_clampedCoord;
_4_clampedCoord = _3_subsetCoord;
vec4 _5_textureColor = texture(uTextureSampler_0_Stage1, _4_clampedCoord * unorm_Stage1_c0_c0_c0.zw);
float _6_snappedX = floor(_2_inCoord.x + 0.0010000000474974513) + 0.5;
if (_6_snappedX < usubset_Stage1_c0_c0_c0.x || _6_snappedX > usubset_Stage1_c0_c0_c0.z) {
_5_textureColor = uborder_Stage1_c0_c0_c0;
vec2 _0_coords = (umatrix_Stage1_c0_c0 * vec3(_coords, 1.0)).xy;
vec2 _1_inCoord = _0_coords;
_1_inCoord *= unorm_Stage1_c0_c0_c0.xy;
vec2 _2_subsetCoord;
_2_subsetCoord.x = _1_inCoord.x;
_2_subsetCoord.y = _1_inCoord.y;
vec2 _3_clampedCoord;
_3_clampedCoord = _2_subsetCoord;
vec4 _4_textureColor = texture(uTextureSampler_0_Stage1, _3_clampedCoord * unorm_Stage1_c0_c0_c0.zw);
float _5_snappedX = floor(_1_inCoord.x + 0.0010000000474974513) + 0.5;
if (_5_snappedX < usubset_Stage1_c0_c0_c0.x || _5_snappedX > usubset_Stage1_c0_c0_c0.z) {
_4_textureColor = uborder_Stage1_c0_c0_c0;
}
return _5_textureColor;
return _4_textureColor;
}
void main() {
vec4 output_Stage1;
vec4 _8_output;
_8_output = vec4(0.0, 0.0, 0.0, 0.0);
vec2 _9_coord = vLocalCoord_Stage0 - 12.0 * uIncrement_Stage1_c0;
vec2 _10_coordSampled = vec2(0.0, 0.0);
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[0].x;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[0].y;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[0].z;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[0].w;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[1].x;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[1].y;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[1].z;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[1].w;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[2].x;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[2].y;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[2].z;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[2].w;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[3].x;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[3].y;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[3].z;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[3].w;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[4].x;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[4].y;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[4].z;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[4].w;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[5].x;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[5].y;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[5].z;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[5].w;
_9_coord += uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _10_coordSampled) * uKernel_Stage1_c0[6].x;
_9_coord += uIncrement_Stage1_c0;
output_Stage1 = _8_output;
vec4 _6_output;
_6_output = vec4(0.0, 0.0, 0.0, 0.0);
vec2 _7_coord = vLocalCoord_Stage0 - 12.0 * uIncrement_Stage1_c0;
vec2 _8_coordSampled = vec2(0.0, 0.0);
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[0].x;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[0].y;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[0].z;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[0].w;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[1].x;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[1].y;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[1].z;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[1].w;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[2].x;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[2].y;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[2].z;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[2].w;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[3].x;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[3].y;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[3].z;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[3].w;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[4].x;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[4].y;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[4].z;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[4].w;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[5].x;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[5].y;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[5].z;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[5].w;
_7_coord += uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(vec4(1.0), _8_coordSampled) * uKernel_Stage1_c0[6].x;
_7_coord += uIncrement_Stage1_c0;
output_Stage1 = _6_output;
{
sk_FragColor = output_Stage1;

View File

@ -25,20 +25,20 @@ struct Globals {
float4 MatrixEffect_Stage1_c0_c0(thread Globals& _globals, float4 _input, float2 _coords) {
float2 _1_coords = (_globals._anonInterface0->umatrix_Stage1_c0_c0 * float3(_coords, 1.0)).xy;
float2 _2_inCoord = _1_coords;
_2_inCoord *= _globals._anonInterface0->unorm_Stage1_c0_c0_c0.xy;
float2 _3_subsetCoord;
_3_subsetCoord.x = _2_inCoord.x;
_3_subsetCoord.y = _2_inCoord.y;
float2 _4_clampedCoord;
_4_clampedCoord = _3_subsetCoord;
float4 _5_textureColor = _globals.uTextureSampler_0_Stage1.sample(_globals.uTextureSampler_0_Stage1Smplr, _4_clampedCoord * _globals._anonInterface0->unorm_Stage1_c0_c0_c0.zw);
float _6_snappedX = floor(_2_inCoord.x + 0.0010000000474974513) + 0.5;
if (_6_snappedX < _globals._anonInterface0->usubset_Stage1_c0_c0_c0.x || _6_snappedX > _globals._anonInterface0->usubset_Stage1_c0_c0_c0.z) {
_5_textureColor = _globals._anonInterface0->uborder_Stage1_c0_c0_c0;
float2 _0_coords = (_globals._anonInterface0->umatrix_Stage1_c0_c0 * float3(_coords, 1.0)).xy;
float2 _1_inCoord = _0_coords;
_1_inCoord *= _globals._anonInterface0->unorm_Stage1_c0_c0_c0.xy;
float2 _2_subsetCoord;
_2_subsetCoord.x = _1_inCoord.x;
_2_subsetCoord.y = _1_inCoord.y;
float2 _3_clampedCoord;
_3_clampedCoord = _2_subsetCoord;
float4 _4_textureColor = _globals.uTextureSampler_0_Stage1.sample(_globals.uTextureSampler_0_Stage1Smplr, _3_clampedCoord * _globals._anonInterface0->unorm_Stage1_c0_c0_c0.zw);
float _5_snappedX = floor(_1_inCoord.x + 0.0010000000474974513) + 0.5;
if (_5_snappedX < _globals._anonInterface0->usubset_Stage1_c0_c0_c0.x || _5_snappedX > _globals._anonInterface0->usubset_Stage1_c0_c0_c0.z) {
_4_textureColor = _globals._anonInterface0->uborder_Stage1_c0_c0_c0;
}
return _5_textureColor;
return _4_textureColor;
}
fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d<float> uTextureSampler_0_Stage1[[texture(0)]], sampler uTextureSampler_0_Stage1Smplr[[sampler(0)]], constant uniformBuffer& _anonInterface0 [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
@ -47,86 +47,86 @@ fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d<float> uTexture
Outputs _out;
(void)_out;
float4 output_Stage1;
float4 _8_output;
_8_output = float4(0.0, 0.0, 0.0, 0.0);
float2 _9_coord = _in.vLocalCoord_Stage0 - 12.0 * _globals._anonInterface0->uIncrement_Stage1_c0;
float2 _10_coordSampled = float2(0.0, 0.0);
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].y;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].z;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].w;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].y;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].z;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].w;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].y;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].z;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].w;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].y;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].z;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].w;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].y;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].z;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].w;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].y;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].z;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].w;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_10_coordSampled = _9_coord;
_8_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _10_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[6].x;
_9_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
output_Stage1 = _8_output;
float4 _6_output;
_6_output = float4(0.0, 0.0, 0.0, 0.0);
float2 _7_coord = _in.vLocalCoord_Stage0 - 12.0 * _globals._anonInterface0->uIncrement_Stage1_c0;
float2 _8_coordSampled = float2(0.0, 0.0);
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].y;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].z;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].w;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].y;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].z;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].w;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].y;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].z;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].w;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].y;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].z;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].w;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].y;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].z;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].w;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].y;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].z;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].w;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
_8_coordSampled = _7_coord;
_6_output += MatrixEffect_Stage1_c0_c0(_globals, float4(1.0), _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[6].x;
_7_coord += _globals._anonInterface0->uIncrement_Stage1_c0;
output_Stage1 = _6_output;
{
_out.sk_FragColor = output_Stage1;

View File

@ -9,8 +9,8 @@ OpName %_UniformBuffer "_UniformBuffer"
OpMemberName %_UniformBuffer 0 "colorGreen"
OpName %_entrypoint "_entrypoint"
OpName %main "main"
OpName %_0_x "_0_x"
OpName %_1_x "_1_x"
OpName %_3_x "_3_x"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -55,35 +55,35 @@ OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %18
%19 = OpLabel
%_1_x = OpVariable %_ptr_Function_float Function
%_3_x = OpVariable %_ptr_Function_v2float Function
OpStore %_1_x %float_1
%_0_x = OpVariable %_ptr_Function_float Function
%_1_x = OpVariable %_ptr_Function_v2float Function
OpStore %_0_x %float_1
%23 = OpExtInst %float %1 Length %float_1
OpStore %_1_x %23
%25 = OpLoad %float %_1_x
OpStore %_0_x %23
%25 = OpLoad %float %_0_x
%24 = OpExtInst %float %1 Distance %25 %float_2
OpStore %_1_x %24
%28 = OpLoad %float %_1_x
OpStore %_0_x %24
%28 = OpLoad %float %_0_x
%27 = OpFMul %float %28 %float_2
OpStore %_1_x %27
%30 = OpLoad %float %_1_x
OpStore %_0_x %27
%30 = OpLoad %float %_0_x
%29 = OpExtInst %float %1 Normalize %30
OpStore %_1_x %29
OpStore %_3_x %34
OpStore %_0_x %29
OpStore %_1_x %34
%35 = OpExtInst %float %1 Length %34
%36 = OpCompositeConstruct %v2float %35 %35
OpStore %_3_x %36
%38 = OpLoad %v2float %_3_x
OpStore %_1_x %36
%38 = OpLoad %v2float %_1_x
%37 = OpExtInst %float %1 Distance %38 %41
%42 = OpCompositeConstruct %v2float %37 %37
OpStore %_3_x %42
%44 = OpLoad %v2float %_3_x
OpStore %_1_x %42
%44 = OpLoad %v2float %_1_x
%43 = OpDot %float %44 %41
%45 = OpCompositeConstruct %v2float %43 %43
OpStore %_3_x %45
%47 = OpLoad %v2float %_3_x
OpStore %_1_x %45
%47 = OpLoad %v2float %_1_x
%46 = OpExtInst %v2float %1 Normalize %47
OpStore %_3_x %46
OpStore %_1_x %46
%48 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
%52 = OpLoad %v4float %48
OpReturnValue %52

View File

@ -2,17 +2,17 @@
out vec4 sk_FragColor;
uniform vec4 colorGreen;
vec4 main() {
float _1_x = 1.0;
_1_x = length(1.0);
_1_x = distance(_1_x, 2.0);
_1_x = dot(_1_x, 2.0);
_1_x = normalize(_1_x);
float _0_x = 1.0;
_0_x = length(1.0);
_0_x = distance(_0_x, 2.0);
_0_x = dot(_0_x, 2.0);
_0_x = normalize(_0_x);
vec2 _3_x = vec2(1.0, 2.0);
_3_x = vec2(length(vec2(1.0, 2.0)));
_3_x = vec2(distance(_3_x, vec2(3.0, 4.0)));
_3_x = vec2(dot(_3_x, vec2(3.0, 4.0)));
_3_x = normalize(_3_x);
vec2 _1_x = vec2(1.0, 2.0);
_1_x = vec2(length(vec2(1.0, 2.0)));
_1_x = vec2(distance(_1_x, vec2(3.0, 4.0)));
_1_x = vec2(dot(_1_x, vec2(3.0, 4.0)));
_1_x = normalize(_1_x);
return colorGreen;
}

View File

@ -13,17 +13,17 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float _1_x = 1.0;
_1_x = abs(1.0);
_1_x = abs(_1_x - 2.0);
_1_x = (_1_x * 2.0);
_1_x = sign(_1_x);
float _0_x = 1.0;
_0_x = abs(1.0);
_0_x = abs(_0_x - 2.0);
_0_x = (_0_x * 2.0);
_0_x = sign(_0_x);
float2 _3_x = float2(1.0, 2.0);
_3_x = float2(length(float2(1.0, 2.0)));
_3_x = float2(distance(_3_x, float2(3.0, 4.0)));
_3_x = float2(dot(_3_x, float2(3.0, 4.0)));
_3_x = normalize(_3_x);
float2 _1_x = float2(1.0, 2.0);
_1_x = float2(length(float2(1.0, 2.0)));
_1_x = float2(distance(_1_x, float2(3.0, 4.0)));
_1_x = float2(dot(_1_x, float2(3.0, 4.0)));
_1_x = normalize(_1_x);
_out.sk_FragColor = _uniforms.colorGreen;
return _out;

View File

@ -10,14 +10,14 @@ OpMemberName %_UniformBuffer 0 "colorGreen"
OpMemberName %_UniformBuffer 1 "colorRed"
OpName %_entrypoint "_entrypoint"
OpName %main "main"
OpName %_1_m3 "_1_m3"
OpName %_2_m5 "_2_m5"
OpName %_3_m6 "_3_m6"
OpName %_4_m11 "_4_m11"
OpName %_6_m3 "_6_m3"
OpName %_7_m5 "_7_m5"
OpName %_8_m6 "_8_m6"
OpName %_9_m11 "_9_m11"
OpName %_0_m3 "_0_m3"
OpName %_1_m5 "_1_m5"
OpName %_2_m6 "_2_m6"
OpName %_3_m11 "_3_m11"
OpName %_4_m3 "_4_m3"
OpName %_5_m5 "_5_m5"
OpName %_6_m6 "_6_m6"
OpName %_7_m11 "_7_m11"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -100,26 +100,26 @@ OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %18
%19 = OpLabel
%_1_m3 = OpVariable %_ptr_Function_mat2v2float Function
%_2_m5 = OpVariable %_ptr_Function_mat2v2float Function
%_0_m3 = OpVariable %_ptr_Function_mat2v2float Function
%_1_m5 = OpVariable %_ptr_Function_mat2v2float Function
%38 = OpVariable %_ptr_Function_mat2v2float Function
%_3_m6 = OpVariable %_ptr_Function_mat2v2float Function
%_4_m11 = OpVariable %_ptr_Function_mat4v4float Function
%_6_m3 = OpVariable %_ptr_Function_mat2v2float Function
%_7_m5 = OpVariable %_ptr_Function_mat2v2float Function
%_2_m6 = OpVariable %_ptr_Function_mat2v2float Function
%_3_m11 = OpVariable %_ptr_Function_mat4v4float Function
%_4_m3 = OpVariable %_ptr_Function_mat2v2float Function
%_5_m5 = OpVariable %_ptr_Function_mat2v2float Function
%101 = OpVariable %_ptr_Function_mat2v2float Function
%_8_m6 = OpVariable %_ptr_Function_mat2v2float Function
%_9_m11 = OpVariable %_ptr_Function_mat4v4float Function
%_6_m6 = OpVariable %_ptr_Function_mat2v2float Function
%_7_m11 = OpVariable %_ptr_Function_mat4v4float Function
%29 = OpCompositeConstruct %v2float %float_1 %float_2
%30 = OpCompositeConstruct %v2float %float_3 %float_4
%28 = OpCompositeConstruct %mat2v2float %29 %30
OpStore %_1_m3 %28
%31 = OpLoad %mat2v2float %_1_m3
OpStore %_0_m3 %28
%31 = OpLoad %mat2v2float %_0_m3
%34 = OpCompositeConstruct %v2float %float_1 %float_0
%35 = OpCompositeConstruct %v2float %float_0 %float_1
%32 = OpCompositeConstruct %mat2v2float %34 %35
%36 = OpMatrixTimesMatrix %mat2v2float %31 %32
OpStore %_1_m3 %36
OpStore %_0_m3 %36
%40 = OpCompositeConstruct %v2float %float_1 %float_2
%41 = OpCompositeConstruct %v2float %float_3 %float_4
%39 = OpCompositeConstruct %mat2v2float %40 %41
@ -130,13 +130,13 @@ OpStore %38 %39
%49 = OpCompositeConstruct %v2float %47 %float_0
%50 = OpCompositeConstruct %v2float %float_0 %47
%48 = OpCompositeConstruct %mat2v2float %49 %50
OpStore %_2_m5 %48
OpStore %_1_m5 %48
%53 = OpCompositeConstruct %v2float %float_1 %float_2
%54 = OpCompositeConstruct %v2float %float_3 %float_4
%52 = OpCompositeConstruct %mat2v2float %53 %54
OpStore %_3_m6 %52
%55 = OpLoad %mat2v2float %_3_m6
%56 = OpLoad %mat2v2float %_2_m5
OpStore %_2_m6 %52
%55 = OpLoad %mat2v2float %_2_m6
%56 = OpLoad %mat2v2float %_1_m5
%57 = OpCompositeExtract %v2float %55 0
%58 = OpCompositeExtract %v2float %56 0
%59 = OpFAdd %v2float %57 %58
@ -144,14 +144,14 @@ OpStore %_3_m6 %52
%61 = OpCompositeExtract %v2float %56 1
%62 = OpFAdd %v2float %60 %61
%63 = OpCompositeConstruct %mat2v2float %59 %62
OpStore %_3_m6 %63
OpStore %_2_m6 %63
%68 = OpCompositeConstruct %v4float %float_2 %float_0 %float_0 %float_0
%69 = OpCompositeConstruct %v4float %float_0 %float_2 %float_0 %float_0
%70 = OpCompositeConstruct %v4float %float_0 %float_0 %float_2 %float_0
%71 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_2
%67 = OpCompositeConstruct %mat4v4float %68 %69 %70 %71
OpStore %_4_m11 %67
%72 = OpLoad %mat4v4float %_4_m11
OpStore %_3_m11 %67
%72 = OpLoad %mat4v4float %_3_m11
%74 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0
%75 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0
%76 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0
@ -170,17 +170,17 @@ OpStore %_4_m11 %67
%88 = OpCompositeExtract %v4float %73 3
%89 = OpFSub %v4float %87 %88
%90 = OpCompositeConstruct %mat4v4float %80 %83 %86 %89
OpStore %_4_m11 %90
OpStore %_3_m11 %90
%93 = OpCompositeConstruct %v2float %float_1 %float_2
%94 = OpCompositeConstruct %v2float %float_3 %float_4
%92 = OpCompositeConstruct %mat2v2float %93 %94
OpStore %_6_m3 %92
%95 = OpLoad %mat2v2float %_6_m3
OpStore %_4_m3 %92
%95 = OpLoad %mat2v2float %_4_m3
%97 = OpCompositeConstruct %v2float %float_1 %float_0
%98 = OpCompositeConstruct %v2float %float_0 %float_1
%96 = OpCompositeConstruct %mat2v2float %97 %98
%99 = OpMatrixTimesMatrix %mat2v2float %95 %96
OpStore %_6_m3 %99
OpStore %_4_m3 %99
%103 = OpCompositeConstruct %v2float %float_1 %float_2
%104 = OpCompositeConstruct %v2float %float_3 %float_4
%102 = OpCompositeConstruct %mat2v2float %103 %104
@ -191,13 +191,13 @@ OpStore %101 %102
%109 = OpCompositeConstruct %v2float %107 %float_0
%110 = OpCompositeConstruct %v2float %float_0 %107
%108 = OpCompositeConstruct %mat2v2float %109 %110
OpStore %_7_m5 %108
OpStore %_5_m5 %108
%113 = OpCompositeConstruct %v2float %float_1 %float_2
%114 = OpCompositeConstruct %v2float %float_3 %float_4
%112 = OpCompositeConstruct %mat2v2float %113 %114
OpStore %_8_m6 %112
%115 = OpLoad %mat2v2float %_8_m6
%116 = OpLoad %mat2v2float %_7_m5
OpStore %_6_m6 %112
%115 = OpLoad %mat2v2float %_6_m6
%116 = OpLoad %mat2v2float %_5_m5
%117 = OpCompositeExtract %v2float %115 0
%118 = OpCompositeExtract %v2float %116 0
%119 = OpFAdd %v2float %117 %118
@ -205,14 +205,14 @@ OpStore %_8_m6 %112
%121 = OpCompositeExtract %v2float %116 1
%122 = OpFAdd %v2float %120 %121
%123 = OpCompositeConstruct %mat2v2float %119 %122
OpStore %_8_m6 %123
OpStore %_6_m6 %123
%126 = OpCompositeConstruct %v4float %float_2 %float_0 %float_0 %float_0
%127 = OpCompositeConstruct %v4float %float_0 %float_2 %float_0 %float_0
%128 = OpCompositeConstruct %v4float %float_0 %float_0 %float_2 %float_0
%129 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_2
%125 = OpCompositeConstruct %mat4v4float %126 %127 %128 %129
OpStore %_9_m11 %125
%130 = OpLoad %mat4v4float %_9_m11
OpStore %_7_m11 %125
%130 = OpLoad %mat4v4float %_7_m11
%132 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0
%133 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0
%134 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0
@ -231,7 +231,7 @@ OpStore %_9_m11 %125
%146 = OpCompositeExtract %v4float %131 3
%147 = OpFSub %v4float %145 %146
%148 = OpCompositeConstruct %mat4v4float %138 %141 %144 %147
OpStore %_9_m11 %148
OpStore %_7_m11 %148
%149 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
%151 = OpLoad %v4float %149
OpReturnValue %151

View File

@ -3,20 +3,20 @@ out vec4 sk_FragColor;
uniform vec4 colorGreen;
uniform vec4 colorRed;
vec4 main() {
mat2 _1_m3 = mat2(1.0, 2.0, 3.0, 4.0);
_1_m3 *= mat2(1.0);
mat2 _2_m5 = mat2(mat2(1.0, 2.0, 3.0, 4.0)[0].x);
mat2 _3_m6 = mat2(1.0, 2.0, 3.0, 4.0);
_3_m6 += _2_m5;
mat4 _4_m11 = mat4(2.0);
_4_m11 -= mat4(1.0);
mat2 _6_m3 = mat2(1.0, 2.0, 3.0, 4.0);
_6_m3 *= mat2(1.0);
mat2 _7_m5 = mat2(mat2(1.0, 2.0, 3.0, 4.0)[0].x);
mat2 _8_m6 = mat2(1.0, 2.0, 3.0, 4.0);
_8_m6 += _7_m5;
mat4 _9_m11 = mat4(2.0);
_9_m11 -= mat4(1.0);
mat2 _0_m3 = mat2(1.0, 2.0, 3.0, 4.0);
_0_m3 *= mat2(1.0);
mat2 _1_m5 = mat2(mat2(1.0, 2.0, 3.0, 4.0)[0].x);
mat2 _2_m6 = mat2(1.0, 2.0, 3.0, 4.0);
_2_m6 += _1_m5;
mat4 _3_m11 = mat4(2.0);
_3_m11 -= mat4(1.0);
mat2 _4_m3 = mat2(1.0, 2.0, 3.0, 4.0);
_4_m3 *= mat2(1.0);
mat2 _5_m5 = mat2(mat2(1.0, 2.0, 3.0, 4.0)[0].x);
mat2 _6_m6 = mat2(1.0, 2.0, 3.0, 4.0);
_6_m6 += _5_m5;
mat4 _7_m11 = mat4(2.0);
_7_m11 -= mat4(1.0);
return colorGreen;

View File

@ -19,20 +19,20 @@ thread float2x2& operator*=(thread float2x2& left, thread const float2x2& right)
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float2x2 _1_m3 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_1_m3 *= float2x2(1.0);
float2x2 _2_m5 = float2x2(float2x2(float2(1.0, 2.0), float2(3.0, 4.0))[0].x);
float2x2 _3_m6 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_3_m6 += _2_m5;
float4x4 _4_m11 = float4x4(2.0);
_4_m11 -= float4x4(1.0);
float2x2 _6_m3 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_6_m3 *= float2x2(1.0);
float2x2 _7_m5 = float2x2(float2x2(float2(1.0, 2.0), float2(3.0, 4.0))[0].x);
float2x2 _8_m6 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_8_m6 += _7_m5;
float4x4 _9_m11 = float4x4(2.0);
_9_m11 -= float4x4(1.0);
float2x2 _0_m3 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_0_m3 *= float2x2(1.0);
float2x2 _1_m5 = float2x2(float2x2(float2(1.0, 2.0), float2(3.0, 4.0))[0].x);
float2x2 _2_m6 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_2_m6 += _1_m5;
float4x4 _3_m11 = float4x4(2.0);
_3_m11 -= float4x4(1.0);
float2x2 _4_m3 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_4_m3 *= float2x2(1.0);
float2x2 _5_m5 = float2x2(float2x2(float2(1.0, 2.0), float2(3.0, 4.0))[0].x);
float2x2 _6_m6 = float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_6_m6 += _5_m5;
float4x4 _7_m11 = float4x4(2.0);
_7_m11 -= float4x4(1.0);
_out.sk_FragColor = _uniforms.colorGreen;
return _out;

View File

@ -3,18 +3,18 @@ out vec4 sk_FragColor;
uniform vec4 colorGreen;
uniform vec4 colorRed;
vec4 main() {
mat2 _1_m22 = mat3x2(32.0) * mat2x3(23.0);
_1_m22 *= _1_m22;
mat3 _2_m33 = mat4x3(44.0) * mat3x4(34.0);
_2_m33 *= _2_m33;
mat4 _3_m44 = mat2x4(24.0) * mat4x2(42.0);
_3_m44 *= _3_m44;
mat2 _5_m22 = mat3x2(32.0) * mat2x3(23.0);
_5_m22 *= _5_m22;
mat3 _6_m33 = mat4x3(44.0) * mat3x4(34.0);
_6_m33 *= _6_m33;
mat4 _7_m44 = mat2x4(24.0) * mat4x2(42.0);
_7_m44 *= _7_m44;
mat2 _0_m22 = mat3x2(32.0) * mat2x3(23.0);
_0_m22 *= _0_m22;
mat3 _1_m33 = mat4x3(44.0) * mat3x4(34.0);
_1_m33 *= _1_m33;
mat4 _2_m44 = mat2x4(24.0) * mat4x2(42.0);
_2_m44 *= _2_m44;
mat2 _3_m22 = mat3x2(32.0) * mat2x3(23.0);
_3_m22 *= _3_m22;
mat3 _4_m33 = mat4x3(44.0) * mat3x4(34.0);
_4_m33 *= _4_m33;
mat4 _5_m44 = mat2x4(24.0) * mat4x2(42.0);
_5_m44 *= _5_m44;
return colorGreen;

View File

@ -27,18 +27,18 @@ thread float4x4& operator*=(thread float4x4& left, thread const float4x4& right)
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float2x2 _1_m22 = float3x2(32.0) * float2x3(23.0);
_1_m22 *= _1_m22;
float3x3 _2_m33 = float4x3(44.0) * float3x4(34.0);
_2_m33 *= _2_m33;
float4x4 _3_m44 = float2x4(24.0) * float4x2(42.0);
_3_m44 *= _3_m44;
float2x2 _5_m22 = float3x2(32.0) * float2x3(23.0);
_5_m22 *= _5_m22;
float3x3 _6_m33 = float4x3(44.0) * float3x4(34.0);
_6_m33 *= _6_m33;
float4x4 _7_m44 = float2x4(24.0) * float4x2(42.0);
_7_m44 *= _7_m44;
float2x2 _0_m22 = float3x2(32.0) * float2x3(23.0);
_0_m22 *= _0_m22;
float3x3 _1_m33 = float4x3(44.0) * float3x4(34.0);
_1_m33 *= _1_m33;
float4x4 _2_m44 = float2x4(24.0) * float4x2(42.0);
_2_m44 *= _2_m44;
float2x2 _3_m22 = float3x2(32.0) * float2x3(23.0);
_3_m22 *= _3_m22;
float3x3 _4_m33 = float4x3(44.0) * float3x4(34.0);
_4_m33 *= _4_m33;
float4x4 _5_m44 = float2x4(24.0) * float4x2(42.0);
_5_m44 *= _5_m44;
_out.sk_FragColor = _uniforms.colorGreen;
return _out;

View File

@ -12,7 +12,7 @@ OpMemberName %_UniformBuffer 2 "testMatrix2x2"
OpMemberName %_UniformBuffer 3 "testMatrix3x3"
OpName %_entrypoint "_entrypoint"
OpName %main "main"
OpName %_1_ok "_1_ok"
OpName %_0_ok "_0_ok"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -109,9 +109,9 @@ OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %22
%23 = OpLabel
%_1_ok = OpVariable %_ptr_Function_bool Function
%_0_ok = OpVariable %_ptr_Function_bool Function
%127 = OpVariable %_ptr_Function_v4float Function
OpStore %_1_ok %true
OpStore %_0_ok %true
%27 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2
%31 = OpLoad %mat2v2float %27
%37 = OpCompositeConstruct %v2float %float_1 %float_2
@ -126,8 +126,8 @@ OpStore %_1_ok %true
%46 = OpFOrdEqual %v2bool %44 %45
%47 = OpAll %bool %46
%48 = OpLogicalAnd %bool %43 %47
OpStore %_1_ok %48
%50 = OpLoad %bool %_1_ok
OpStore %_0_ok %48
%50 = OpLoad %bool %_0_ok
OpSelectionMerge %52 None
OpBranchConditional %50 %51 %52
%51 = OpLabel
@ -154,8 +154,8 @@ OpBranchConditional %50 %51 %52
OpBranch %52
%52 = OpLabel
%81 = OpPhi %bool %false %23 %80 %51
OpStore %_1_ok %81
%82 = OpLoad %bool %_1_ok
OpStore %_0_ok %81
%82 = OpLoad %bool %_0_ok
OpSelectionMerge %84 None
OpBranchConditional %82 %83 %84
%83 = OpLabel
@ -176,8 +176,8 @@ OpBranchConditional %82 %83 %84
OpBranch %84
%84 = OpLabel
%101 = OpPhi %bool %false %52 %100 %83
OpStore %_1_ok %101
%102 = OpLoad %bool %_1_ok
OpStore %_0_ok %101
%102 = OpLoad %bool %_0_ok
OpSelectionMerge %104 None
OpBranchConditional %102 %103 %104
%103 = OpLabel
@ -204,8 +204,8 @@ OpBranchConditional %102 %103 %104
OpBranch %104
%104 = OpLabel
%125 = OpPhi %bool %false %84 %124 %103
OpStore %_1_ok %125
%126 = OpLoad %bool %_1_ok
OpStore %_0_ok %125
%126 = OpLoad %bool %_0_ok
OpSelectionMerge %131 None
OpBranchConditional %126 %129 %130
%129 = OpLabel

View File

@ -5,11 +5,11 @@ uniform vec4 colorRed;
uniform mat2 testMatrix2x2;
uniform mat3 testMatrix3x3;
vec4 main() {
bool _1_ok = true;
_1_ok = testMatrix2x2 == mat2(1.0, 2.0, 3.0, 4.0);
_1_ok = _1_ok && testMatrix3x3 == mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
_1_ok = _1_ok && testMatrix2x2 != mat2(100.0);
_1_ok = _1_ok && testMatrix3x3 != mat3(9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0);
return _1_ok ? colorGreen : colorRed;
bool _0_ok = true;
_0_ok = testMatrix2x2 == mat2(1.0, 2.0, 3.0, 4.0);
_0_ok = _0_ok && testMatrix3x3 == mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
_0_ok = _0_ok && testMatrix2x2 != mat2(100.0);
_0_ok = _0_ok && testMatrix3x3 != mat3(9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0);
return _0_ok ? colorGreen : colorRed;
}

View File

@ -31,12 +31,12 @@ thread bool operator!=(const float3x3 left, const float3x3 right) {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
bool _1_ok = true;
_1_ok = _uniforms.testMatrix2x2 == float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_1_ok = _1_ok && _uniforms.testMatrix3x3 == float3x3(float3(1.0, 2.0, 3.0), float3(4.0, 5.0, 6.0), float3(7.0, 8.0, 9.0));
_1_ok = _1_ok && _uniforms.testMatrix2x2 != float2x2(100.0);
_1_ok = _1_ok && _uniforms.testMatrix3x3 != float3x3(float3(9.0, 8.0, 7.0), float3(6.0, 5.0, 4.0), float3(3.0, 2.0, 1.0));
_out.sk_FragColor = _1_ok ? _uniforms.colorGreen : _uniforms.colorRed;
bool _0_ok = true;
_0_ok = _uniforms.testMatrix2x2 == float2x2(float2(1.0, 2.0), float2(3.0, 4.0));
_0_ok = _0_ok && _uniforms.testMatrix3x3 == float3x3(float3(1.0, 2.0, 3.0), float3(4.0, 5.0, 6.0), float3(7.0, 8.0, 9.0));
_0_ok = _0_ok && _uniforms.testMatrix2x2 != float2x2(100.0);
_0_ok = _0_ok && _uniforms.testMatrix3x3 != float3x3(float3(9.0, 8.0, 7.0), float3(6.0, 5.0, 4.0), float3(3.0, 2.0, 1.0));
_out.sk_FragColor = _0_ok ? _uniforms.colorGreen : _uniforms.colorRed;
return _out;
}

View File

@ -12,7 +12,7 @@ OpName %_entrypoint "_entrypoint"
OpName %test_int "test_int"
OpName %result "result"
OpName %main "main"
OpName %_1_result "_1_result"
OpName %_0_result "_0_result"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -89,25 +89,25 @@ OpReturnValue %45
OpFunctionEnd
%main = OpFunction %v4float None %46
%47 = OpLabel
%_1_result = OpVariable %_ptr_Function_v4float Function
%_0_result = OpVariable %_ptr_Function_v4float Function
%74 = OpVariable %_ptr_Function_v4float Function
%51 = OpAccessChain %_ptr_Function_float %_1_result %int_0
%51 = OpAccessChain %_ptr_Function_float %_0_result %int_0
OpStore %51 %float_1
%53 = OpAccessChain %_ptr_Function_float %_1_result %int_1
%53 = OpAccessChain %_ptr_Function_float %_0_result %int_1
OpStore %53 %float_1
%54 = OpAccessChain %_ptr_Function_float %_1_result %int_2
%54 = OpAccessChain %_ptr_Function_float %_0_result %int_2
OpStore %54 %float_1
%55 = OpAccessChain %_ptr_Function_float %_1_result %int_3
%55 = OpAccessChain %_ptr_Function_float %_0_result %int_3
OpStore %55 %float_1
%57 = OpLoad %v4float %_1_result
%57 = OpLoad %v4float %_0_result
%58 = OpCompositeExtract %float %57 0
%59 = OpLoad %v4float %_1_result
%59 = OpLoad %v4float %_0_result
%60 = OpCompositeExtract %float %59 1
%61 = OpFMul %float %58 %60
%62 = OpLoad %v4float %_1_result
%62 = OpLoad %v4float %_0_result
%63 = OpCompositeExtract %float %62 2
%64 = OpFMul %float %61 %63
%65 = OpLoad %v4float %_1_result
%65 = OpLoad %v4float %_0_result
%66 = OpCompositeExtract %float %65 3
%67 = OpFMul %float %64 %66
%68 = OpFUnordNotEqual %bool %67 %float_0

View File

@ -11,11 +11,11 @@ bool test_int() {
return bool(((result.x * result.y) * result.z) * result.w);
}
vec4 main() {
vec4 _1_result;
_1_result.x = 1.0;
_1_result.y = 1.0;
_1_result.z = 1.0;
_1_result.w = 1.0;
return bool(((_1_result.x * _1_result.y) * _1_result.z) * _1_result.w) && test_int() ? colorGreen : colorRed;
vec4 _0_result;
_0_result.x = 1.0;
_0_result.y = 1.0;
_0_result.z = 1.0;
_0_result.w = 1.0;
return bool(((_0_result.x * _0_result.y) * _0_result.z) * _0_result.w) && test_int() ? colorGreen : colorRed;
}

View File

@ -23,12 +23,12 @@ bool test_int() {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _1_result;
_1_result.x = 1.0;
_1_result.y = 1.0;
_1_result.z = 1.0;
_1_result.w = 1.0;
_out.sk_FragColor = bool(((_1_result.x * _1_result.y) * _1_result.z) * _1_result.w) && test_int() ? _uniforms.colorGreen : _uniforms.colorRed;
float4 _0_result;
_0_result.x = 1.0;
_0_result.y = 1.0;
_0_result.z = 1.0;
_0_result.w = 1.0;
_out.sk_FragColor = bool(((_0_result.x * _0_result.y) * _0_result.z) * _0_result.w) && test_int() ? _uniforms.colorGreen : _uniforms.colorRed;
return _out;
}

View File

@ -11,11 +11,11 @@ OpMemberName %_UniformBuffer 1 "colorGreen"
OpMemberName %_UniformBuffer 2 "colorRed"
OpName %_entrypoint "_entrypoint"
OpName %main "main"
OpName %_1_v "_1_v"
OpName %_2_x "_2_x"
OpName %_3_y "_3_y"
OpName %_4_z "_4_z"
OpName %_5_w "_5_w"
OpName %_0_v "_0_v"
OpName %_1_x "_1_x"
OpName %_2_y "_2_y"
OpName %_3_z "_3_z"
OpName %_4_w "_4_w"
OpName %a "a"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
@ -78,32 +78,32 @@ OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %18
%19 = OpLabel
%_1_v = OpVariable %_ptr_Function_v4float Function
%_2_x = OpVariable %_ptr_Function_float Function
%_3_y = OpVariable %_ptr_Function_float Function
%_4_z = OpVariable %_ptr_Function_float Function
%_5_w = OpVariable %_ptr_Function_float Function
%_0_v = OpVariable %_ptr_Function_v4float Function
%_1_x = OpVariable %_ptr_Function_float Function
%_2_y = OpVariable %_ptr_Function_float Function
%_3_z = OpVariable %_ptr_Function_float Function
%_4_w = OpVariable %_ptr_Function_float Function
%a = OpVariable %_ptr_Function_v4float Function
%55 = OpVariable %_ptr_Function_v4float Function
%22 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
%26 = OpLoad %v4float %22
OpStore %_1_v %26
%29 = OpLoad %v4float %_1_v
OpStore %_0_v %26
%29 = OpLoad %v4float %_0_v
%30 = OpCompositeExtract %float %29 0
OpStore %_2_x %30
%32 = OpLoad %v4float %_1_v
OpStore %_1_x %30
%32 = OpLoad %v4float %_0_v
%33 = OpCompositeExtract %float %32 1
OpStore %_3_y %33
%35 = OpLoad %v4float %_1_v
OpStore %_2_y %33
%35 = OpLoad %v4float %_0_v
%36 = OpCompositeExtract %float %35 2
OpStore %_4_z %36
%38 = OpLoad %v4float %_1_v
OpStore %_3_z %36
%38 = OpLoad %v4float %_0_v
%39 = OpCompositeExtract %float %38 3
OpStore %_5_w %39
%41 = OpLoad %float %_2_x
%42 = OpLoad %float %_3_y
%43 = OpLoad %float %_4_z
%44 = OpLoad %float %_5_w
OpStore %_4_w %39
%41 = OpLoad %float %_1_x
%42 = OpLoad %float %_2_y
%43 = OpLoad %float %_3_z
%44 = OpLoad %float %_4_w
%45 = OpCompositeConstruct %v4float %41 %42 %43 %44
OpStore %a %45
%46 = OpLoad %v4float %a

View File

@ -4,12 +4,12 @@ uniform vec4 testInputs;
uniform vec4 colorGreen;
uniform vec4 colorRed;
vec4 main() {
vec4 _1_v = testInputs;
float _2_x = _1_v.x;
float _3_y = _1_v.y;
float _4_z = _1_v.z;
float _5_w = _1_v.w;
vec4 a = vec4(_2_x, _3_y, _4_z, _5_w);
vec4 _0_v = testInputs;
float _1_x = _0_v.x;
float _2_y = _0_v.y;
float _3_z = _0_v.z;
float _4_w = _0_v.w;
vec4 a = vec4(_1_x, _2_y, _3_z, _4_w);
return a == vec4(-1.25, 0.0, 0.75, 2.25) ? colorGreen : colorRed;
}

View File

@ -17,12 +17,12 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _1_v = _uniforms.testInputs;
float _2_x = _1_v.x;
float _3_y = _1_v.y;
float _4_z = _1_v.z;
float _5_w = _1_v.w;
float4 a = float4(_2_x, _3_y, _4_z, _5_w);
float4 _0_v = _uniforms.testInputs;
float _1_x = _0_v.x;
float _2_y = _0_v.y;
float _3_z = _0_v.z;
float _4_w = _0_v.w;
float4 a = float4(_1_x, _2_y, _3_z, _4_w);
_out.sk_FragColor = all(a == float4(-1.25, 0.0, 0.75, 2.25)) ? _uniforms.colorGreen : _uniforms.colorRed;
return _out;

View File

@ -12,12 +12,12 @@ OpMemberName %_UniformBuffer 2 "colorGreen"
OpMemberName %_UniformBuffer 3 "colorRed"
OpName %_entrypoint "_entrypoint"
OpName %main "main"
OpName %_1_v "_1_v"
OpName %_2_i "_2_i"
OpName %_3_x "_3_x"
OpName %_4_y "_4_y"
OpName %_5_z "_5_z"
OpName %_6_w "_6_w"
OpName %_0_v "_0_v"
OpName %_1_i "_1_i"
OpName %_2_x "_2_x"
OpName %_3_y "_3_y"
OpName %_4_z "_4_z"
OpName %_5_w "_5_w"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
@ -82,16 +82,16 @@ OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %18
%19 = OpLabel
%_1_v = OpVariable %_ptr_Function_v4float Function
%_2_i = OpVariable %_ptr_Function_v4int Function
%_3_x = OpVariable %_ptr_Function_float Function
%_4_y = OpVariable %_ptr_Function_float Function
%_5_z = OpVariable %_ptr_Function_float Function
%_6_w = OpVariable %_ptr_Function_float Function
%_0_v = OpVariable %_ptr_Function_v4float Function
%_1_i = OpVariable %_ptr_Function_v4int Function
%_2_x = OpVariable %_ptr_Function_float Function
%_3_y = OpVariable %_ptr_Function_float Function
%_4_z = OpVariable %_ptr_Function_float Function
%_5_w = OpVariable %_ptr_Function_float Function
%74 = OpVariable %_ptr_Function_v4float Function
%22 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
%26 = OpLoad %v4float %22
OpStore %_1_v %26
OpStore %_0_v %26
%30 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
%32 = OpLoad %v4float %30
%33 = OpCompositeExtract %float %32 0
@ -103,31 +103,31 @@ OpStore %_1_v %26
%39 = OpCompositeExtract %float %32 3
%40 = OpConvertFToS %int %39
%41 = OpCompositeConstruct %v4int %34 %36 %38 %40
OpStore %_2_i %41
%44 = OpLoad %v4float %_1_v
%45 = OpLoad %v4int %_2_i
OpStore %_1_i %41
%44 = OpLoad %v4float %_0_v
%45 = OpLoad %v4int %_1_i
%46 = OpCompositeExtract %int %45 0
%47 = OpVectorExtractDynamic %float %44 %46
OpStore %_3_x %47
%49 = OpLoad %v4float %_1_v
%50 = OpLoad %v4int %_2_i
OpStore %_2_x %47
%49 = OpLoad %v4float %_0_v
%50 = OpLoad %v4int %_1_i
%51 = OpCompositeExtract %int %50 1
%52 = OpVectorExtractDynamic %float %49 %51
OpStore %_4_y %52
%54 = OpLoad %v4float %_1_v
%55 = OpLoad %v4int %_2_i
OpStore %_3_y %52
%54 = OpLoad %v4float %_0_v
%55 = OpLoad %v4int %_1_i
%56 = OpCompositeExtract %int %55 2
%57 = OpVectorExtractDynamic %float %54 %56
OpStore %_5_z %57
%59 = OpLoad %v4float %_1_v
%60 = OpLoad %v4int %_2_i
OpStore %_4_z %57
%59 = OpLoad %v4float %_0_v
%60 = OpLoad %v4int %_1_i
%61 = OpCompositeExtract %int %60 3
%62 = OpVectorExtractDynamic %float %59 %61
OpStore %_6_w %62
%63 = OpLoad %float %_3_x
%64 = OpLoad %float %_4_y
%65 = OpLoad %float %_5_z
%66 = OpLoad %float %_6_w
OpStore %_5_w %62
%63 = OpLoad %float %_2_x
%64 = OpLoad %float %_3_y
%65 = OpLoad %float %_4_z
%66 = OpLoad %float %_5_w
%67 = OpCompositeConstruct %v4float %63 %64 %65 %66
%71 = OpFOrdEqual %v4bool %67 %70
%73 = OpAll %bool %71

View File

@ -5,12 +5,12 @@ uniform vec4 colorBlack;
uniform vec4 colorGreen;
uniform vec4 colorRed;
vec4 main() {
vec4 _1_v = testInputs;
ivec4 _2_i = ivec4(colorBlack);
float _3_x = _1_v[_2_i.x];
float _4_y = _1_v[_2_i.y];
float _5_z = _1_v[_2_i.z];
float _6_w = _1_v[_2_i.w];
return vec4(_3_x, _4_y, _5_z, _6_w) == vec4(-1.25, -1.25, -1.25, 0.0) ? colorGreen : colorRed;
vec4 _0_v = testInputs;
ivec4 _1_i = ivec4(colorBlack);
float _2_x = _0_v[_1_i.x];
float _3_y = _0_v[_1_i.y];
float _4_z = _0_v[_1_i.z];
float _5_w = _0_v[_1_i.w];
return vec4(_2_x, _3_y, _4_z, _5_w) == vec4(-1.25, -1.25, -1.25, 0.0) ? colorGreen : colorRed;
}

View File

@ -19,13 +19,13 @@ struct Outputs {
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
float4 _1_v = _uniforms.testInputs;
int4 _2_i = int4(_uniforms.colorBlack);
float _3_x = _1_v[_2_i.x];
float _4_y = _1_v[_2_i.y];
float _5_z = _1_v[_2_i.z];
float _6_w = _1_v[_2_i.w];
_out.sk_FragColor = all(float4(_3_x, _4_y, _5_z, _6_w) == float4(-1.25, -1.25, -1.25, 0.0)) ? _uniforms.colorGreen : _uniforms.colorRed;
float4 _0_v = _uniforms.testInputs;
int4 _1_i = int4(_uniforms.colorBlack);
float _2_x = _0_v[_1_i.x];
float _3_y = _0_v[_1_i.y];
float _4_z = _0_v[_1_i.z];
float _5_w = _0_v[_1_i.w];
_out.sk_FragColor = all(float4(_2_x, _3_y, _4_z, _5_w) == float4(-1.25, -1.25, -1.25, 0.0)) ? _uniforms.colorGreen : _uniforms.colorRed;
return _out;
}

View File

@ -10,8 +10,8 @@ float _color_dodge_component(vec2 s, vec2 d) {
if (delta == 0.0) {
return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
} else {
float _4_n = d.x * s.y;
delta = min(d.y, _4_n / (delta + 9.9999999392252903e-09));
float _0_n = d.x * s.y;
delta = min(d.y, _0_n / (delta + 9.9999999392252903e-09));
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}
@ -23,24 +23,24 @@ float _color_burn_component(vec2 s, vec2 d) {
} else if (s.x == 0.0) {
return d.x * (1.0 - s.y);
} else {
float _6_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _6_n / (s.x + 9.9999999392252903e-09));
float _1_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _1_n / (s.x + 9.9999999392252903e-09));
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}
}
float _soft_light_component(vec2 s, vec2 d) {
if (2.0 * s.x <= s.y) {
float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_8_n / (d.y + 9.9999999392252903e-09) + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
float _2_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_2_n / (d.y + 9.9999999392252903e-09) + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
} else if (4.0 * d.x <= d.y) {
float DSqd = d.x * d.x;
float DCub = DSqd * d.x;
float DaSqd = d.y * d.y;
float DaCub = DaSqd * d.y;
float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _10_n / (DaSqd + 9.9999999392252903e-09);
float _3_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _3_n / (DaSqd + 9.9999999392252903e-09);
} else {
return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;

View File

@ -10,8 +10,8 @@ float _color_dodge_component(vec2 s, vec2 d) {
if (delta == 0.0) {
return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
} else {
float _4_n = d.x * s.y;
delta = min(d.y, _4_n / delta);
float _0_n = d.x * s.y;
delta = min(d.y, _0_n / delta);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}
@ -23,24 +23,24 @@ float _color_burn_component(vec2 s, vec2 d) {
} else if (s.x == 0.0) {
return d.x * (1.0 - s.y);
} else {
float _6_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _6_n / s.x);
float _1_n = (d.y - d.x) * s.y;
float delta = max(0.0, d.y - _1_n / s.x);
return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
}
}
float _soft_light_component(vec2 s, vec2 d) {
if (2.0 * s.x <= s.y) {
float _8_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_8_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
float _2_n = (d.x * d.x) * (s.y - 2.0 * s.x);
return (_2_n / d.y + (1.0 - d.y) * s.x) + d.x * ((-s.y + 2.0 * s.x) + 1.0);
} else if (4.0 * d.x <= d.y) {
float DSqd = d.x * d.x;
float DCub = DSqd * d.x;
float DaSqd = d.y * d.y;
float DaCub = DaSqd * d.y;
float _10_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _10_n / DaSqd;
float _3_n = ((DaSqd * (s.x - d.x * ((3.0 * s.y - 6.0 * s.x) - 1.0)) + ((12.0 * d.y) * DSqd) * (s.y - 2.0 * s.x)) - (16.0 * DCub) * (s.y - 2.0 * s.x)) - DaCub * s.x;
return _3_n / DaSqd;
} else {
return ((d.x * ((s.y - 2.0 * s.x) + 1.0) + s.x) - sqrt(d.y * d.x) * (s.y - 2.0 * s.x)) - d.y * s.x;