Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / spv.newTexture.frag
1 #version 430\r
2 \r
3 uniform sampler2D s2D;\r
4 uniform sampler2DRect sr;\r
5 uniform sampler3D s3D;\r
6 uniform samplerCube sCube;\r
7 uniform samplerCubeShadow sCubeShadow;\r
8 uniform samplerCubeArrayShadow sCubeArrayShadow;\r
9 uniform sampler2DShadow s2DShadow;\r
10 uniform sampler2DArray s2DArray;\r
11 uniform sampler2DArrayShadow s2DArrayShadow;\r
12 \r
13 uniform isampler2D is2D;\r
14 uniform isampler3D is3D;\r
15 uniform isamplerCube isCube;\r
16 uniform isampler2DArray is2DArray;\r
17 uniform isampler2DMS is2Dms;\r
18 \r
19 uniform usampler2D us2D;\r
20 uniform usampler3D us3D;\r
21 uniform usamplerCube usCube;\r
22 uniform usampler2DArray us2DArray;\r
23 \r
24 in float c1D;\r
25 in vec2  c2D;\r
26 in vec3  c3D;\r
27 in vec4  c4D;\r
28 \r
29 flat in int   ic1D;\r
30 flat in ivec2 ic2D;\r
31 flat in ivec3 ic3D;\r
32 flat in ivec4 ic4D;\r
33 \r
34 out vec4 FragData;\r
35 \r
36 void main()\r
37 {\r
38     vec4 v = texture(s2D, c2D);\r
39     v.y += texture(sCubeArrayShadow, c4D, c1D);\r
40     v += textureProj(s3D, c4D);\r
41     v += textureLod(s2DArray, c3D, 1.2);\r
42     v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D);\r
43     v += texelFetch(s3D, ic3D, ic1D);\r
44     v += texelFetchOffset(s2D, ic2D, 4, ivec2(3));\r
45     v += texelFetchOffset(sr, ic2D, ivec2(4));\r
46     v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3));\r
47     v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3));\r
48     v += textureGrad(sCube, c3D, c3D, c3D);\r
49     v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3));\r
50     v += textureProjGrad(s3D, c4D, c3D, c3D);\r
51     v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3));\r
52 \r
53     ivec4 iv = texture(is2D, c2D);\r
54     v += vec4(iv);\r
55     iv = textureProjOffset(is2D, c4D, ivec2(3));\r
56     v += vec4(iv);\r
57     iv = textureProjLod(is2D, c3D, c1D);\r
58     v += vec4(iv);\r
59     iv = textureProjGrad(is2D, c3D, c2D, c2D);\r
60     v += vec4(iv);\r
61     iv = texture(is3D, c3D, 4.2);\r
62     v += vec4(iv);\r
63     iv = textureLod(isCube, c3D, c1D);\r
64     v += vec4(iv);\r
65     iv = texelFetch(is2DArray, ic3D, ic1D);\r
66     v += vec4(iv);\r
67 \r
68     ivec2 iv2 = textureSize(sCubeShadow, 2);\r
69     // iv2 += textureSize(is2Dms);\r
70 \r
71     FragData = v + vec4(iv2, 0.0, 0.0);\r
72 }\r