xref: /aosp_15_r20/external/angle/third_party/glslang/src/Test/spv.replicatespec.comp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1#version 450 core
2#extension GL_KHR_memory_scope_semantics : enable
3#extension GL_KHR_cooperative_matrix : enable
4#extension GL_EXT_spec_constant_composites : enable
5
6#pragma use_replicated_composites
7
8layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
9
10layout(constant_id = 1) const int csix = 6;
11struct S { int a; int b; int c; };
12struct SS { S s1; S s2; };
13const S cs = S(csix, csix, csix);
14const SS css = SS(cs, cs);
15
16layout(constant_id = 2) const float spec_float = 3;
17const vec4 cv = vec4(spec_float);
18const mat4 cm = mat4(cv,cv,cv,cv);
19
20layout(constant_id = 0) const int cfive = 5;
21const int carr[3] = {cfive, cfive, cfive};
22const int carr2[3][3] = {carr, carr, carr};
23
24const coopmat<float, gl_ScopeSubgroup, 16, 16, gl_MatrixUseA> ccoop = coopmat<float, gl_ScopeSubgroup, 16, 16, gl_MatrixUseA>(spec_float);
25
26void main()
27{
28    coopmat<float, gl_ScopeSubgroup, 16, 16, gl_MatrixUseA> coop = coopmat<float, gl_ScopeSubgroup, 16, 16, gl_MatrixUseA>(1.0);
29
30    float a = 2.0;
31    vec4 v = vec4(a);
32    v = cv;
33    mat4 m = mat4(v,v,v,v);
34
35    int five = 5;
36    int six = 6;
37    int arr[3] = {five, five, five};
38    int arr2[3][3] = {arr, arr, arr};
39    arr2 = carr2;
40
41    S s2 = S(six, six, six);
42    SS ss = SS(s2, s2);
43}
44