1#version 450 2 3flat in ivec4 uiv4; 4in vec4 uv4; 5bool ub; 6bvec4 ub41, ub42; 7in float uf; 8flat in int ui; 9flat in uvec4 uuv4; 10flat in uint uui; 11 12out vec4 FragColor; 13 14void main() 15{ 16 vec4 v; 17 float f; 18 bool b; 19 bvec4 bv4; 20 int i; 21 uint u; 22 23 // floating point 24 v = radians(uv4); 25 v += degrees(v); 26 v += (i = ui*ui, sin(v)); 27 v += cos(v); 28 v += tan(v); 29 v += asin(v); 30 v += acos(v); 31 32 v += atan(v); 33 v += sinh(v); 34 v += cosh(v); 35 v += tanh(v); 36 v += asinh(v); 37 v += acosh(v); 38 v += atanh(v); 39 40 v += pow(v, v); 41 v += exp(v); 42 v += log(v); 43 v += exp2(v); 44 v += log2(v); 45 v += sqrt(v); 46 v += inversesqrt(v); 47 v += abs(v); 48 v += sign(v); 49 v += floor(v); 50 51 v += trunc(v); 52 v += round(v); 53 v += roundEven(v); 54 55 v += ceil(v); 56 v += fract(v); 57 v += mod(v, v); 58 v += mod(v, v.x); 59 60 v += modf(v, v); 61 62 v += min(v, uv4); 63 v += max(v, uv4); 64 v += clamp(v, uv4, uv4); 65 v += mix(v,v,v); 66 67 v += mix(v,v,ub41); 68 v += mix(v,v,f); 69//spv v += intBitsToFloat(ui); 70// v += uintBitsToFloat(uui); 71// i += floatBitsToInt(f); 72// u += floatBitsToUint(f); 73 v += fma(v, uv4, v); 74 75 v += step(v,v); 76 v += smoothstep(v,v,v); 77 v += step(uf,v); 78 v += smoothstep(uf,uf,v); 79 v += normalize(v); 80 v += faceforward(v, v, v); 81 v += reflect(v, v); 82 v += refract(v, v, uf); 83 v += dFdx(v); 84 v += dFdy(v); 85 v += fwidth(v); 86 87 // signed integer 88 i += abs(ui); 89 i += sign(i); 90 i += min(i, ui); 91 i += max(i, ui); 92 i += clamp(i, ui, ui); 93 94 // unsigned integer 95 u += min(u, uui); 96 u += max(u, uui); 97 u += clamp(u, uui, uui); 98 99 //// bool 100 b = isnan(uf); 101 b = isinf(f); 102 b = any(lessThan(v, uv4)); 103 b = (b && any(lessThanEqual(v, uv4))); 104 b = (b && any(greaterThan(v, uv4))); 105 b = (b && any(greaterThanEqual(v, uv4))); 106 b = (b && any(equal(ub41, ub42))); 107 b = (b && any(notEqual(ub41, ub42))); 108 b = (b && any(ub41)); 109 b = (b && all(ub41)); 110 b = (b && any(not(ub41))); 111 112 i = ((i + ui) * i - ui) / i; 113 i = i % ui; 114 if (i == ui || i != ui && i == ui ^^ i != 2) 115 ++i; 116 117 f = ((uf + uf) * uf - uf) / uf; 118 119 f += length(v); 120 f += distance(v, v); 121 f += dot(v, v); 122 f += dot(f, uf); 123 f += cross(v.xyz, v.xyz).x; 124 125 if (f == uf || f != uf && f != 2.0) 126 ++f; 127 128 i &= ui; 129 i |= 0x42; 130 i ^= ui; 131 i %= 17; 132 i >>= 2; 133 i <<= ui; 134 i = ~i; 135 b = !b; 136 137 FragColor = b ? vec4(i) + vec4(f) + v : v; 138 139 mat4 m1 = mat4(1.0), m2 = mat4(0.0); 140 FragColor += (b ? m1 : m2)[1]; 141} 142