yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Jeff BolzImplement GL_EXT_long_vector (#4132)b937eae5

main
2.1 KiB100 linesraw
1#version 450 core
2#extension GL_KHR_memory_scope_semantics : enable
3#extension GL_EXT_long_vector : enable
4#extension GL_EXT_shader_explicit_arithmetic_types : enable
5#extension GL_EXT_buffer_reference : enable
6#extension GL_EXT_expect_assume : enable
7
8layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
9
10void main()
11{
12    vector<float16_t, 5> vf;
13    float16_t f;
14    vector<int16_t, 5> vi;
15    vector<bool, 5> vb;
16    bool b;
17
18    // 8.1
19    vf = radians(vf);
20    vf = degrees(vf);
21    vf = sin(vf);
22    vf = cos(vf);
23    vf = tan(vf);
24    vf = asin(vf);
25    vf = acos(vf);
26    vf = atan(vf);
27    vf = atan(vf, vf);
28    vf = sinh(vf);
29    vf = cosh(vf);
30    vf = tanh(vf);
31    vf = asinh(vf);
32    vf = acosh(vf);
33    vf = atanh(vf);
34
35    // 8.2
36    vf = pow(vf, vf);
37    vf = exp(vf);
38    vf = log(vf);
39    vf = exp2(vf);
40    vf = log2(vf);
41    vf = sqrt(vf);
42    vf = inversesqrt(vf);
43
44    // 8.3
45    vf = abs(vf);
46    vf = sign(vf);
47    vf = floor(vf);
48    vf = trunc(vf);
49    vf = round(vf);
50    vf = roundEven(vf);
51    vf = ceil(vf);
52    vf = fract(vf);
53    vf = mod(vf, f);
54    vf = mod(vf, vf);
55    vf = modf(vf, vf);
56    vf = min(vf, f);
57    vf = min(vf, vf);
58    vf = max(vf, f);
59    vf = max(vf, vf);
60    vf = clamp(vf, f, f);
61    vf = clamp(vf, vf, vf);
62    vf = mix(vf, vf, f);
63    vf = mix(vf, vf, vf);
64    vf = mix(vf, vf, vb);
65    vf = step(vf, vf);
66    vf = step(f, vf);
67    vf = smoothstep(vf, vf, vf);
68    vf = smoothstep(f, f, vf);
69    vb = isnan(vf);
70    vb = isinf(vf);
71    vf = fma(vf, vf, vf);
72    vf = frexp(vf, vi);
73    vf = ldexp(vf, vi);
74
75    // 8.5
76    f = length(vf);
77    f = distance(vf, vf);
78    f = dot(vf, vf);
79    vf = normalize(vf);
80    vf = faceforward(vf, vf, vf);
81    vf = reflect(vf, vf);
82    vf = refract(vf, vf, f);
83
84    // 8.7
85    vb = lessThan(vf, vf);
86    vb = lessThanEqual(vf, vf);
87    vb = greaterThan(vf, vf);
88    vb = greaterThanEqual(vf, vf);
89    vb = equal(vf, vf);
90    vb = notEqual(vf, vf);
91    b = any(vb);
92    b = all(vb);
93    vb = not(vb);
94
95    // 8.8
96
97    // GL_EXT_shader_integer_mix
98
99    // GL_EXT_expect_assume
100}