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