yum-mirror/glslang

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

Jeff BolzImplement GL_EXT_long_vector (#4132)b937eae5

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