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