xref: /aosp_15_r20/external/skia/resources/sksl/spirv/StructArrayMemberInDifferentLayouts.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker// In this test the same struct type `S` is used in contexts with different layout constraints.
2*c8dee2aaSAndroid Build Coastguard Workerstruct S {
3*c8dee2aaSAndroid Build Coastguard Worker    float[2] a;
4*c8dee2aaSAndroid Build Coastguard Worker};
5*c8dee2aaSAndroid Build Coastguard Worker
6*c8dee2aaSAndroid Build Coastguard Workerlayout(vulkan, push_constant) uniform testPushConstants {
7*c8dee2aaSAndroid Build Coastguard Worker    float[2] pushConstantArray;
8*c8dee2aaSAndroid Build Coastguard Worker};
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Workerlayout(set = 0, binding = 0) uniform testUniforms {
11*c8dee2aaSAndroid Build Coastguard Worker    float[2] uboArray;
12*c8dee2aaSAndroid Build Coastguard Worker};
13*c8dee2aaSAndroid Build Coastguard Worker
14*c8dee2aaSAndroid Build Coastguard Workervoid main() {
15*c8dee2aaSAndroid Build Coastguard Worker    S s1 = S(pushConstantArray);
16*c8dee2aaSAndroid Build Coastguard Worker    S s2 = S(uboArray);
17*c8dee2aaSAndroid Build Coastguard Worker
18*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = (s1 == s2) ? half4(1) : half4(0);
19*c8dee2aaSAndroid Build Coastguard Worker}
20