• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 450
2#extension GL_ARB_gpu_shader_int64 : require
3layout(local_size_x = 1) in;
4
5struct M0
6{
7	int64_t v;
8	i64vec2 b[2];
9	uint64_t c;
10	uint64_t d[5];
11};
12
13struct SSBO0_Type
14{
15	i64vec4 a;
16	M0 m0;
17};
18
19struct SSBO1_Type
20{
21	u64vec4 b;
22	M0 m0;
23};
24
25struct SSBO2_Type
26{
27	int64_t a[4];
28	i64vec2 b[4];
29};
30
31struct SSBO3_Type
32{
33	int64_t a[4];
34	i64vec2 b[4];
35};
36
37layout(set = 0, binding = 0, std430) buffer SSBO
38{
39	int s32;
40	uint u32;
41};
42
43void main()
44{
45	SSBO0_Type ssbo_0;
46	SSBO1_Type ssbo_1;
47	SSBO2_Type ssbo_2;
48	SSBO3_Type ssbo_3;
49
50	ssbo_0.a += i64vec4(10, 20, 30, 40);
51	ssbo_1.b += u64vec4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul);
52	ssbo_0.a += 20;
53	ssbo_0.a = abs(ssbo_0.a + i64vec4(ssbo_1.b));
54
55	ssbo_0.a++;
56	ssbo_1.b++;
57	ssbo_0.a--;
58	ssbo_1.b--;
59
60	ssbo_2.a[0] += 1l;
61	ssbo_3.a[0] += 2l;
62
63	s32 = int(ssbo_0.a.x + ssbo_1.b.y + ssbo_2.a[1] + ssbo_3.a[2]);
64	u32 = uint(ssbo_0.a.y + ssbo_1.b.z + ssbo_2.a[0] + ssbo_3.a[1]);
65}
66