Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / newTexture.frag
1 #version 430\r
2 \r
3 uniform samplerBuffer sb;\r
4 uniform sampler2DRect sr;\r
5 uniform sampler2D s2D;\r
6 uniform sampler3D s3D;\r
7 uniform samplerCube sCube;\r
8 uniform samplerCubeShadow sCubeShadow;\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 += textureProj(s3D, c4D);\r
40     v += textureLod(s2DArray, c3D, 1.2);\r
41     v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D);\r
42     v += texelFetch(s3D, ic3D, ic1D);\r
43     v += texelFetchOffset(s2D, ic2D, 4, ivec2(3));\r
44     v += texelFetchOffset(sr, ic2D, ivec2(4));\r
45     v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3));\r
46     v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3));\r
47     v += textureGrad(sCube, c3D, c3D, c3D);\r
48     v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3));\r
49     v += textureProjGrad(s3D, c4D, c3D, c3D);\r
50     v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3));\r
51 \r
52     ivec4 iv = texture(is2D, c2D);\r
53     v += vec4(iv);\r
54     iv = textureProjOffset(is2D, c4D, ivec2(3));\r
55     v += vec4(iv);\r
56     iv = textureProjLod(is2D, c3D, c1D);\r
57     v += vec4(iv);\r
58     iv = textureProjGrad(is2D, c3D, c2D, c2D);\r
59     v += vec4(iv);\r
60     iv = texture(is3D, c3D, 4.2);\r
61     v += vec4(iv);\r
62     iv = textureLod(isCube, c3D, c1D);\r
63     v += vec4(iv);\r
64     iv = texelFetch(is2DArray, ic3D, ic1D);\r
65     v += vec4(iv);\r
66     iv += texelFetch(is2Dms, ic2D, ic1D);\r
67     v += vec4(iv);\r
68     v += texelFetch(sb, ic1D);\r
69     v += texelFetch(sr, ic2D);\r
70 \r
71     ivec2 iv2 = textureSize(sCubeShadow, 2);\r
72     // iv2 += textureSize(is2Dms);\r
73 \r
74     FragData = v + vec4(iv2, 0.0, 0.0);\r
75 }\r