diff options
Diffstat (limited to 'reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag')
-rw-r--r-- | reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag | 119 |
1 files changed, 45 insertions, 74 deletions
diff --git a/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag b/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag index 04b9018b..23f2856b 100644 --- a/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag +++ b/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag @@ -100,8 +100,6 @@ constant spvUnsafeArray<float, 10> _480 = spvUnsafeArray<float, 10>({ 0.80891323 constant spvUnsafeArray<float, 10> _482 = spvUnsafeArray<float, 10>({ -2.3010299205780029296875, -2.3010299205780029296875, -1.9312000274658203125, -1.5204999446868896484375, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); constant spvUnsafeArray<float, 10> _483 = spvUnsafeArray<float, 10>({ 0.801995217800140380859375, 1.19800484180450439453125, 1.5943000316619873046875, 1.99730002880096435546875, 2.3782999515533447265625, 2.7683999538421630859375, 3.0515000820159912109375, 3.2746293544769287109375, 3.32743072509765625, 3.32743072509765625 }); -constant float3 _391 = {}; - struct main0_out { float4 out_var_SV_Target0 [[color(0)]]; @@ -172,26 +170,18 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } float _602 = _Globals.WhiteTemp * 1.00055634975433349609375; float _616 = (_602 <= 7000.0) ? (0.24406300485134124755859375 + ((99.1100006103515625 + ((2967800.0 - (4604438528.0 / _Globals.WhiteTemp)) / _602)) / _602)) : (0.23703999817371368408203125 + ((247.4799957275390625 + ((1901800.0 - (2005284352.0 / _Globals.WhiteTemp)) / _602)) / _602)); - float _633 = ((0.860117733478546142578125 + (0.00015411825734190642833709716796875 * _Globals.WhiteTemp)) + ((1.2864121856637211749330163002014e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 + (0.0008424202096648514270782470703125 * _Globals.WhiteTemp)) + ((7.0814513719597016461193561553955e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _644 = ((0.317398726940155029296875 + (4.25 * _Globals.WhiteTemp)) + ((4.2048167614439080352894961833954e-08 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 - (2.8974181986995972692966461181641e-05 * _Globals.WhiteTemp)) + ((1.6145605741257895715534687042236e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); + float _633 = fma(1.2864121856637211749330163002014e-07 * _Globals.WhiteTemp, _Globals.WhiteTemp, fma(0.00015411825734190642833709716796875, _Globals.WhiteTemp, 0.860117733478546142578125)) / fma(7.0814513719597016461193561553955e-07 * _Globals.WhiteTemp, _Globals.WhiteTemp, fma(0.0008424202096648514270782470703125, _Globals.WhiteTemp, 1.0)); + float _644 = fma(4.2048167614439080352894961833954e-08 * _Globals.WhiteTemp, _Globals.WhiteTemp, fma(4.25, _Globals.WhiteTemp, 0.317398726940155029296875)) / fma(1.6145605741257895715534687042236e-07 * _Globals.WhiteTemp, _Globals.WhiteTemp, 1.0 - (2.8974181986995972692966461181641e-05 * _Globals.WhiteTemp)); float _649 = ((2.0 * _633) - (8.0 * _644)) + 4.0; float2 _653 = float2((3.0 * _633) / _649, (2.0 * _644) / _649); float2 _660 = fast::normalize(float2(_633, _644)); - float _665 = _633 + (((-_660.y) * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _669 = _644 + ((_660.x * _Globals.WhiteTint) * 0.0500000007450580596923828125); + float _665 = fma((-_660.y) * _Globals.WhiteTint, 0.0500000007450580596923828125, _633); + float _669 = fma(_660.x * _Globals.WhiteTint, 0.0500000007450580596923828125, _644); float _674 = ((2.0 * _665) - (8.0 * _669)) + 4.0; - float2 _680 = select(float2(_616, (_616 * (((-3.0) * _616) + 2.86999988555908203125)) - 0.2750000059604644775390625), _653, bool2(_Globals.WhiteTemp < 4000.0)) + (float2((3.0 * _665) / _674, (2.0 * _669) / _674) - _653); + float2 _680 = select(float2(_616, (_616 * fma(-3.0, _616, 2.86999988555908203125)) - 0.2750000059604644775390625), _653, bool2(_Globals.WhiteTemp < 4000.0)) + (float2((3.0 * _665) / _674, (2.0 * _669) / _674) - _653); float _683 = fast::max(_680.y, 1.0000000133514319600180897396058e-10); - float3 _685; - _685.x = _680.x / _683; - _685.y = 1.0; - _685.z = ((1.0 - _680.x) - _680.y) / _683; - float3 _693; - _693.x = 0.950455963611602783203125; - _693.y = 1.0; - _693.z = 1.0890576839447021484375; - float3 _697 = _685 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _698 = _693 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); + float3 _697 = float3(_680.x / _683, 1.0, ((1.0 - _680.x) - _680.y) / _683) * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); + float3 _698 = float3(0.950455963611602783203125, 1.0, 1.0890576839447021484375) * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); float3 _717 = (_599 * ((float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * ((float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)) * float3x3(float3(_698.x / _697.x, 0.0, 0.0), float3(0.0, _698.y / _697.y, 0.0), float3(0.0, 0.0, _698.z / _697.z))) * float3x3(float3(0.986992895603179931640625, -0.14705429971218109130859375, 0.15996269881725311279296875), float3(0.4323053061962127685546875, 0.518360316753387451171875, 0.049291200935840606689453125), float3(-0.00852870009839534759521484375, 0.0400427989661693572998046875, 0.968486726284027099609375)))) * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)))) * _547; float3 _745; if (_Globals.ColorShadow_Tint2.w != 0.0) @@ -223,7 +213,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float4 _861 = _Globals.ColorGammaMidtones * _Globals.ColorGamma; float4 _864 = _Globals.ColorGainMidtones * _Globals.ColorGain; float4 _867 = _Globals.ColorOffsetMidtones + _Globals.ColorOffset; - float3 _905 = ((((pow(pow(fast::max(float3(0.0), mix(_772, _745, _751.xyz * float3(_751.w))) * float3(5.5555553436279296875), _756.xyz * float3(_756.w)) * float3(0.180000007152557373046875), float3(1.0) / (_761.xyz * float3(_761.w))) * (_766.xyz * float3(_766.w))) + (_771.xyz + float3(_771.w))) * float3(1.0 - _804)) + (((pow(pow(fast::max(float3(0.0), mix(_772, _745, _855.xyz * float3(_855.w))) * float3(5.5555553436279296875), _858.xyz * float3(_858.w)) * float3(0.180000007152557373046875), float3(1.0) / (_861.xyz * float3(_861.w))) * (_864.xyz * float3(_864.w))) + (_867.xyz + float3(_867.w))) * float3(_804 - _852))) + (((pow(pow(fast::max(float3(0.0), mix(_772, _745, _808.xyz * float3(_808.w))) * float3(5.5555553436279296875), _811.xyz * float3(_811.w)) * float3(0.180000007152557373046875), float3(1.0) / (_814.xyz * float3(_814.w))) * (_817.xyz * float3(_817.w))) + (_820.xyz + float3(_820.w))) * float3(_852)); + float3 _905 = fma(fma(pow(pow(fast::max(float3(0.0), mix(_772, _745, _808.xyz * float3(_808.w))) * float3(5.5555553436279296875), _811.xyz * float3(_811.w)) * float3(0.180000007152557373046875), float3(1.0) / (_814.xyz * float3(_814.w))), _817.xyz * float3(_817.w), _820.xyz + float3(_820.w)), float3(_852), fma(fma(pow(pow(fast::max(float3(0.0), mix(_772, _745, _751.xyz * float3(_751.w))) * float3(5.5555553436279296875), _756.xyz * float3(_756.w)) * float3(0.180000007152557373046875), float3(1.0) / (_761.xyz * float3(_761.w))), _766.xyz * float3(_766.w), _771.xyz + float3(_771.w)), float3(1.0 - _804), fma(pow(pow(fast::max(float3(0.0), mix(_772, _745, _855.xyz * float3(_855.w))) * float3(5.5555553436279296875), _858.xyz * float3(_858.w)) * float3(0.180000007152557373046875), float3(1.0) / (_861.xyz * float3(_861.w))), _864.xyz * float3(_864.w), _867.xyz + float3(_867.w)) * float3(_804 - _852))); float3 _906 = _905 * _549; float3 _914 = float3(_Globals.BlueCorrection); float3 _916 = mix(_905, _905 * ((_551 * float3x3(float3(0.940437257289886474609375, -0.01830687932670116424560546875, 0.07786960899829864501953125), float3(0.008378696627914905548095703125, 0.82866001129150390625, 0.162961304187774658203125), float3(0.0005471261101774871349334716796875, -0.00088337459601461887359619140625, 1.00033628940582275390625))) * _550), _914) * _551; @@ -232,11 +222,11 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float _920 = _916.z; float _923 = fast::max(fast::max(_917, _918), _920); float _928 = (fast::max(_923, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_917, _918), _920), 1.0000000133514319600180897396058e-10)) / fast::max(_923, 0.00999999977648258209228515625); - float _941 = ((_920 + _918) + _917) + (1.75 * sqrt(((_920 * (_920 - _918)) + (_918 * (_918 - _917))) + (_917 * (_917 - _920)))); + float _941 = fma(1.75, sqrt(fma(_917, _917 - _920, fma(_920, _920 - _918, _918 * (_918 - _917)))), (_920 + _918) + _917); float _942 = _941 * 0.3333333432674407958984375; float _943 = _928 - 0.4000000059604644775390625; float _948 = fast::max(1.0 - abs(_943 * 2.5), 0.0); - float _956 = (1.0 + (float(int(sign(_943 * 5.0))) * (1.0 - (_948 * _948)))) * 0.02500000037252902984619140625; + float _956 = fma(float(int(sign(_943 * 5.0))), 1.0 - (_948 * _948), 1.0) * 0.02500000037252902984619140625; float _969; if (_942 <= 0.053333334624767303466796875) { @@ -288,7 +278,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa _1001 = _996; } float _1005 = smoothstep(0.0, 1.0, 1.0 - abs(_1001 * 0.01481481455266475677490234375)); - _972.x = _973 + ((((_1005 * _1005) * _928) * (0.02999999932944774627685546875 - _973)) * 0.180000007152557373046875); + _972.x = fma(((_1005 * _1005) * _928) * (0.02999999932944774627685546875 - _973), 0.180000007152557373046875, _973); float3 _1014 = fast::max(float3(0.0), _972 * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375))); float _1023 = (1.0 + _Globals.FilmBlackClip) - _Globals.FilmToe; float _1026 = 1.0 + _Globals.FilmWhiteClip; @@ -305,8 +295,9 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } float _1061 = ((1.0 - _Globals.FilmToe) / _Globals.FilmSlope) - _1056; float _1063 = (_Globals.FilmShoulder / _Globals.FilmSlope) - _1061; - float3 _1067 = log(mix(float3(dot(_1014, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1014, float3(0.959999978542327880859375))) * float3(0.4342944622039794921875); - float3 _1071 = float3(_Globals.FilmSlope) * (_1067 + float3(_1061)); + float3 _1064 = log(mix(float3(dot(_1014, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1014, float3(0.959999978542327880859375))); + float3 _1067 = _1064 * float3(0.4342944622039794921875); + float3 _1071 = float3(_Globals.FilmSlope) * fma(_1064, float3(0.4342944622039794921875), float3(_1061)); float3 _1079 = float3(_1056); float3 _1080 = _1067 - _1079; float3 _1092 = float3(_1063); @@ -317,20 +308,16 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float3 _1189; if (_Globals.ColorShadow_Tint2.w == 0.0) { - float3 _1131; - _1131.x = dot(_906, _Globals.ColorMatrixR_ColorCurveCd1.xyz); - _1131.y = dot(_906, _Globals.ColorMatrixG_ColorCurveCd3Cm3.xyz); - _1131.z = dot(_906, _Globals.ColorMatrixB_ColorCurveCm2.xyz); - float3 _1157 = fast::max(float3(0.0), _1131 * (_Globals.ColorShadow_Tint1.xyz + (_Globals.ColorShadow_Tint2.xyz * float3(1.0 / (dot(_906, _Globals.ColorShadow_Luma.xyz) + 1.0))))); + float3 _1157 = fast::max(float3(0.0), float3(dot(_906, _Globals.ColorMatrixR_ColorCurveCd1.xyz), dot(_906, _Globals.ColorMatrixG_ColorCurveCd3Cm3.xyz), dot(_906, _Globals.ColorMatrixB_ColorCurveCm2.xyz)) * fma(_Globals.ColorShadow_Tint2.xyz, float3(1.0 / (dot(_906, _Globals.ColorShadow_Luma.xyz) + 1.0)), _Globals.ColorShadow_Tint1.xyz)); float3 _1162 = fast::max(float3(0.0), _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx - _1157); float3 _1164 = fast::max(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz); - _1189 = ((((_1164 * _Globals.ColorCurve_Ch1_Ch2.xxx) + _Globals.ColorCurve_Ch1_Ch2.yyy) * (float3(1.0) / (_1164 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.www))) + ((fast::clamp(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz) * _Globals.ColorMatrixB_ColorCurveCm2.www) + (((_1162 * _Globals.ColorMatrixR_ColorCurveCd1.www) * (float3(1.0) / (_1162 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.yyy))) + _Globals.ColorMatrixG_ColorCurveCd3Cm3.www))) - float3(0.00200000009499490261077880859375); + _1189 = fma(fma(_1164, _Globals.ColorCurve_Ch1_Ch2.xxx, _Globals.ColorCurve_Ch1_Ch2.yyy), float3(1.0) / (_1164 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.www), fma(fast::clamp(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz), _Globals.ColorMatrixB_ColorCurveCm2.www, fma(_1162 * _Globals.ColorMatrixR_ColorCurveCd1.www, float3(1.0) / (_1162 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.yyy), _Globals.ColorMatrixG_ColorCurveCd3Cm3.www))) - float3(0.00200000009499490261077880859375); } else { _1189 = fast::max(float3(0.0), mix(_1119, _1119 * ((_551 * float3x3(float3(1.06317996978759765625, 0.02339559979736804962158203125, -0.08657260239124298095703125), float3(-0.010633699595928192138671875, 1.2063200473785400390625, -0.1956900060176849365234375), float3(-0.0005908869788981974124908447265625, 0.00105247995816171169281005859375, 0.999538004398345947265625))) * _550), _914) * _549); } - float3 _1218 = pow(fast::max(float3(0.0), mix((((float3(_Globals.MappingPolynomial.x) * (_1189 * _1189)) + (float3(_Globals.MappingPolynomial.y) * _1189)) + float3(_Globals.MappingPolynomial.z)) * float3(_Globals.ColorScale), _Globals.OverlayColor.xyz, float3(_Globals.OverlayColor.w))), float3(_Globals.InverseGamma.y)); + float3 _1218 = pow(fast::max(float3(0.0), mix((fma(float3(_Globals.MappingPolynomial.x), _1189 * _1189, float3(_Globals.MappingPolynomial.y) * _1189) + float3(_Globals.MappingPolynomial.z)) * float3(_Globals.ColorScale), _Globals.OverlayColor.xyz, float3(_Globals.OverlayColor.w))), float3(_Globals.InverseGamma.y)); float3 _3001; if (_Globals.OutputDevice == 0u) { @@ -391,11 +378,11 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float _2104 = _2100.z; float _2107 = fast::max(fast::max(_2101, _2102), _2104); float _2112 = (fast::max(_2107, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_2101, _2102), _2104), 1.0000000133514319600180897396058e-10)) / fast::max(_2107, 0.00999999977648258209228515625); - float _2125 = ((_2104 + _2102) + _2101) + (1.75 * sqrt(((_2104 * (_2104 - _2102)) + (_2102 * (_2102 - _2101))) + (_2101 * (_2101 - _2104)))); + float _2125 = fma(1.75, sqrt(fma(_2101, _2101 - _2104, fma(_2104, _2104 - _2102, _2102 * (_2102 - _2101)))), (_2104 + _2102) + _2101); float _2126 = _2125 * 0.3333333432674407958984375; float _2127 = _2112 - 0.4000000059604644775390625; float _2132 = fast::max(1.0 - abs(_2127 * 2.5), 0.0); - float _2140 = (1.0 + (float(int(sign(_2127 * 5.0))) * (1.0 - (_2132 * _2132)))) * 0.02500000037252902984619140625; + float _2140 = fma(float(int(sign(_2127 * 5.0))), 1.0 - (_2132 * _2132), 1.0) * 0.02500000037252902984619140625; float _2153; if (_2126 <= 0.053333334624767303466796875) { @@ -457,21 +444,21 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float _2234; if (_2193 == 3) { - _2234 = (((_2197 * (-0.16666667163372039794921875)) + (_2196 * 0.5)) + (_2195 * (-0.5))) + 0.16666667163372039794921875; + _2234 = fma(_2195, -0.5, fma(_2197, -0.16666667163372039794921875, _2196 * 0.5)) + 0.16666667163372039794921875; } else { float _2227; if (_2193 == 2) { - _2227 = ((_2197 * 0.5) + (_2196 * (-1.0))) + 0.666666686534881591796875; + _2227 = fma(_2197, 0.5, _2196 * (-1.0)) + 0.666666686534881591796875; } else { float _2222; if (_2193 == 1) { - _2222 = (((_2197 * (-0.5)) + (_2196 * 0.5)) + (_2195 * 0.5)) + 0.16666667163372039794921875; + _2222 = fma(_2195, 0.5, fma(_2197, -0.5, _2196 * 0.5)) + 0.16666667163372039794921875; } else { @@ -496,7 +483,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa { _2235 = 0.0; } - _2156.x = _2157 + ((((_2235 * 1.5) * _2112) * (0.02999999932944774627685546875 - _2157)) * 0.180000007152557373046875); + _2156.x = fma(((_2235 * 1.5) * _2112) * (0.02999999932944774627685546875 - _2157), 0.180000007152557373046875, _2157); float3 _2245 = fast::clamp(fast::clamp(_2156, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); float3 _2248 = mix(float3(dot(_2245, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _2245, float3(0.959999978542327880859375)); float _2249 = _2248.x; @@ -534,8 +521,6 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } _2327 = _2324; } - float3 _2329; - _2329.x = pow(10.0, _2327); float _2330 = _2248.y; float _2334 = log((_2330 <= 0.0) ? 6.103515625e-05 : _2330) * 0.4342944622039794921875; float _2401; @@ -571,7 +556,6 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } _2401 = _2398; } - _2329.y = pow(10.0, _2401); float _2404 = _2248.z; float _2408 = log((_2404 <= 0.0) ? 6.103515625e-05 : _2404) * 0.4342944622039794921875; float _2475; @@ -607,8 +591,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } _2475 = _2472; } - _2329.z = pow(10.0, _2475); - float3 _2479 = (_2329 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); + float3 _2479 = (float3(pow(10.0, _2327), pow(10.0, _2401), pow(10.0, _2475)) * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); float _2612 = pow(10.0, (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875)).z); float _2684 = pow(10.0, dot(float3(0.4444443881511688232421875, 0.66666662693023681640625, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(2.0810306072235107421875, 3.66812419891357421875, 4.0))); float _2685 = _2479.x; @@ -619,7 +602,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float _2768; if (_2689 <= _2691) { - _2768 = (_2688 * 1.3028833866119384765625) + ((-4.0) - (_2690 * 1.3028833866119384765625)); + _2768 = fma(_2688, 1.3028833866119384765625, (-4.0) - (_2690 * 1.3028833866119384765625)); } else { @@ -646,21 +629,19 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } else { - _2739 = (_2688 * 0.026057668030261993408203125) + (3.0 - (_2705 * 0.026057668030261993408203125)); + _2739 = fma(_2688, 0.026057668030261993408203125, 3.0 - (_2705 * 0.026057668030261993408203125)); } _2760 = _2739; } _2768 = _2760; } - float3 _2770; - _2770.x = pow(10.0, _2768); float _2771 = _2479.y; float _2774 = log((_2771 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2771); float _2775 = _2774 * 0.4342944622039794921875; float _2852; if (_2775 <= _2691) { - _2852 = (_2774 * 1.3028833866119384765625) + ((-4.0) - (_2690 * 1.3028833866119384765625)); + _2852 = fma(_2774, 1.3028833866119384765625, (-4.0) - (_2690 * 1.3028833866119384765625)); } else { @@ -687,20 +668,19 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } else { - _2823 = (_2774 * 0.026057668030261993408203125) + (3.0 - (_2789 * 0.026057668030261993408203125)); + _2823 = fma(_2774, 0.026057668030261993408203125, 3.0 - (_2789 * 0.026057668030261993408203125)); } _2844 = _2823; } _2852 = _2844; } - _2770.y = pow(10.0, _2852); float _2855 = _2479.z; float _2858 = log((_2855 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2855); float _2859 = _2858 * 0.4342944622039794921875; float _2936; if (_2859 <= _2691) { - _2936 = (_2858 * 1.3028833866119384765625) + ((-4.0) - (_2690 * 1.3028833866119384765625)); + _2936 = fma(_2858, 1.3028833866119384765625, (-4.0) - (_2690 * 1.3028833866119384765625)); } else { @@ -727,15 +707,14 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } else { - _2907 = (_2858 * 0.026057668030261993408203125) + (3.0 - (_2873 * 0.026057668030261993408203125)); + _2907 = fma(_2858, 0.026057668030261993408203125, 3.0 - (_2873 * 0.026057668030261993408203125)); } _2928 = _2907; } _2936 = _2928; } - _2770.z = pow(10.0, _2936); - float3 _2942 = pow(((_2770 - float3(3.5073844628641381859779357910156e-05)) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2950 = pow((float3(0.8359375) + (float3(18.8515625) * _2942)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2942))), float3(78.84375)); + float3 _2942 = pow(((float3(pow(10.0, _2768), pow(10.0, _2852), pow(10.0, _2936)) - float3(3.5073844628641381859779357910156e-05)) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); + _2950 = pow(fma(float3(18.8515625), _2942, float3(0.8359375)) * (float3(1.0) / fma(float3(18.6875), _2942, float3(1.0))), float3(78.84375)); } else { @@ -748,11 +727,11 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float _1267 = _1263.z; float _1270 = fast::max(fast::max(_1264, _1265), _1267); float _1275 = (fast::max(_1270, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_1264, _1265), _1267), 1.0000000133514319600180897396058e-10)) / fast::max(_1270, 0.00999999977648258209228515625); - float _1288 = ((_1267 + _1265) + _1264) + (1.75 * sqrt(((_1267 * (_1267 - _1265)) + (_1265 * (_1265 - _1264))) + (_1264 * (_1264 - _1267)))); + float _1288 = fma(1.75, sqrt(fma(_1264, _1264 - _1267, fma(_1267, _1267 - _1265, _1265 * (_1265 - _1264)))), (_1267 + _1265) + _1264); float _1289 = _1288 * 0.3333333432674407958984375; float _1290 = _1275 - 0.4000000059604644775390625; float _1295 = fast::max(1.0 - abs(_1290 * 2.5), 0.0); - float _1303 = (1.0 + (float(int(sign(_1290 * 5.0))) * (1.0 - (_1295 * _1295)))) * 0.02500000037252902984619140625; + float _1303 = fma(float(int(sign(_1290 * 5.0))), 1.0 - (_1295 * _1295), 1.0) * 0.02500000037252902984619140625; float _1316; if (_1289 <= 0.053333334624767303466796875) { @@ -814,21 +793,21 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa float _1397; if (_1356 == 3) { - _1397 = (((_1360 * (-0.16666667163372039794921875)) + (_1359 * 0.5)) + (_1358 * (-0.5))) + 0.16666667163372039794921875; + _1397 = fma(_1358, -0.5, fma(_1360, -0.16666667163372039794921875, _1359 * 0.5)) + 0.16666667163372039794921875; } else { float _1390; if (_1356 == 2) { - _1390 = ((_1360 * 0.5) + (_1359 * (-1.0))) + 0.666666686534881591796875; + _1390 = fma(_1360, 0.5, _1359 * (-1.0)) + 0.666666686534881591796875; } else { float _1385; if (_1356 == 1) { - _1385 = (((_1360 * (-0.5)) + (_1359 * 0.5)) + (_1358 * 0.5)) + 0.16666667163372039794921875; + _1385 = fma(_1358, 0.5, fma(_1360, -0.5, _1359 * 0.5)) + 0.16666667163372039794921875; } else { @@ -853,7 +832,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa { _1398 = 0.0; } - _1319.x = _1320 + ((((_1398 * 1.5) * _1275) * (0.02999999932944774627685546875 - _1320)) * 0.180000007152557373046875); + _1319.x = fma(((_1398 * 1.5) * _1275) * (0.02999999932944774627685546875 - _1320), 0.180000007152557373046875, _1320); float3 _1408 = fast::clamp(fast::clamp(_1319, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); float3 _1411 = mix(float3(dot(_1408, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1408, float3(0.959999978542327880859375)); float _1412 = _1411.x; @@ -891,8 +870,6 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } _1490 = _1487; } - float3 _1492; - _1492.x = pow(10.0, _1490); float _1493 = _1411.y; float _1497 = log((_1493 <= 0.0) ? 6.103515625e-05 : _1493) * 0.4342944622039794921875; float _1564; @@ -928,7 +905,6 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } _1564 = _1561; } - _1492.y = pow(10.0, _1564); float _1567 = _1411.z; float _1571 = log((_1567 <= 0.0) ? 6.103515625e-05 : _1567) * 0.4342944622039794921875; float _1638; @@ -964,8 +940,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } _1638 = _1635; } - _1492.z = pow(10.0, _1638); - float3 _1642 = (_1492 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); + float3 _1642 = (float3(pow(10.0, _1490), pow(10.0, _1564), pow(10.0, _1638)) * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); float _1775 = pow(10.0, (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875)).z); float _1847 = pow(10.0, dot(float3(0.69444429874420166015625, 0.8333332538604736328125, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(2.0810306072235107421875, 3.66812419891357421875, 4.0))); float _1848 = _1642.x; @@ -1002,14 +977,12 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } else { - _1902 = (_1851 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_1868 * 0.05211533606052398681640625)); + _1902 = fma(_1851, 0.05211533606052398681640625, 3.3010299205780029296875 - (_1868 * 0.05211533606052398681640625)); } _1923 = _1902; } _1926 = _1923; } - float3 _1928; - _1928.x = pow(10.0, _1926); float _1929 = _1642.y; float _1932 = log((_1929 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1929); float _1933 = _1932 * 0.4342944622039794921875; @@ -1043,13 +1016,12 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } else { - _1981 = (_1932 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_1947 * 0.05211533606052398681640625)); + _1981 = fma(_1932, 0.05211533606052398681640625, 3.3010299205780029296875 - (_1947 * 0.05211533606052398681640625)); } _2002 = _1981; } _2005 = _2002; } - _1928.y = pow(10.0, _2005); float _2008 = _1642.z; float _2011 = log((_2008 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2008); float _2012 = _2011 * 0.4342944622039794921875; @@ -1083,15 +1055,14 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa } else { - _2060 = (_2011 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_2026 * 0.05211533606052398681640625)); + _2060 = fma(_2011, 0.05211533606052398681640625, 3.3010299205780029296875 - (_2026 * 0.05211533606052398681640625)); } _2081 = _2060; } _2084 = _2081; } - _1928.z = pow(10.0, _2084); - float3 _2089 = pow((_1928 * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2097 = pow((float3(0.8359375) + (float3(18.8515625) * _2089)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2089))), float3(78.84375)); + float3 _2089 = pow((float3(pow(10.0, _1926), pow(10.0, _2005), pow(10.0, _2084)) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); + _2097 = pow(fma(float3(18.8515625), _2089, float3(0.8359375)) * (float3(1.0) / fma(float3(18.6875), _2089, float3(1.0))), float3(78.84375)); } else { @@ -1099,7 +1070,7 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globa if (_Globals.OutputDevice == 7u) { float3 _1252 = pow(((_906 * _547) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _1260 = pow((float3(0.8359375) + (float3(18.8515625) * _1252)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _1252))), float3(78.84375)); + _1260 = pow(fma(float3(18.8515625), _1252, float3(0.8359375)) * (float3(1.0) / fma(float3(18.6875), _1252, float3(1.0))), float3(78.84375)); } else { |