diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/spv.structDeref.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/spv.structDeref.frag | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/spv.structDeref.frag b/chromium/third_party/glslang/src/Test/spv.structDeref.frag new file mode 100644 index 00000000000..94232ad203e --- /dev/null +++ b/chromium/third_party/glslang/src/Test/spv.structDeref.frag @@ -0,0 +1,71 @@ +#version 140 + +uniform sampler2D samp2D; +in vec2 coord; + +struct s0 { + int i; +}; + +struct s00 { + s0 s0_0; +}; + +struct s1 { + int i; + float f; + s0 s0_1; +}; + +struct s2 { + int i; + float f; + s1 s1_1; +}; + +struct s3 { + s2[12] s2_1; + int i; + float f; + s1 s1_1; +}; + + +s0 foo0; +s1 foo1; +s2 foo2; +s3 foo3; + +s00 foo00; + +void main() +{ + s0 locals0; + s2 locals2; + s00 locals00; + + float[6] fArray; + + s1[10] locals1Array; + + if (foo3.s2_1[9].i > 0) { + locals2.f = 1.0; + locals2.s1_1 = s1(0, 1.0, s0(0)); + fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + locals1Array[6] = foo1; + locals0 = s0(0); + locals00 = s00(s0(0)); + } else { + locals2.f = coord.x; + locals2.s1_1 = s1(1, coord.y, foo0); + fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0); + locals1Array[6] = locals2.s1_1; + locals0 = foo1.s0_1; + locals00 = foo00; + } + + if (locals0.i > 5) + locals0 = locals00.s0_0; + + gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture(samp2D, coord); +} |