yum-mirror/glslang

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

Jeff BolzImplement GL_EXT_long_vector (#4132)b937eae5

main
1.8 KiB77 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<float64_t, 5> vf;
13    float64_t f;
14    vector<uint64_t, 5> vu;
15    vector<int64_t, 5> vi;
16    vector<int32_t, 5> vi32;
17    vector<bool, 5> vb;
18    bool b;
19
20    // 8.1
21
22    // 8.2
23    vf = sqrt(vf);
24    vf = inversesqrt(vf);
25
26    // 8.3
27    vf = abs(vf);
28    vf = sign(vf);
29    vf = floor(vf);
30    vf = trunc(vf);
31    vf = round(vf);
32    vf = roundEven(vf);
33    vf = ceil(vf);
34    vf = fract(vf);
35    vf = mod(vf, f);
36    vf = mod(vf, vf);
37    vf = modf(vf, vf);
38    vf = min(vf, f);
39    vf = min(vf, vf);
40    vf = max(vf, f);
41    vf = max(vf, vf);
42    vf = clamp(vf, f, f);
43    vf = clamp(vf, vf, vf);
44    vf = mix(vf, vf, f);
45    vf = mix(vf, vf, vf);
46    vf = mix(vf, vf, vb);
47    vf = step(vf, vf);
48    vf = step(f, vf);
49    vf = smoothstep(vf, vf, vf);
50    vf = smoothstep(f, f, vf);
51    vb = isnan(vf);
52    vb = isinf(vf);
53    vi = doubleBitsToInt64(vf);
54    vu = doubleBitsToUint64(vf);
55    vf = int64BitsToDouble(vi);
56    vf = uint64BitsToDouble(vu);
57    vf = fma(vf, vf, vf);
58    vf = frexp(vf, vi32);
59    vf = ldexp(vf, vi32);
60
61    // 8.5
62    f = length(vf);
63    f = distance(vf, vf);
64    f = dot(vf, vf);
65    vf = normalize(vf);
66    vf = faceforward(vf, vf, vf);
67    vf = reflect(vf, vf);
68    vf = refract(vf, vf, f);
69
70    // 8.7
71    vb = lessThan(vf, vf);
72    vb = lessThanEqual(vf, vf);
73    vb = greaterThan(vf, vf);
74    vb = greaterThanEqual(vf, vf);
75    vb = equal(vf, vf);
76    vb = notEqual(vf, vf);
77}