yum-mirror/glslang

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

Jeff BolzImplement GL_EXT_long_vector (#4132)b937eae5

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