summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glsl-optimizer/tests/fragment/bug-sampler-highpfull-outES3Metal.txt
blob: 504f13c2fa0814e859e38eb818dd50559678b3ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#include <metal_stdlib>
using namespace metal;
constant float2 _xlat_mtl_const1[12] = {float2(-0.326212, -0.40581), float2(-0.840144, -0.07358), float2(-0.695914, 0.457137), float2(-0.203345, 0.620716), float2(0.96234, -0.194983), float2(0.473434, -0.480026), float2(0.519456, 0.767022), float2(0.185461, -0.893124), float2(0.507431, 0.064425), float2(0.89642, 0.412458), float2(-0.32194, -0.932615), float2(-0.791559, -0.59771)};
struct xlatMtlShaderInput {
  float2 xlv_TEXCOORD0;
};
struct xlatMtlShaderOutput {
  half4 _fragData [[color(0)]];
};
struct xlatMtlShaderUniform {
  float4 _ZBufferParams;
  float4 _MainTex_TexelSize;
  float _Jitter;
  float _MaxVelocity;
  float _SoftZDistance;
};
fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]
  ,   texture2d<half> _MainTex [[texture(0)]], sampler _mtlsmp__MainTex [[sampler(0)]]
  ,   texture2d<float> _CameraDepthTexture [[texture(1)]], sampler _mtlsmp__CameraDepthTexture [[sampler(1)]]
  ,   texture2d<half> _VelTex [[texture(2)]], sampler _mtlsmp__VelTex [[sampler(2)]]
  ,   texture2d<half> _NeighbourMaxTex [[texture(3)]], sampler _mtlsmp__NeighbourMaxTex [[sampler(3)]]
  ,   texture2d<half> _NoiseTex [[texture(4)]], sampler _mtlsmp__NoiseTex [[sampler(4)]])
{
  xlatMtlShaderOutput _mtl_o;
  float2 tmpvar_1;
  tmpvar_1 = _mtl_i.xlv_TEXCOORD0;
  float4 jitteredDir_3;
  float4 sum_4;
  float weight_5;
  float zx_6;
  float2 vx_7;
  float2 x_8;
  float2 xf_9;
  xf_9 = _mtl_i.xlv_TEXCOORD0;
  x_8 = _mtl_i.xlv_TEXCOORD0;
  if ((_mtl_u._MainTex_TexelSize.y < 0.0)) {
    xf_9.y = (1.0 - _mtl_i.xlv_TEXCOORD0.y);
  };
  half4 tmpvar_10;
  tmpvar_10 = _NeighbourMaxTex.sample(_mtlsmp__NeighbourMaxTex, (float2)(xf_9), level(0.0));
  float2 tmpvar_11;
  tmpvar_11 = float2(tmpvar_10.xy);
  half4 tmpvar_12;
  tmpvar_12 = _MainTex.sample(_mtlsmp__MainTex, (float2)(_mtl_i.xlv_TEXCOORD0), level(0.0));
  float4 tmpvar_13;
  tmpvar_13 = float4(tmpvar_12);
  half4 tmpvar_14;
  tmpvar_14 = _VelTex.sample(_mtlsmp__VelTex, (float2)(xf_9), level(0.0));
  float2 tmpvar_15;
  tmpvar_15 = float2(tmpvar_14.xy);
  vx_7 = tmpvar_15;
  float4 tmpvar_16;
  tmpvar_16.zw = float2(0.0, 0.0);
  tmpvar_16.xy = _mtl_i.xlv_TEXCOORD0;
  float4 coord_17;
  coord_17 = (tmpvar_16 * 11.0);
  half4 tmpvar_18;
  tmpvar_18 = _NoiseTex.sample(_mtlsmp__NoiseTex, (float2)(coord_17.xy), level(coord_17.w));
  float4 tmpvar_19;
  tmpvar_19 = float4(((tmpvar_18 * (half)2.0) - (half)1.0));
  zx_6 = -((1.0/((
    (_mtl_u._ZBufferParams.x * _CameraDepthTexture.sample(_mtlsmp__CameraDepthTexture, (float2)(_mtl_i.xlv_TEXCOORD0), level(0.0)).x)
   + _mtl_u._ZBufferParams.y))));
  weight_5 = 1.0;
  sum_4 = tmpvar_13;
  float4 tmpvar_20;
  tmpvar_20 = (tmpvar_11.xyxy + (tmpvar_19 * (_mtl_u._MainTex_TexelSize.xyxy * _mtl_u._Jitter)).xyyz);
  jitteredDir_3 = ((max (
    abs(tmpvar_20.xyxy)
  , 
    ((_mtl_u._MainTex_TexelSize.xyxy * _mtl_u._MaxVelocity) * 0.15)
  ) * sign(tmpvar_20.xyxy)) * float4(1.0, 1.0, -1.0, -1.0));
  for (int l_2 = 0; l_2 < 12; l_2++) {
    float zy_21;
    float4 yf_22;
    float4 tmpvar_23;
    tmpvar_23 = (tmpvar_1.xyxy + ((jitteredDir_3.xyxy * _xlat_mtl_const1[l_2].xyxy) * float4(1.0, 1.0, -1.0, -1.0)));
    yf_22 = tmpvar_23;
    if ((_mtl_u._MainTex_TexelSize.y < 0.0)) {
      yf_22.yw = (1.0 - tmpvar_23.yw);
    };
    half4 tmpvar_24;
    tmpvar_24 = _VelTex.sample(_mtlsmp__VelTex, (float2)(yf_22.xy), level(0.0));
    float2 tmpvar_25;
    tmpvar_25 = float2(tmpvar_24.xy);
    zy_21 = -((1.0/((
      (_mtl_u._ZBufferParams.x * _CameraDepthTexture.sample(_mtlsmp__CameraDepthTexture, (float2)(tmpvar_23.xy), level(0.0)).x)
     + _mtl_u._ZBufferParams.y))));
    float2 x_26;
    x_26 = (x_8 - tmpvar_23.xy);
    float2 x_27;
    x_27 = (tmpvar_23.xy - x_8);
    float tmpvar_28;
    tmpvar_28 = sqrt(dot (tmpvar_25, tmpvar_25));
    float2 x_29;
    x_29 = (tmpvar_23.xy - x_8);
    float edge0_30;
    edge0_30 = (0.95 * tmpvar_28);
    float tmpvar_31;
    tmpvar_31 = clamp (((
      sqrt(dot (x_29, x_29))
     - edge0_30) / (
      (1.05 * tmpvar_28)
     - edge0_30)), 0.0, 1.0);
    float tmpvar_32;
    tmpvar_32 = sqrt(dot (vx_7, vx_7));
    float2 x_33;
    x_33 = (x_8 - tmpvar_23.xy);
    float edge0_34;
    edge0_34 = (0.95 * tmpvar_32);
    float tmpvar_35;
    tmpvar_35 = clamp (((
      sqrt(dot (x_33, x_33))
     - edge0_34) / (
      (1.05 * tmpvar_32)
     - edge0_34)), 0.0, 1.0);
    float tmpvar_36;
    tmpvar_36 = (((
      clamp ((1.0 - ((zy_21 - zx_6) / _mtl_u._SoftZDistance)), 0.0, 1.0)
     * 
      clamp ((1.0 - (sqrt(
        dot (x_26, x_26)
      ) / sqrt(
        dot (vx_7, vx_7)
      ))), 0.0, 1.0)
    ) + (
      clamp ((1.0 - ((zx_6 - zy_21) / _mtl_u._SoftZDistance)), 0.0, 1.0)
     * 
      clamp ((1.0 - (sqrt(
        dot (x_27, x_27)
      ) / sqrt(
        dot (tmpvar_25, tmpvar_25)
      ))), 0.0, 1.0)
    )) + ((
      (1.0 - (tmpvar_31 * (tmpvar_31 * (3.0 - 
        (2.0 * tmpvar_31)
      ))))
     * 
      (1.0 - (tmpvar_35 * (tmpvar_35 * (3.0 - 
        (2.0 * tmpvar_35)
      ))))
    ) * 2.0));
    half4 tmpvar_37;
    tmpvar_37 = _MainTex.sample(_mtlsmp__MainTex, (float2)(tmpvar_23.xy), level(0.0));
    float4 tmpvar_38;
    tmpvar_38 = float4(tmpvar_37);
    sum_4 = (sum_4 + (tmpvar_38 * tmpvar_36));
    weight_5 = (weight_5 + tmpvar_36);
  };
  float4 tmpvar_39;
  tmpvar_39 = (sum_4 / weight_5);
  _mtl_o._fragData = half4(tmpvar_39);
  return _mtl_o;
}


// stats: 99 alu 8 tex 4 flow
// inputs: 1
//  #0: xlv_TEXCOORD0 (high float) 2x1 [-1]
// uniforms: 5 (total size: 44)
//  #0: _ZBufferParams (high float) 4x1 [-1] loc 0
//  #1: _MainTex_TexelSize (high float) 4x1 [-1] loc 16
//  #2: _Jitter (high float) 1x1 [-1] loc 32
//  #3: _MaxVelocity (high float) 1x1 [-1] loc 36
//  #4: _SoftZDistance (high float) 1x1 [-1] loc 40
// textures: 5
//  #0: _MainTex (low 2d) 0x0 [-1] loc 0
//  #1: _CameraDepthTexture (high 2d) 0x0 [-1] loc 1
//  #2: _VelTex (low 2d) 0x0 [-1] loc 2
//  #3: _NeighbourMaxTex (low 2d) 0x0 [-1] loc 3
//  #4: _NoiseTex (low 2d) 0x0 [-1] loc 4