yum-mirror/glslang

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

Jeff BolzImplement GL_EXT_long_vector (#4132)b937eae5

main
1.3 KiB59 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<int64_t, 5> vi;
13    int64_t i;
14    vector<bool, 5> vb;
15    bool b;
16
17    // 8.1
18
19    // 8.2
20
21    // 8.3
22    //vi = abs(vi);
23    //vi = sign(vi);
24    vi = min(vi, i);
25    vi = min(vi, vi);
26    vi = max(vi, i);
27    vi = max(vi, vi);
28    vi = clamp(vi, i, i);
29    vi = clamp(vi, vi, vi);
30    vi = mix(vi, vi, vb);
31
32    // 8.5
33
34    // 8.7
35    vb = lessThan(vi, vi);
36    vb = lessThanEqual(vi, vi);
37    vb = greaterThan(vi, vi);
38    vb = greaterThanEqual(vi, vi);
39    vb = equal(vi, vi);
40    vb = notEqual(vi, vi);
41
42    // 8.8
43    //vi = uaddCarry(vi, vi, vi);
44    //vi = usubBorrow(vi, vi, vi);
45    imulExtended(vi, vi, vi, vi);
46    //vi = bitfieldExtract(vi, i, i);
47    //vi = bitfieldInsert(vi, vi, i, i);
48    //vi = bitfieldReverse(vi);
49    vi = bitCount(vi);
50    //vi = findLSB(vi);
51    //vi = findMSB(vi);
52
53    // GL_EXT_shader_integer_mix
54    vi = mix(vi, vi, vb);
55    vb = mix(vb, vb, vb);
56
57    // GL_EXT_expect_assume
58    vi = expectEXT(vi, vi);
59}