3 #extension GL_ARB_sparse_texture2: enable
\r
4 #extension GL_ARB_sparse_texture_clamp: enable
\r
5 #extension GL_AMD_gpu_shader_half_float: enable
\r
6 #extension GL_AMD_gpu_shader_half_float_fetch: enable
\r
7 #extension GL_AMD_texture_gather_bias_lod: enable
\r
9 layout(set = 0, binding = 0) uniform f16sampler1D s1D;
\r
10 layout(set = 0, binding = 1) uniform f16sampler2D s2D;
\r
11 layout(set = 0, binding = 2) uniform f16sampler3D s3D;
\r
12 layout(set = 0, binding = 3) uniform f16sampler2DRect s2DRect;
\r
13 layout(set = 0, binding = 4) uniform f16samplerCube sCube;
\r
14 layout(set = 0, binding = 5) uniform f16samplerBuffer sBuffer;
\r
15 layout(set = 0, binding = 6) uniform f16sampler2DMS s2DMS;
\r
16 layout(set = 0, binding = 7) uniform f16sampler1DArray s1DArray;
\r
17 layout(set = 0, binding = 8) uniform f16sampler2DArray s2DArray;
\r
18 layout(set = 0, binding = 9) uniform f16samplerCubeArray sCubeArray;
\r
19 layout(set = 0, binding = 10) uniform f16sampler2DMSArray s2DMSArray;
\r
21 layout(set = 0, binding = 11) uniform f16sampler1DShadow s1DShadow;
\r
22 layout(set = 0, binding = 12) uniform f16sampler2DShadow s2DShadow;
\r
23 layout(set = 0, binding = 13) uniform f16sampler2DRectShadow s2DRectShadow;
\r
24 layout(set = 0, binding = 14) uniform f16samplerCubeShadow sCubeShadow;
\r
25 layout(set = 0, binding = 15) uniform f16sampler1DArrayShadow s1DArrayShadow;
\r
26 layout(set = 0, binding = 16) uniform f16sampler2DArrayShadow s2DArrayShadow;
\r
27 layout(set = 0, binding = 17) uniform f16samplerCubeArrayShadow sCubeArrayShadow;
\r
29 layout(set = 1, binding = 0) layout(rgba16f) uniform f16image1D i1D;
\r
30 layout(set = 1, binding = 1) layout(rgba16f) uniform f16image2D i2D;
\r
31 layout(set = 1, binding = 2) layout(rgba16f) uniform f16image3D i3D;
\r
32 layout(set = 1, binding = 3) layout(rgba16f) uniform f16image2DRect i2DRect;
\r
33 layout(set = 1, binding = 4) layout(rgba16f) uniform f16imageCube iCube;
\r
34 layout(set = 1, binding = 5) layout(rgba16f) uniform f16image1DArray i1DArray;
\r
35 layout(set = 1, binding = 6) layout(rgba16f) uniform f16image2DArray i2DArray;
\r
36 layout(set = 1, binding = 7) layout(rgba16f) uniform f16imageCubeArray iCubeArray;
\r
37 layout(set = 1, binding = 8) layout(rgba16f) uniform f16imageBuffer iBuffer;
\r
38 layout(set = 1, binding = 9) layout(rgba16f) uniform f16image2DMS i2DMS;
\r
39 layout(set = 1, binding = 10) layout(rgba16f) uniform f16image2DMSArray i2DMSArray;
\r
41 layout(set = 2, binding = 0) uniform f16texture1D t1D;
\r
42 layout(set = 2, binding = 1) uniform f16texture2D t2D;
\r
43 layout(set = 2, binding = 2) uniform f16texture3D t3D;
\r
44 layout(set = 2, binding = 3) uniform f16texture2DRect t2DRect;
\r
45 layout(set = 2, binding = 4) uniform f16textureCube tCube;
\r
46 layout(set = 2, binding = 5) uniform f16texture1DArray t1DArray;
\r
47 layout(set = 2, binding = 6) uniform f16texture2DArray t2DArray;
\r
48 layout(set = 2, binding = 7) uniform f16textureCubeArray tCubeArray;
\r
49 layout(set = 2, binding = 8) uniform f16textureBuffer tBuffer;
\r
50 layout(set = 2, binding = 9) uniform f16texture2DMS t2DMS;
\r
51 layout(set = 2, binding = 10) uniform f16texture2DMSArray t2DMSArray;
\r
53 layout(set = 2, binding = 11) uniform sampler s;
\r
54 layout(set = 2, binding = 12) uniform samplerShadow sShadow;
\r
56 layout(set = 3, binding = 0, input_attachment_index = 0) uniform f16subpassInput subpass;
\r
57 layout(set = 3, binding = 1, input_attachment_index = 0) uniform f16subpassInputMS subpassMS;
\r
59 layout(location = 0) in float c1;
\r
60 layout(location = 1) in vec2 c2;
\r
61 layout(location = 2) in vec3 c3;
\r
62 layout(location = 3) in vec4 c4;
\r
64 layout(location = 4) in float compare;
\r
65 layout(location = 5) in float lod;
\r
66 layout(location = 6) in float bias;
\r
67 layout(location = 7) in float lodClamp;
\r
69 layout(location = 8) in float dPdxy1;
\r
70 layout(location = 9) in vec2 dPdxy2;
\r
71 layout(location = 10) in vec3 dPdxy3;
\r
73 layout(location = 11) in float16_t f16c1;
\r
74 layout(location = 12) in f16vec2 f16c2;
\r
75 layout(location = 13) in f16vec3 f16c3;
\r
76 layout(location = 14) in f16vec4 f16c4;
\r
78 layout(location = 15) in float16_t f16lod;
\r
79 layout(location = 16) in float16_t f16bias;
\r
80 layout(location = 17) in float16_t f16lodClamp;
\r
82 layout(location = 18) in float16_t f16dPdxy1;
\r
83 layout(location = 19) in f16vec2 f16dPdxy2;
\r
84 layout(location = 20) in f16vec3 f16dPdxy3;
\r
86 const int offset1 = 1;
\r
87 const ivec2 offset2 = ivec2(1);
\r
88 const ivec3 offset3 = ivec3(1);
\r
89 const ivec2 offsets[4] = { offset2, offset2, offset2, offset2 };
\r
91 layout(location = 0) out vec4 fragColor;
\r
93 f16vec4 testTexture()
\r
95 f16vec4 texel = f16vec4(0.0hf);
\r
97 texel += texture(s1D, c1);
\r
98 texel += texture(s1D, f16c1, f16bias);
\r
99 texel += texture(s2D, c2);
\r
100 texel += texture(s2D, f16c2, f16bias);
\r
101 texel += texture(s3D, c3);
\r
102 texel += texture(s3D, f16c3, f16bias);
\r
103 texel += texture(sCube, c3);
\r
104 texel += texture(sCube, f16c3, f16bias);
\r
105 texel.x += texture(s1DShadow, c3);
\r
106 texel.x += texture(s1DShadow, f16c2, compare, f16bias);
\r
107 texel.x += texture(s2DShadow, c3);
\r
108 texel.x += texture(s2DShadow, f16c2, compare, f16bias);
\r
109 texel.x += texture(sCubeShadow, c4);
\r
110 texel.x += texture(sCubeShadow, f16c3, compare, f16bias);
\r
111 texel += texture(s1DArray, c2);
\r
112 texel += texture(s1DArray, f16c2, f16bias);
\r
113 texel += texture(s2DArray, c3);
\r
114 texel += texture(s2DArray, f16c3, f16bias);
\r
115 texel += texture(sCubeArray, c4);
\r
116 texel += texture(sCubeArray, f16c4, f16bias);
\r
117 texel.x += texture(s1DArrayShadow, c3);
\r
118 texel.x += texture(s1DArrayShadow, f16c2, compare, f16bias);
\r
119 texel.x += texture(s2DArrayShadow, c4);
\r
120 texel.x += texture(s2DArrayShadow, f16c3, compare);
\r
121 texel += texture(s2DRect, c2);
\r
122 texel += texture(s2DRect, f16c2);
\r
123 texel.x += texture(s2DRectShadow, c3);
\r
124 texel.x += texture(s2DRectShadow, f16c2, compare);
\r
125 texel.x += texture(sCubeArrayShadow, c4, compare);
\r
126 texel.x += texture(sCubeArrayShadow, f16c4, compare);
\r
131 f16vec4 testTextureProj()
\r
133 f16vec4 texel = f16vec4(0.0hf);
\r
135 texel += textureProj(s1D, c2);
\r
136 texel += textureProj(s1D, f16c2, f16bias);
\r
137 texel += textureProj(s1D, c4);
\r
138 texel += textureProj(s1D, f16c4, f16bias);
\r
139 texel += textureProj(s2D, c3);
\r
140 texel += textureProj(s2D, f16c3, f16bias);
\r
141 texel += textureProj(s2D, c4);
\r
142 texel += textureProj(s2D, f16c4, f16bias);
\r
143 texel += textureProj(s3D, c4);
\r
144 texel += textureProj(s3D, f16c4, f16bias);
\r
145 texel.x += textureProj(s1DShadow, c4);
\r
146 texel.x += textureProj(s1DShadow, f16c3, compare, f16bias);
\r
147 texel.x += textureProj(s2DShadow, c4);
\r
148 texel.x += textureProj(s2DShadow, f16c3, compare, f16bias);
\r
149 texel += textureProj(s2DRect, c3);
\r
150 texel += textureProj(s2DRect, f16c3);
\r
151 texel += textureProj(s2DRect, c4);
\r
152 texel += textureProj(s2DRect, f16c4);
\r
153 texel.x += textureProj(s2DRectShadow, c4);
\r
154 texel.x += textureProj(s2DRectShadow, f16c3, compare);
\r
159 f16vec4 testTextureLod()
\r
161 f16vec4 texel = f16vec4(0.0hf);
\r
163 texel += textureLod(s1D, c1, lod);
\r
164 texel += textureLod(s1D, f16c1, f16lod);
\r
165 texel += textureLod(s2D, c2, lod);
\r
166 texel += textureLod(s2D, f16c2, f16lod);
\r
167 texel += textureLod(s3D, c3, lod);
\r
168 texel += textureLod(s3D, f16c3, f16lod);
\r
169 texel += textureLod(sCube, c3, lod);
\r
170 texel += textureLod(sCube, f16c3, f16lod);
\r
171 texel.x += textureLod(s1DShadow, c3, lod);
\r
172 texel.x += textureLod(s1DShadow, f16c2, compare, f16lod);
\r
173 texel.x += textureLod(s2DShadow, c3, lod);
\r
174 texel.x += textureLod(s2DShadow, f16c2, compare, f16lod);
\r
175 texel += textureLod(s1DArray, c2, lod);
\r
176 texel += textureLod(s1DArray, f16c2, f16lod);
\r
177 texel += textureLod(s2DArray, c3, lod);
\r
178 texel += textureLod(s2DArray, f16c3, f16lod);
\r
179 texel.x += textureLod(s1DArrayShadow, c3, lod);
\r
180 texel.x += textureLod(s1DArrayShadow, f16c2, compare, f16lod);
\r
181 texel += textureLod(sCubeArray, c4, lod);
\r
182 texel += textureLod(sCubeArray, f16c4, f16lod);
\r
187 f16vec4 testTextureOffset()
\r
189 f16vec4 texel = f16vec4(0.0hf);
\r
191 texel += textureOffset(s1D, c1, offset1);
\r
192 texel += textureOffset(s1D, f16c1, offset1, f16bias);
\r
193 texel += textureOffset(s2D, c2, offset2);
\r
194 texel += textureOffset(s2D, f16c2, offset2, f16bias);
\r
195 texel += textureOffset(s3D, c3, offset3);
\r
196 texel += textureOffset(s3D, f16c3, offset3, f16bias);
\r
197 texel += textureOffset(s2DRect, c2, offset2);
\r
198 texel += textureOffset(s2DRect, f16c2, offset2);
\r
199 texel.x += textureOffset(s2DRectShadow, c3, offset2);
\r
200 texel.x += textureOffset(s2DRectShadow, f16c2, compare, offset2);
\r
201 texel.x += textureOffset(s1DShadow, c3, offset1);
\r
202 texel.x += textureOffset(s1DShadow, f16c2, compare, offset1, f16bias);
\r
203 texel.x += textureOffset(s2DShadow, c3, offset2);
\r
204 texel.x += textureOffset(s2DShadow, f16c2, compare, offset2, f16bias);
\r
205 texel += textureOffset(s1DArray, c2, offset1);
\r
206 texel += textureOffset(s1DArray, f16c2, offset1, f16bias);
\r
207 texel += textureOffset(s2DArray, c3, offset2);
\r
208 texel += textureOffset(s2DArray, f16c3, offset2, f16bias);
\r
209 texel.x += textureOffset(s1DArrayShadow, c3, offset1);
\r
210 texel.x += textureOffset(s1DArrayShadow, f16c2, compare, offset1, f16bias);
\r
211 texel.x += textureOffset(s2DArrayShadow, c4, offset2);
\r
212 texel.x += textureOffset(s2DArrayShadow, f16c3, compare, offset2);
\r
217 f16vec4 testTextureProjOffset()
\r
219 f16vec4 texel = f16vec4(0.0hf);
\r
221 texel += textureProjOffset(s1D, c2, offset1);
\r
222 texel += textureProjOffset(s1D, f16c2, offset1, f16bias);
\r
223 texel += textureProjOffset(s1D, c4, offset1);
\r
224 texel += textureProjOffset(s1D, f16c4, offset1, f16bias);
\r
225 texel += textureProjOffset(s2D, c3, offset2);
\r
226 texel += textureProjOffset(s2D, f16c3, offset2, f16bias);
\r
227 texel += textureProjOffset(s2D, c4, offset2);
\r
228 texel += textureProjOffset(s2D, f16c4, offset2, f16bias);
\r
229 texel += textureProjOffset(s3D, c4, offset3);
\r
230 texel += textureProjOffset(s3D, f16c4, offset3, f16bias);
\r
231 texel += textureProjOffset(s2DRect, c3, offset2);
\r
232 texel += textureProjOffset(s2DRect, f16c3, offset2);
\r
233 texel += textureProjOffset(s2DRect, c4, offset2);
\r
234 texel += textureProjOffset(s2DRect, f16c4, offset2);
\r
235 texel.x += textureProjOffset(s2DRectShadow, c4, offset2);
\r
236 texel.x += textureProjOffset(s2DRectShadow, f16c3, compare, offset2);
\r
237 texel.x += textureProjOffset(s1DShadow, c4, offset1);
\r
238 texel.x += textureProjOffset(s1DShadow, f16c3, compare, offset1, f16bias);
\r
239 texel.x += textureProjOffset(s2DShadow, c4, offset2);
\r
240 texel.x += textureProjOffset(s2DShadow, f16c3, compare, offset2, f16bias);
\r
245 f16vec4 testTextureLodOffset()
\r
247 f16vec4 texel = f16vec4(0.0hf);
\r
249 texel += textureLodOffset(s1D, c1, lod, offset1);
\r
250 texel += textureLodOffset(s1D, f16c1, f16lod, offset1);
\r
251 texel += textureLodOffset(s2D, c2, lod, offset2);
\r
252 texel += textureLodOffset(s2D, f16c2, f16lod, offset2);
\r
253 texel += textureLodOffset(s3D, c3, lod, offset3);
\r
254 texel += textureLodOffset(s3D, f16c3, f16lod, offset3);
\r
255 texel.x += textureLodOffset(s1DShadow, c3, lod, offset1);
\r
256 texel.x += textureLodOffset(s1DShadow, f16c2, compare, f16lod, offset1);
\r
257 texel.x += textureLodOffset(s2DShadow, c3, lod, offset2);
\r
258 texel.x += textureLodOffset(s2DShadow, f16c2, compare, f16lod, offset2);
\r
259 texel += textureLodOffset(s1DArray, c2, lod, offset1);
\r
260 texel += textureLodOffset(s1DArray, f16c2, f16lod, offset1);
\r
261 texel += textureLodOffset(s2DArray, c3, lod, offset2);
\r
262 texel += textureLodOffset(s2DArray, f16c3, f16lod, offset2);
\r
263 texel.x += textureLodOffset(s1DArrayShadow, c3, lod, offset1);
\r
264 texel.x += textureLodOffset(s1DArrayShadow, f16c2, compare, f16lod, offset1);
\r
269 f16vec4 testTextureProjLodOffset()
\r
271 f16vec4 texel = f16vec4(0.0hf);
\r
273 texel += textureProjLodOffset(s1D, c2, lod, offset1);
\r
274 texel += textureProjLodOffset(s1D, f16c2, f16lod, offset1);
\r
275 texel += textureProjLodOffset(s1D, c4, lod, offset1);
\r
276 texel += textureProjLodOffset(s1D, f16c4, f16lod, offset1);
\r
277 texel += textureProjLodOffset(s2D, c3, lod, offset2);
\r
278 texel += textureProjLodOffset(s2D, f16c3, f16lod, offset2);
\r
279 texel += textureProjLodOffset(s2D, c4, lod, offset2);
\r
280 texel += textureProjLodOffset(s2D, f16c4, f16lod, offset2);
\r
281 texel += textureProjLodOffset(s3D, c4, lod, offset3);
\r
282 texel += textureProjLodOffset(s3D, f16c4, f16lod, offset3);
\r
283 texel.x += textureProjLodOffset(s1DShadow, c4, lod, offset1);
\r
284 texel.x += textureProjLodOffset(s1DShadow, f16c3, compare, f16lod, offset1);
\r
285 texel.x += textureProjLodOffset(s2DShadow, c4, lod, offset2);
\r
286 texel.x += textureProjLodOffset(s2DShadow, f16c3, compare, f16lod, offset2);
\r
291 f16vec4 testTexelFetch()
\r
293 f16vec4 texel = f16vec4(0.0hf);
\r
295 texel += texelFetch(s1D, int(c1), int(lod));
\r
296 texel += texelFetch(s2D, ivec2(c2), int(lod));
\r
297 texel += texelFetch(s3D, ivec3(c3), int(lod));
\r
298 texel += texelFetch(s2DRect, ivec2(c2));
\r
299 texel += texelFetch(s1DArray, ivec2(c2), int(lod));
\r
300 texel += texelFetch(s2DArray, ivec3(c3), int(lod));
\r
301 texel += texelFetch(sBuffer, int(c1));
\r
302 texel += texelFetch(s2DMS, ivec2(c2), 1);
\r
303 texel += texelFetch(s2DMSArray, ivec3(c3), 2);
\r
308 f16vec4 testTexelFetchOffset()
\r
310 f16vec4 texel = f16vec4(0.0hf);
\r
312 texel += texelFetchOffset(s1D, int(c1), int(lod), offset1);
\r
313 texel += texelFetchOffset(s2D, ivec2(c2), int(lod), offset2);
\r
314 texel += texelFetchOffset(s3D, ivec3(c3), int(lod), offset3);
\r
315 texel += texelFetchOffset(s2DRect, ivec2(c2), offset2);
\r
316 texel += texelFetchOffset(s1DArray, ivec2(c2), int(lod), offset1);
\r
317 texel += texelFetchOffset(s2DArray, ivec3(c3), int(lod), offset2);
\r
322 f16vec4 testTextureGrad()
\r
324 f16vec4 texel = f16vec4(0.0hf);
\r
326 texel += textureGrad(s1D, c1, dPdxy1, dPdxy1);
\r
327 texel += textureGrad(s1D, f16c1, f16dPdxy1, f16dPdxy1);
\r
328 texel += textureGrad(s2D, c2, dPdxy2, dPdxy2);
\r
329 texel += textureGrad(s2D, f16c2, f16dPdxy2, f16dPdxy2);
\r
330 texel += textureGrad(s3D, c3, dPdxy3, dPdxy3);
\r
331 texel += textureGrad(s3D, f16c3, f16dPdxy3, f16dPdxy3);
\r
332 texel += textureGrad(sCube, c3, dPdxy3, dPdxy3);
\r
333 texel += textureGrad(sCube, f16c3, f16dPdxy3, f16dPdxy3);
\r
334 texel += textureGrad(s2DRect, c2, dPdxy2, dPdxy2);
\r
335 texel += textureGrad(s2DRect, f16c2, f16dPdxy2, f16dPdxy2);
\r
336 texel.x += textureGrad(s2DRectShadow, c3, dPdxy2, dPdxy2);
\r
337 texel.x += textureGrad(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2);
\r
338 texel.x += textureGrad(s1DShadow, c3, dPdxy1, dPdxy1);
\r
339 texel.x += textureGrad(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1);
\r
340 texel.x += textureGrad(s2DShadow, c3, dPdxy2, dPdxy2);
\r
341 texel.x += textureGrad(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2);
\r
342 texel.x += textureGrad(sCubeShadow, c4, dPdxy3, dPdxy3);
\r
343 texel.x += textureGrad(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3);
\r
344 texel += textureGrad(s1DArray, c2, dPdxy1, dPdxy1);
\r
345 texel += textureGrad(s1DArray, f16c2, f16dPdxy1, f16dPdxy1);
\r
346 texel += textureGrad(s2DArray, c3, dPdxy2, dPdxy2);
\r
347 texel += textureGrad(s2DArray, f16c3, f16dPdxy2, f16dPdxy2);
\r
348 texel.x += textureGrad(s1DArrayShadow, c3, dPdxy1, dPdxy1);
\r
349 texel.x += textureGrad(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1);
\r
350 texel.x += textureGrad(s2DArrayShadow, c4, dPdxy2, dPdxy2);
\r
351 texel.x += textureGrad(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2);
\r
352 texel += textureGrad(sCubeArray, c4, dPdxy3, dPdxy3);
\r
353 texel += textureGrad(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3);
\r
358 f16vec4 testTextureGradOffset()
\r
360 f16vec4 texel = f16vec4(0.0hf);
\r
362 texel += textureGradOffset(s1D, c1, dPdxy1, dPdxy1, offset1);
\r
363 texel += textureGradOffset(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1);
\r
364 texel += textureGradOffset(s2D, c2, dPdxy2, dPdxy2, offset2);
\r
365 texel += textureGradOffset(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2);
\r
366 texel += textureGradOffset(s3D, c3, dPdxy3, dPdxy3, offset3);
\r
367 texel += textureGradOffset(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3);
\r
368 texel += textureGradOffset(s2DRect, c2, dPdxy2, dPdxy2, offset2);
\r
369 texel += textureGradOffset(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2);
\r
370 texel.x += textureGradOffset(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2);
\r
371 texel.x += textureGradOffset(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2);
\r
372 texel.x += textureGradOffset(s1DShadow, c3, dPdxy1, dPdxy1, offset1);
\r
373 texel.x += textureGradOffset(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1);
\r
374 texel.x += textureGradOffset(s2DShadow, c3, dPdxy2, dPdxy2, offset2);
\r
375 texel.x += textureGradOffset(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2);
\r
376 texel += textureGradOffset(s1DArray, c2, dPdxy1, dPdxy1, offset1);
\r
377 texel += textureGradOffset(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1);
\r
378 texel += textureGradOffset(s2DArray, c3, dPdxy2, dPdxy2, offset2);
\r
379 texel += textureGradOffset(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2);
\r
380 texel.x += textureGradOffset(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1);
\r
381 texel.x += textureGradOffset(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1);
\r
382 texel.x += textureGradOffset(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2);
\r
383 texel.x += textureGradOffset(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2);
\r
388 f16vec4 testTextureProjGrad()
\r
390 f16vec4 texel = f16vec4(0.0hf);
\r
392 texel += textureProjGrad(s1D, c2, dPdxy1, dPdxy1);
\r
393 texel += textureProjGrad(s1D, f16c2, f16dPdxy1, f16dPdxy1);
\r
394 texel += textureProjGrad(s1D, c4, dPdxy1, dPdxy1);
\r
395 texel += textureProjGrad(s1D, f16c4, f16dPdxy1, f16dPdxy1);
\r
396 texel += textureProjGrad(s2D, c3, dPdxy2, dPdxy2);
\r
397 texel += textureProjGrad(s2D, f16c3, f16dPdxy2, f16dPdxy2);
\r
398 texel += textureProjGrad(s2D, c4, dPdxy2, dPdxy2);
\r
399 texel += textureProjGrad(s2D, f16c4, f16dPdxy2, f16dPdxy2);
\r
400 texel += textureProjGrad(s3D, c4, dPdxy3, dPdxy3);
\r
401 texel += textureProjGrad(s3D, f16c4, f16dPdxy3, f16dPdxy3);
\r
402 texel += textureProjGrad(s2DRect, c3, dPdxy2, dPdxy2);
\r
403 texel += textureProjGrad(s2DRect, f16c3, f16dPdxy2, f16dPdxy2);
\r
404 texel += textureProjGrad(s2DRect, c4, dPdxy2, dPdxy2);
\r
405 texel += textureProjGrad(s2DRect, f16c4, f16dPdxy2, f16dPdxy2);
\r
406 texel.x += textureProjGrad(s2DRectShadow, c4, dPdxy2, dPdxy2);
\r
407 texel.x += textureProjGrad(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2);
\r
408 texel.x += textureProjGrad(s1DShadow, c4, dPdxy1, dPdxy1);
\r
409 texel.x += textureProjGrad(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1);
\r
410 texel.x += textureProjGrad(s2DShadow, c4, dPdxy2, dPdxy2);
\r
411 texel.x += textureProjGrad(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2);
\r
416 f16vec4 testTextureProjGradoffset()
\r
418 f16vec4 texel = f16vec4(0.0hf);
\r
420 texel += textureProjGradOffset(s1D, c2, dPdxy1, dPdxy1, offset1);
\r
421 texel += textureProjGradOffset(s1D, f16c2, f16dPdxy1, f16dPdxy1, offset1);
\r
422 texel += textureProjGradOffset(s1D, c4, dPdxy1, dPdxy1, offset1);
\r
423 texel += textureProjGradOffset(s1D, f16c4, f16dPdxy1, f16dPdxy1, offset1);
\r
424 texel += textureProjGradOffset(s2D, c3, dPdxy2, dPdxy2, offset2);
\r
425 texel += textureProjGradOffset(s2D, f16c3, f16dPdxy2, f16dPdxy2, offset2);
\r
426 texel += textureProjGradOffset(s2D, c4, dPdxy2, dPdxy2, offset2);
\r
427 texel += textureProjGradOffset(s2D, f16c4, f16dPdxy2, f16dPdxy2, offset2);
\r
428 texel += textureProjGradOffset(s2DRect, c3, dPdxy2, dPdxy2, offset2);
\r
429 texel += textureProjGradOffset(s2DRect, f16c3, f16dPdxy2, f16dPdxy2, offset2);
\r
430 texel += textureProjGradOffset(s2DRect, c4, dPdxy2, dPdxy2, offset2);
\r
431 texel += textureProjGradOffset(s2DRect, f16c4, f16dPdxy2, f16dPdxy2, offset2);
\r
432 texel.x += textureProjGradOffset(s2DRectShadow, c4, dPdxy2, dPdxy2, offset2);
\r
433 texel.x += textureProjGradOffset(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2);
\r
434 texel += textureProjGradOffset(s3D, c4, dPdxy3, dPdxy3, offset3);
\r
435 texel += textureProjGradOffset(s3D, f16c4, f16dPdxy3, f16dPdxy3, offset3);
\r
436 texel.x += textureProjGradOffset(s1DShadow, c4, dPdxy1, dPdxy1, offset1);
\r
437 texel.x += textureProjGradOffset(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1, offset1);
\r
438 texel.x += textureProjGradOffset(s2DShadow, c4, dPdxy2, dPdxy2, offset2);
\r
439 texel.x += textureProjGradOffset(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2);
\r
444 f16vec4 testTextureGather()
\r
446 f16vec4 texel = f16vec4(0.0hf);
\r
448 texel += textureGather(s2D, c2, 0);
\r
449 texel += textureGather(s2D, f16c2, 0, f16bias);
\r
450 texel += textureGather(s2DArray, c3, 0);
\r
451 texel += textureGather(s2DArray, f16c3, 0, f16bias);
\r
452 texel += textureGather(sCube, c3, 0);
\r
453 texel += textureGather(sCube, f16c3, 0, f16bias);
\r
454 texel += textureGather(sCubeArray, c4, 0);
\r
455 texel += textureGather(sCubeArray, f16c4, 0, f16bias);
\r
456 texel += textureGather(s2DRect, c2, 0);
\r
457 texel += textureGather(s2DRect, f16c2, 0);
\r
458 texel += textureGather(s2DShadow, c2, compare);
\r
459 texel += textureGather(s2DShadow, f16c2, compare);
\r
460 texel += textureGather(s2DArrayShadow, c3, compare);
\r
461 texel += textureGather(s2DArrayShadow, f16c3, compare);
\r
462 texel += textureGather(sCubeShadow, c3, compare);
\r
463 texel += textureGather(sCubeShadow, f16c3, compare);
\r
464 texel += textureGather(sCubeArrayShadow, c4, compare);
\r
465 texel += textureGather(sCubeArrayShadow, f16c4, compare);
\r
466 texel += textureGather(s2DRectShadow, c2, compare);
\r
467 texel += textureGather(s2DRectShadow, f16c2, compare);
\r
472 f16vec4 testTextureGatherOffset()
\r
474 f16vec4 texel = f16vec4(0.0hf);
\r
476 texel += textureGatherOffset(s2D, c2, offset2, 0);
\r
477 texel += textureGatherOffset(s2D, f16c2, offset2, 0, f16bias);
\r
478 texel += textureGatherOffset(s2DArray, c3, offset2, 0);
\r
479 texel += textureGatherOffset(s2DArray, f16c3, offset2, 0, f16bias);
\r
480 texel += textureGatherOffset(s2DRect, c2, offset2, 0);
\r
481 texel += textureGatherOffset(s2DRect, f16c2, offset2, 0);
\r
482 texel += textureGatherOffset(s2DShadow, c2, compare, offset2);
\r
483 texel += textureGatherOffset(s2DShadow, f16c2, compare, offset2);
\r
484 texel += textureGatherOffset(s2DArrayShadow, c3, compare, offset2);
\r
485 texel += textureGatherOffset(s2DArrayShadow, f16c3, compare, offset2);
\r
486 texel += textureGatherOffset(s2DRectShadow, c2, compare, offset2);
\r
487 texel += textureGatherOffset(s2DRectShadow, f16c2, compare, offset2);
\r
492 f16vec4 testTextureGatherOffsets()
\r
494 f16vec4 texel = f16vec4(0.0hf);
\r
496 texel += textureGatherOffsets(s2D, c2, offsets, 0);
\r
497 texel += textureGatherOffsets(s2D, f16c2, offsets, 0, f16bias);
\r
498 texel += textureGatherOffsets(s2DArray, c3, offsets, 0);
\r
499 texel += textureGatherOffsets(s2DArray, f16c3, offsets, 0, f16bias);
\r
500 texel += textureGatherOffsets(s2DRect, c2, offsets, 0);
\r
501 texel += textureGatherOffsets(s2DRect, f16c2, offsets, 0);
\r
502 texel += textureGatherOffsets(s2DShadow, c2, compare, offsets);
\r
503 texel += textureGatherOffsets(s2DShadow, f16c2, compare, offsets);
\r
504 texel += textureGatherOffsets(s2DArrayShadow, c3, compare, offsets);
\r
505 texel += textureGatherOffsets(s2DArrayShadow, f16c3, compare, offsets);
\r
506 texel += textureGatherOffsets(s2DRectShadow, c2, compare, offsets);
\r
507 texel += textureGatherOffsets(s2DRectShadow, f16c2, compare, offsets);
\r
512 f16vec4 testTextureGatherLod()
\r
514 f16vec4 texel = f16vec4(0.0hf);
\r
516 texel += textureGatherLodAMD(s2D, c2, lod, 0);
\r
517 texel += textureGatherLodAMD(s2D, f16c2, f16lod, 0);
\r
518 texel += textureGatherLodAMD(s2DArray, c3, lod, 0);
\r
519 texel += textureGatherLodAMD(s2DArray, f16c3, f16lod, 0);
\r
520 texel += textureGatherLodAMD(sCube, c3, lod, 0);
\r
521 texel += textureGatherLodAMD(sCube, f16c3, f16lod, 0);
\r
522 texel += textureGatherLodAMD(sCubeArray, c4, lod, 0);
\r
523 texel += textureGatherLodAMD(sCubeArray, f16c4, f16lod, 0);
\r
528 f16vec4 testTextureGatherLodOffset()
\r
530 f16vec4 texel = f16vec4(0.0hf);
\r
532 texel += textureGatherLodOffsetAMD(s2D, c2, lod, offset2, 0);
\r
533 texel += textureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, 0);
\r
534 texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, 0);
\r
535 texel += textureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, 0);
\r
540 f16vec4 testTextureGatherLodOffsets()
\r
542 f16vec4 texel = f16vec4(0.0hf);
\r
544 texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets, 0);
\r
545 texel += textureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, 0);
\r
546 texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 0);
\r
547 texel += textureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, 0);
\r
552 ivec4 testTextureSize()
\r
554 ivec4 size = ivec4(0);
\r
556 size.x += textureSize(s1D, int(lod));
\r
557 size.xy += textureSize(s2D, int(lod));
\r
558 size.xyz += textureSize(s3D, int(lod));
\r
559 size.xy += textureSize(sCube, int(lod));
\r
560 size.x += textureSize(s1DShadow, int(lod));
\r
561 size.xy += textureSize(s2DShadow, int(lod));
\r
562 size.xy += textureSize(sCubeShadow, int(lod));
\r
563 size.xyz += textureSize(sCubeArray, int(lod));
\r
564 size.xyz += textureSize(sCubeArrayShadow, int(lod));
\r
565 size.xy += textureSize(s2DRect);
\r
566 size.xy += textureSize(s2DRectShadow);
\r
567 size.xy += textureSize(s1DArray, int(lod));
\r
568 size.xyz += textureSize(s2DArray, int(lod));
\r
569 size.xy += textureSize(s1DArrayShadow, int(lod));
\r
570 size.xyz += textureSize(s2DArrayShadow, int(lod));
\r
571 size.x += textureSize(sBuffer);
\r
572 size.xy += textureSize(s2DMS);
\r
573 size.xyz += textureSize(s2DMSArray);
\r
578 vec2 testTextureQueryLod()
\r
580 vec2 lod = vec2(0.0);
\r
582 lod += textureQueryLod(s1D, c1);
\r
583 lod += textureQueryLod(s1D, f16c1);
\r
584 lod += textureQueryLod(s2D, c2);
\r
585 lod += textureQueryLod(s2D, f16c2);
\r
586 lod += textureQueryLod(s3D, c3);
\r
587 lod += textureQueryLod(s3D, f16c3);
\r
588 lod += textureQueryLod(sCube, c3);
\r
589 lod += textureQueryLod(sCube, f16c3);
\r
590 lod += textureQueryLod(s1DArray, c1);
\r
591 lod += textureQueryLod(s1DArray, f16c1);
\r
592 lod += textureQueryLod(s2DArray, c2);
\r
593 lod += textureQueryLod(s2DArray, f16c2);
\r
594 lod += textureQueryLod(sCubeArray, c3);
\r
595 lod += textureQueryLod(sCubeArray, f16c3);
\r
596 lod += textureQueryLod(s1DShadow, c1);
\r
597 lod += textureQueryLod(s1DShadow, f16c1);
\r
598 lod += textureQueryLod(s2DShadow, c2);
\r
599 lod += textureQueryLod(s2DShadow, f16c2);
\r
600 lod += textureQueryLod(sCubeArrayShadow, c3);
\r
601 lod += textureQueryLod(sCubeArrayShadow, f16c3);
\r
602 lod += textureQueryLod(s1DArrayShadow, c1);
\r
603 lod += textureQueryLod(s1DArrayShadow, f16c1);
\r
604 lod += textureQueryLod(s2DArrayShadow, c2);
\r
605 lod += textureQueryLod(s2DArrayShadow, f16c2);
\r
606 lod += textureQueryLod(sCubeArrayShadow, c3);
\r
607 lod += textureQueryLod(sCubeArrayShadow, f16c3);
\r
612 int testTextureQueryLevels()
\r
616 levels += textureQueryLevels(s1D);
\r
617 levels += textureQueryLevels(s2D);
\r
618 levels += textureQueryLevels(s3D);
\r
619 levels += textureQueryLevels(sCube);
\r
620 levels += textureQueryLevels(s1DShadow);
\r
621 levels += textureQueryLevels(s2DShadow);
\r
622 levels += textureQueryLevels(sCubeShadow);
\r
623 levels += textureQueryLevels(sCubeArray);
\r
624 levels += textureQueryLevels(sCubeArrayShadow);
\r
625 levels += textureQueryLevels(s1DArray);
\r
626 levels += textureQueryLevels(s2DArray);
\r
627 levels += textureQueryLevels(s1DArrayShadow);
\r
628 levels += textureQueryLevels(s2DArrayShadow);
\r
633 int testTextureSamples()
\r
637 samples += textureSamples(s2DMS);
\r
638 samples += textureSamples(s2DMSArray);
\r
643 f16vec4 testImageLoad()
\r
645 f16vec4 texel = f16vec4(0.0hf);
\r
647 texel += imageLoad(i1D, int(c1));
\r
648 texel += imageLoad(i2D, ivec2(c2));
\r
649 texel += imageLoad(i3D, ivec3(c3));
\r
650 texel += imageLoad(i2DRect, ivec2(c2));
\r
651 texel += imageLoad(iCube, ivec3(c3));
\r
652 texel += imageLoad(iBuffer, int(c1));
\r
653 texel += imageLoad(i1DArray, ivec2(c2));
\r
654 texel += imageLoad(i2DArray, ivec3(c3));
\r
655 texel += imageLoad(iCubeArray, ivec3(c3));
\r
656 texel += imageLoad(i2DMS, ivec2(c2), 1);
\r
657 texel += imageLoad(i2DMSArray, ivec3(c3), 1);
\r
662 void testImageStore(f16vec4 data)
\r
664 imageStore(i1D, int(c1), data);
\r
665 imageStore(i2D, ivec2(c2), data);
\r
666 imageStore(i3D, ivec3(c3), data);
\r
667 imageStore(i2DRect, ivec2(c2), data);
\r
668 imageStore(iCube, ivec3(c3), data);
\r
669 imageStore(iBuffer, int(c1), data);
\r
670 imageStore(i1DArray, ivec2(c2), data);
\r
671 imageStore(i2DArray, ivec3(c3), data);
\r
672 imageStore(iCubeArray, ivec3(c3), data);
\r
673 imageStore(i2DMS, ivec2(c2), 1, data);
\r
674 imageStore(i2DMSArray, ivec3(c3), 1, data);
\r
677 f16vec4 testSparseTexture()
\r
679 f16vec4 texel = f16vec4(0.0hf);
\r
681 sparseTextureARB(s2D, c2, texel);
\r
682 sparseTextureARB(s2D, f16c2, texel, f16bias);
\r
683 sparseTextureARB(s3D, c3, texel);
\r
684 sparseTextureARB(s3D, f16c3, texel, f16bias);
\r
685 sparseTextureARB(sCube, c3, texel);
\r
686 sparseTextureARB(sCube, f16c3, texel, f16bias);
\r
687 sparseTextureARB(s2DShadow, c3, texel.x);
\r
688 sparseTextureARB(s2DShadow, f16c2, compare, texel.x, f16bias);
\r
689 sparseTextureARB(sCubeShadow, c4, texel.x);
\r
690 sparseTextureARB(sCubeShadow, f16c3, compare, texel.x, f16bias);
\r
691 sparseTextureARB(s2DArray, c3, texel);
\r
692 sparseTextureARB(s2DArray, f16c3, texel, f16bias);
\r
693 sparseTextureARB(sCubeArray, c4, texel);
\r
694 sparseTextureARB(sCubeArray, f16c4, texel, f16bias);
\r
695 sparseTextureARB(s2DArrayShadow, c4, texel.x);
\r
696 sparseTextureARB(s2DArrayShadow, f16c3, compare, texel.x);
\r
697 sparseTextureARB(s2DRect, c2, texel);
\r
698 sparseTextureARB(s2DRect, f16c2, texel);
\r
699 sparseTextureARB(s2DRectShadow, c3, texel.x);
\r
700 sparseTextureARB(s2DRectShadow, f16c2, compare, texel.x);
\r
701 sparseTextureARB(sCubeArrayShadow, c4, compare, texel.x);
\r
702 sparseTextureARB(sCubeArrayShadow, f16c4, compare, texel.x);
\r
707 f16vec4 testSparseTextureLod()
\r
709 f16vec4 texel = f16vec4(0.0hf);
\r
711 sparseTextureLodARB(s2D, c2, lod, texel);
\r
712 sparseTextureLodARB(s2D, f16c2, f16lod, texel);
\r
713 sparseTextureLodARB(s3D, c3, lod, texel);
\r
714 sparseTextureLodARB(s3D, f16c3, f16lod, texel);
\r
715 sparseTextureLodARB(sCube, c3, lod, texel);
\r
716 sparseTextureLodARB(sCube, f16c3, f16lod, texel);
\r
717 sparseTextureLodARB(s2DShadow, c3, lod, texel.x);
\r
718 sparseTextureLodARB(s2DShadow, f16c2, compare, f16lod, texel.x);
\r
719 sparseTextureLodARB(s2DArray, c3, lod, texel);
\r
720 sparseTextureLodARB(s2DArray, f16c3, f16lod, texel);
\r
721 sparseTextureLodARB(sCubeArray, c4, lod, texel);
\r
722 sparseTextureLodARB(sCubeArray, f16c4, f16lod, texel);
\r
727 f16vec4 testSparseTextureOffset()
\r
729 f16vec4 texel = f16vec4(0.0hf);
\r
731 sparseTextureOffsetARB(s2D, c2, offset2, texel);
\r
732 sparseTextureOffsetARB(s2D, f16c2, offset2, texel, f16bias);
\r
733 sparseTextureOffsetARB(s3D, c3, offset3, texel);
\r
734 sparseTextureOffsetARB(s3D, f16c3, offset3, texel, f16bias);
\r
735 sparseTextureOffsetARB(s2DRect, c2, offset2, texel);
\r
736 sparseTextureOffsetARB(s2DRect, f16c2, offset2, texel);
\r
737 sparseTextureOffsetARB(s2DRectShadow, c3, offset2, texel.x);
\r
738 sparseTextureOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel.x);
\r
739 sparseTextureOffsetARB(s2DShadow, c3, offset2, texel.x);
\r
740 sparseTextureOffsetARB(s2DShadow, f16c2, compare, offset2, texel.x, f16bias);
\r
741 sparseTextureOffsetARB(s2DArray, c3, offset2, texel);
\r
742 sparseTextureOffsetARB(s2DArray, f16c3, offset2, texel, f16bias);
\r
743 sparseTextureOffsetARB(s2DArrayShadow, c4, offset2, texel.x);
\r
744 sparseTextureOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel.x);
\r
749 f16vec4 testSparseTextureLodOffset()
\r
751 f16vec4 texel = f16vec4(0.0hf);
\r
753 sparseTextureLodOffsetARB(s2D, c2, lod, offset2, texel);
\r
754 sparseTextureLodOffsetARB(s2D, f16c2, f16lod, offset2, texel);
\r
755 sparseTextureLodOffsetARB(s3D, c3, lod, offset3, texel);
\r
756 sparseTextureLodOffsetARB(s3D, f16c3, f16lod, offset3, texel);
\r
757 sparseTextureLodOffsetARB(s2DShadow, c3, lod, offset2, texel.x);
\r
758 sparseTextureLodOffsetARB(s2DShadow, f16c2, compare, f16lod, offset2, texel.x);
\r
759 sparseTextureLodOffsetARB(s2DArray, c3, lod, offset2, texel);
\r
760 sparseTextureLodOffsetARB(s2DArray, f16c3, f16lod, offset2, texel);
\r
765 f16vec4 testSparseTextureGrad()
\r
767 f16vec4 texel = f16vec4(0.0hf);
\r
769 sparseTextureGradARB(s2D, c2, dPdxy2, dPdxy2, texel);
\r
770 sparseTextureGradARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, texel);
\r
771 sparseTextureGradARB(s3D, c3, dPdxy3, dPdxy3, texel);
\r
772 sparseTextureGradARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, texel);
\r
773 sparseTextureGradARB(sCube, c3, dPdxy3, dPdxy3, texel);
\r
774 sparseTextureGradARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, texel);
\r
775 sparseTextureGradARB(s2DRect, c2, dPdxy2, dPdxy2, texel);
\r
776 sparseTextureGradARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, texel);
\r
777 sparseTextureGradARB(s2DRectShadow, c3, dPdxy2, dPdxy2, texel.x);
\r
778 sparseTextureGradARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x);
\r
779 sparseTextureGradARB(s2DShadow, c3, dPdxy2, dPdxy2, texel.x);
\r
780 sparseTextureGradARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x);
\r
781 sparseTextureGradARB(sCubeShadow, c4, dPdxy3, dPdxy3, texel.x);
\r
782 sparseTextureGradARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, texel.x);
\r
783 sparseTextureGradARB(s2DArray, c3, dPdxy2, dPdxy2, texel);
\r
784 sparseTextureGradARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, texel);
\r
785 sparseTextureGradARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, texel.x);
\r
786 sparseTextureGradARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, texel.x);
\r
787 sparseTextureGradARB(sCubeArray, c4, dPdxy3, dPdxy3, texel);
\r
788 sparseTextureGradARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, texel);
\r
793 f16vec4 testSparseTextureGradOffset()
\r
795 f16vec4 texel = f16vec4(0.0hf);
\r
797 sparseTextureGradOffsetARB(s2D, c2, dPdxy2, dPdxy2, offset2, texel);
\r
798 sparseTextureGradOffsetARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel);
\r
799 sparseTextureGradOffsetARB(s3D, c3, dPdxy3, dPdxy3, offset3, texel);
\r
800 sparseTextureGradOffsetARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, texel);
\r
801 sparseTextureGradOffsetARB(s2DRect, c2, dPdxy2, dPdxy2, offset2, texel);
\r
802 sparseTextureGradOffsetARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel);
\r
803 sparseTextureGradOffsetARB(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2, texel.x);
\r
804 sparseTextureGradOffsetARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x);
\r
805 sparseTextureGradOffsetARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, texel.x);
\r
806 sparseTextureGradOffsetARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x);
\r
807 sparseTextureGradOffsetARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, texel);
\r
808 sparseTextureGradOffsetARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, texel);
\r
809 sparseTextureGradOffsetARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, texel.x);
\r
810 sparseTextureGradOffsetARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x);
\r
815 f16vec4 testSparseTexelFetch()
\r
817 f16vec4 texel = f16vec4(0.0hf);
\r
819 sparseTexelFetchARB(s2D, ivec2(c2), int(lod), texel);
\r
820 sparseTexelFetchARB(s3D, ivec3(c3), int(lod), texel);
\r
821 sparseTexelFetchARB(s2DRect, ivec2(c2), texel);
\r
822 sparseTexelFetchARB(s2DArray, ivec3(c3), int(lod), texel);
\r
823 sparseTexelFetchARB(s2DMS, ivec2(c2), 1, texel);
\r
824 sparseTexelFetchARB(s2DMSArray, ivec3(c3), 2, texel);
\r
829 f16vec4 testSparseTexelFetchOffset()
\r
831 f16vec4 texel = f16vec4(0.0hf);
\r
833 sparseTexelFetchOffsetARB(s2D, ivec2(c2), int(lod), offset2, texel);
\r
834 sparseTexelFetchOffsetARB(s3D, ivec3(c3), int(lod), offset3, texel);
\r
835 sparseTexelFetchOffsetARB(s2DRect, ivec2(c2), offset2, texel);
\r
836 sparseTexelFetchOffsetARB(s2DArray, ivec3(c3), int(lod), offset2, texel);
\r
841 f16vec4 testSparseTextureGather()
\r
843 f16vec4 texel = f16vec4(0.0hf);
\r
845 sparseTextureGatherARB(s2D, c2, texel, 0);
\r
846 sparseTextureGatherARB(s2D, f16c2, texel, 0, f16bias);
\r
847 sparseTextureGatherARB(s2DArray, c3, texel, 0);
\r
848 sparseTextureGatherARB(s2DArray, f16c3, texel, 0, f16bias);
\r
849 sparseTextureGatherARB(sCube, c3, texel, 0);
\r
850 sparseTextureGatherARB(sCube, f16c3, texel, 0, f16bias);
\r
851 sparseTextureGatherARB(sCubeArray, c4, texel, 0);
\r
852 sparseTextureGatherARB(sCubeArray, f16c4, texel, 0, f16bias);
\r
853 sparseTextureGatherARB(s2DRect, c2, texel, 0);
\r
854 sparseTextureGatherARB(s2DRect, f16c2, texel, 0);
\r
855 sparseTextureGatherARB(s2DShadow, c2, compare, texel);
\r
856 sparseTextureGatherARB(s2DShadow, f16c2, compare, texel);
\r
857 sparseTextureGatherARB(s2DArrayShadow, c3, compare, texel);
\r
858 sparseTextureGatherARB(s2DArrayShadow, f16c3, compare, texel);
\r
859 sparseTextureGatherARB(sCubeShadow, c3, compare, texel);
\r
860 sparseTextureGatherARB(sCubeShadow, f16c3, compare, texel);
\r
861 sparseTextureGatherARB(sCubeArrayShadow, c4, compare, texel);
\r
862 sparseTextureGatherARB(sCubeArrayShadow, f16c4, compare, texel);
\r
863 sparseTextureGatherARB(s2DRectShadow, c2, compare, texel);
\r
864 sparseTextureGatherARB(s2DRectShadow, f16c2, compare, texel);
\r
869 f16vec4 testSparseTextureGatherOffset()
\r
871 f16vec4 texel = f16vec4(0.0hf);
\r
873 sparseTextureGatherOffsetARB(s2D, c2, offset2, texel, 0);
\r
874 sparseTextureGatherOffsetARB(s2D, f16c2, offset2, texel, 0, f16bias);
\r
875 sparseTextureGatherOffsetARB(s2DArray, c3, offset2, texel, 0);
\r
876 sparseTextureGatherOffsetARB(s2DArray, f16c3, offset2, texel, 0, f16bias);
\r
877 sparseTextureGatherOffsetARB(s2DRect, c2, offset2, texel, 0);
\r
878 sparseTextureGatherOffsetARB(s2DRect, f16c2, offset2, texel, 0);
\r
879 sparseTextureGatherOffsetARB(s2DShadow, c2, compare, offset2, texel);
\r
880 sparseTextureGatherOffsetARB(s2DShadow, f16c2, compare, offset2, texel);
\r
881 sparseTextureGatherOffsetARB(s2DArrayShadow, c3, compare, offset2, texel);
\r
882 sparseTextureGatherOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel);
\r
883 sparseTextureGatherOffsetARB(s2DRectShadow, c2, compare, offset2, texel);
\r
884 sparseTextureGatherOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel);
\r
889 f16vec4 testSparseTextureGatherOffsets()
\r
891 f16vec4 texel = f16vec4(0.0hf);
\r
892 const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
\r
894 sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel, 0);
\r
895 sparseTextureGatherOffsetsARB(s2D, f16c2, constOffsets, texel, 0, f16bias);
\r
896 sparseTextureGatherOffsetsARB(s2DArray, c3, constOffsets, texel, 0);
\r
897 sparseTextureGatherOffsetsARB(s2DArray, f16c3, constOffsets, texel, 0, f16bias);
\r
898 sparseTextureGatherOffsetsARB(s2DRect, c2, constOffsets, texel, 0);
\r
899 sparseTextureGatherOffsetsARB(s2DRect, f16c2, constOffsets, texel, 0);
\r
900 sparseTextureGatherOffsetsARB(s2DShadow, c2, compare, constOffsets, texel);
\r
901 sparseTextureGatherOffsetsARB(s2DShadow, f16c2, compare, constOffsets, texel);
\r
902 sparseTextureGatherOffsetsARB(s2DArrayShadow, c3, compare, constOffsets, texel);
\r
903 sparseTextureGatherOffsetsARB(s2DArrayShadow, f16c3, compare, constOffsets, texel);
\r
904 sparseTextureGatherOffsetsARB(s2DRectShadow, c2, compare, constOffsets, texel);
\r
905 sparseTextureGatherOffsetsARB(s2DRectShadow, f16c2, compare, constOffsets, texel);
\r
910 f16vec4 testSparseTextureGatherLod()
\r
912 f16vec4 texel = f16vec4(0.0hf);
\r
914 sparseTextureGatherLodAMD(s2D, c2, lod, texel, 0);
\r
915 sparseTextureGatherLodAMD(s2D, f16c2, f16lod, texel, 0);
\r
916 sparseTextureGatherLodAMD(s2DArray, c3, lod, texel, 0);
\r
917 sparseTextureGatherLodAMD(s2DArray, f16c3, f16lod, texel, 0);
\r
918 sparseTextureGatherLodAMD(sCube, c3, lod, texel, 0);
\r
919 sparseTextureGatherLodAMD(sCube, f16c3, f16lod, texel, 0);
\r
920 sparseTextureGatherLodAMD(sCubeArray, c4, lod, texel, 0);
\r
921 sparseTextureGatherLodAMD(sCubeArray, f16c4, f16lod, texel, 0);
\r
926 f16vec4 testSparseTextureGatherLodOffset()
\r
928 f16vec4 texel = f16vec4(0.0hf);
\r
930 sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offset2, texel, 0);
\r
931 sparseTextureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, texel, 0);
\r
932 sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, texel, 0);
\r
933 sparseTextureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, texel, 0);
\r
938 f16vec4 testSparseTextureGatherLodOffsets()
\r
940 f16vec4 texel = f16vec4(0.0hf);
\r
942 sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, texel, 0);
\r
943 sparseTextureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, texel, 0);
\r
944 sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, texel, 0);
\r
945 sparseTextureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, texel, 0);
\r
950 f16vec4 testSparseImageLoad()
\r
952 f16vec4 texel = f16vec4(0.0hf);
\r
954 sparseImageLoadARB(i2D, ivec2(c2), texel);
\r
955 sparseImageLoadARB(i3D, ivec3(c3), texel);
\r
956 sparseImageLoadARB(i2DRect, ivec2(c2), texel);
\r
957 sparseImageLoadARB(iCube, ivec3(c3), texel);
\r
958 sparseImageLoadARB(i2DArray, ivec3(c3), texel);
\r
959 sparseImageLoadARB(iCubeArray, ivec3(c3), texel);
\r
960 sparseImageLoadARB(i2DMS, ivec2(c2), 1, texel);
\r
961 sparseImageLoadARB(i2DMSArray, ivec3(c3), 2, texel);
\r
966 f16vec4 testSparseTextureClamp()
\r
968 f16vec4 texel = f16vec4(0.0hf);
\r
970 sparseTextureClampARB(s2D, c2, lodClamp, texel);
\r
971 sparseTextureClampARB(s2D, f16c2, f16lodClamp, texel, f16bias);
\r
972 sparseTextureClampARB(s3D, c3, lodClamp, texel);
\r
973 sparseTextureClampARB(s3D, f16c3, f16lodClamp, texel, f16bias);
\r
974 sparseTextureClampARB(sCube, c3, lodClamp, texel);
\r
975 sparseTextureClampARB(sCube, f16c3, f16lodClamp, texel, f16bias);
\r
976 sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x);
\r
977 sparseTextureClampARB(s2DShadow, f16c2, compare, f16lodClamp, texel.x, f16bias);
\r
978 sparseTextureClampARB(sCubeShadow, c4, lodClamp, texel.x);
\r
979 sparseTextureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, texel.x, f16bias);
\r
980 sparseTextureClampARB(s2DArray, c3, lodClamp, texel);
\r
981 sparseTextureClampARB(s2DArray, f16c3, f16lodClamp, texel, f16bias);
\r
982 sparseTextureClampARB(sCubeArray, c4, lodClamp, texel);
\r
983 sparseTextureClampARB(sCubeArray, f16c4, f16lodClamp, texel, f16bias);
\r
984 sparseTextureClampARB(s2DArrayShadow, c4, lodClamp, texel.x);
\r
985 sparseTextureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp, texel.x);
\r
986 sparseTextureClampARB(sCubeArrayShadow, c4, compare, lodClamp, texel.x);
\r
987 sparseTextureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp, texel.x);
\r
992 f16vec4 testTextureClamp()
\r
994 f16vec4 texel = f16vec4(0.0hf);
\r
996 texel += textureClampARB(s1D, c1, lodClamp);
\r
997 texel += textureClampARB(s1D, f16c1, f16lodClamp, f16bias);
\r
998 texel += textureClampARB(s2D, c2, lodClamp);
\r
999 texel += textureClampARB(s2D, f16c2, f16lodClamp, f16bias);
\r
1000 texel += textureClampARB(s3D, c3, lodClamp);
\r
1001 texel += textureClampARB(s3D, f16c3, f16lodClamp, f16bias);
\r
1002 texel += textureClampARB(sCube, c3, lodClamp);
\r
1003 texel += textureClampARB(sCube, f16c3, f16lodClamp, f16bias);
\r
1004 texel.x += textureClampARB(s1DShadow, c3, lodClamp);
\r
1005 texel.x += textureClampARB(s1DShadow, f16c2, compare, f16lodClamp, f16bias);
\r
1006 texel.x += textureClampARB(s2DShadow, c3, lodClamp);
\r
1007 texel.x += textureClampARB(s2DShadow, f16c2, compare, f16lodClamp, f16bias);
\r
1008 texel.x += textureClampARB(sCubeShadow, c4, lodClamp);
\r
1009 texel.x += textureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, f16bias);
\r
1010 texel += textureClampARB(s1DArray, c2, lodClamp);
\r
1011 texel += textureClampARB(s1DArray, f16c2, f16lodClamp, f16bias);
\r
1012 texel += textureClampARB(s2DArray, c3, lodClamp);
\r
1013 texel += textureClampARB(s2DArray, f16c3, f16lodClamp, f16bias);
\r
1014 texel += textureClampARB(sCubeArray, c4, lodClamp);
\r
1015 texel += textureClampARB(sCubeArray, f16c4, f16lodClamp, f16bias);
\r
1016 texel.x += textureClampARB(s1DArrayShadow, c3, lodClamp);
\r
1017 texel.x += textureClampARB(s1DArrayShadow, f16c2, compare, f16lodClamp, f16bias);
\r
1018 texel.x += textureClampARB(s2DArrayShadow, c4, lodClamp);
\r
1019 texel.x += textureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp);
\r
1020 texel.x += textureClampARB(sCubeArrayShadow, c4, compare, lodClamp);
\r
1021 texel.x += textureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp);
\r
1026 f16vec4 testSparseTextureOffsetClamp()
\r
1028 f16vec4 texel = f16vec4(0.0hf);
\r
1030 sparseTextureOffsetClampARB(s2D, c2, offset2, lodClamp, texel);
\r
1031 sparseTextureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, texel, f16bias);
\r
1032 sparseTextureOffsetClampARB(s3D, c3, offset3, lodClamp, texel);
\r
1033 sparseTextureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, texel, f16bias);
\r
1034 sparseTextureOffsetClampARB(s2DShadow, c3, offset2, lodClamp, texel.x);
\r
1035 sparseTextureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, texel.x, f16bias);
\r
1036 sparseTextureOffsetClampARB(s2DArray, c3, offset2, lodClamp, texel);
\r
1037 sparseTextureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, texel, f16bias);
\r
1038 sparseTextureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp, texel.x);
\r
1039 sparseTextureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp, texel.x);
\r
1044 f16vec4 testTextureOffsetClamp()
\r
1046 f16vec4 texel = f16vec4(0.0hf);
\r
1048 texel += textureOffsetClampARB(s1D, c1, offset1, lodClamp);
\r
1049 texel += textureOffsetClampARB(s1D, f16c1, offset1, f16lodClamp, f16bias);
\r
1050 texel += textureOffsetClampARB(s2D, c2, offset2, lodClamp);
\r
1051 texel += textureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, f16bias);
\r
1052 texel += textureOffsetClampARB(s3D, c3, offset3, lodClamp);
\r
1053 texel += textureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, f16bias);
\r
1054 texel.x += textureOffsetClampARB(s1DShadow, c3, offset1, lodClamp);
\r
1055 texel.x += textureOffsetClampARB(s1DShadow, f16c2, compare, offset1, f16lodClamp, f16bias);
\r
1056 texel.x += textureOffsetClampARB(s2DShadow, c3, offset2, lodClamp);
\r
1057 texel.x += textureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, f16bias);
\r
1058 texel += textureOffsetClampARB(s1DArray, c2, offset1, lodClamp);
\r
1059 texel += textureOffsetClampARB(s1DArray, f16c2, offset1, f16lodClamp, f16bias);
\r
1060 texel += textureOffsetClampARB(s2DArray, c3, offset2, lodClamp);
\r
1061 texel += textureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, f16bias);
\r
1062 texel.x += textureOffsetClampARB(s1DArrayShadow, c3, offset1, lodClamp);
\r
1063 texel.x += textureOffsetClampARB(s1DArrayShadow, f16c2, compare, offset1, f16lodClamp, f16bias);
\r
1064 texel.x += textureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp);
\r
1065 texel.x += textureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp);
\r
1070 f16vec4 testSparseTextureGradClamp()
\r
1072 f16vec4 texel = f16vec4(0.0hf);
\r
1074 sparseTextureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp, texel);
\r
1075 sparseTextureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp, texel);
\r
1076 sparseTextureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp, texel);
\r
1077 sparseTextureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel);
\r
1078 sparseTextureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp, texel);
\r
1079 sparseTextureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel);
\r
1080 sparseTextureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp, texel.x);
\r
1081 sparseTextureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x);
\r
1082 sparseTextureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp, texel.x);
\r
1083 sparseTextureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp, texel.x);
\r
1084 sparseTextureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp, texel);
\r
1085 sparseTextureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp, texel);
\r
1086 sparseTextureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp, texel.x);
\r
1087 sparseTextureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x);
\r
1088 sparseTextureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp, texel);
\r
1089 sparseTextureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp, texel);
\r
1094 f16vec4 testTextureGradClamp()
\r
1096 f16vec4 texel = f16vec4(0.0hf);
\r
1098 texel += textureGradClampARB(s1D, c1, dPdxy1, dPdxy1, lodClamp);
\r
1099 texel += textureGradClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, f16lodClamp);
\r
1100 texel += textureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp);
\r
1101 texel += textureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp);
\r
1102 texel += textureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp);
\r
1103 texel += textureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp);
\r
1104 texel += textureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp);
\r
1105 texel += textureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp);
\r
1106 texel.x += textureGradClampARB(s1DShadow, c3, dPdxy1, dPdxy1, lodClamp);
\r
1107 texel.x += textureGradClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp);
\r
1108 texel.x += textureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp);
\r
1109 texel.x += textureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp);
\r
1110 texel.x += textureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp);
\r
1111 texel.x += textureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp);
\r
1112 texel += textureGradClampARB(s1DArray, c2, dPdxy1, dPdxy1, lodClamp);
\r
1113 texel += textureGradClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, f16lodClamp);
\r
1114 texel += textureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp);
\r
1115 texel += textureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp);
\r
1116 texel.x += textureGradClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, lodClamp);
\r
1117 texel.x += textureGradClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp);
\r
1118 texel.x += textureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp);
\r
1119 texel.x += textureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp);
\r
1120 texel += textureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp);
\r
1121 texel += textureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp);
\r
1126 f16vec4 testSparseTextureGradOffsetClamp()
\r
1128 f16vec4 texel = f16vec4(0.0hf);
\r
1130 sparseTextureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp, texel);
\r
1131 sparseTextureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel);
\r
1132 sparseTextureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp, texel);
\r
1133 sparseTextureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp, texel);
\r
1134 sparseTextureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel.x);
\r
1135 sparseTextureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x);
\r
1136 sparseTextureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel);
\r
1137 sparseTextureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel);
\r
1138 sparseTextureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp, texel.x);
\r
1139 sparseTextureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x);
\r
1144 f16vec4 testTextureGradOffsetClamp()
\r
1146 f16vec4 texel = f16vec4(0.0hf);
\r
1148 texel += textureGradOffsetClampARB(s1D, c1, dPdxy1, dPdxy1, offset1, lodClamp);
\r
1149 texel += textureGradOffsetClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp);
\r
1150 texel += textureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp);
\r
1151 texel += textureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp);
\r
1152 texel += textureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp);
\r
1153 texel += textureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp);
\r
1154 texel.x += textureGradOffsetClampARB(s1DShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp);
\r
1155 texel.x += textureGradOffsetClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp);
\r
1156 texel.x += textureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp);
\r
1157 texel.x += textureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp);
\r
1158 texel += textureGradOffsetClampARB(s1DArray, c2, dPdxy1, dPdxy1, offset1, lodClamp);
\r
1159 texel += textureGradOffsetClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp);
\r
1160 texel += textureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp);
\r
1161 texel += textureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp);
\r
1162 texel.x += textureGradOffsetClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp);
\r
1163 texel.x += textureGradOffsetClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp);
\r
1164 texel.x += textureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp);
\r
1165 texel.x += textureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp);
\r
1170 f16vec4 testCombinedTextureSampler()
\r
1172 f16vec4 texel = f16vec4(0.0hf);
\r
1174 texel += texture(f16sampler1D(t1D, s), c1);
\r
1175 texel += texture(f16sampler1D(t1D, s), f16c1, f16bias);
\r
1176 texel += texture(f16sampler2D(t2D, s), c2);
\r
1177 texel += texture(f16sampler2D(t2D, s), f16c2, f16bias);
\r
1178 texel += texture(f16sampler3D(t3D, s), c3);
\r
1179 texel += texture(f16sampler3D(t3D, s), f16c3, f16bias);
\r
1180 texel += texture(f16samplerCube(tCube, s), c3);
\r
1181 texel += texture(f16samplerCube(tCube, s), f16c3, f16bias);
\r
1182 texel.x += texture(f16sampler1DShadow(t1D, sShadow), c3);
\r
1183 texel.x += texture(f16sampler1DShadow(t1D, sShadow), f16c2, compare, f16bias);
\r
1184 texel.x += texture(f16sampler2DShadow(t2D, sShadow), c3);
\r
1185 texel.x += texture(f16sampler2DShadow(t2D, sShadow), f16c2, compare, f16bias);
\r
1186 texel.x += texture(f16samplerCubeShadow(tCube, sShadow), c4);
\r
1187 texel.x += texture(f16samplerCubeShadow(tCube, sShadow), f16c3, compare, f16bias);
\r
1188 texel += texture(f16sampler1DArray(t1DArray, s), c2);
\r
1189 texel += texture(f16sampler1DArray(t1DArray, s), f16c2, f16bias);
\r
1190 texel += texture(f16sampler2DArray(t2DArray, s), c3);
\r
1191 texel += texture(f16sampler2DArray(t2DArray, s), f16c3, f16bias);
\r
1192 texel += texture(f16samplerCubeArray(tCubeArray, s), c4);
\r
1193 texel += texture(f16samplerCubeArray(tCubeArray, s), f16c4, f16bias);
\r
1194 texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), c3);
\r
1195 texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), f16c2, compare, f16bias);
\r
1196 texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), c4);
\r
1197 texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), f16c3, compare);
\r
1198 texel += texture(f16sampler2DRect(t2DRect, s), c2);
\r
1199 texel += texture(f16sampler2DRect(t2DRect, s), f16c2);
\r
1200 texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), c3);
\r
1201 texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), f16c2, compare);
\r
1202 texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), c4, compare);
\r
1203 texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), f16c4, compare);
\r
1208 f16vec4 testSubpassLoad()
\r
1210 return subpassLoad(subpass) + subpassLoad(subpassMS, 2);
\r
1215 f16vec4 result = f16vec4(0.0hf);
\r
1217 result += testTexture();
\r
1218 result += testTextureProj();
\r
1219 result += testTextureLod();
\r
1220 result += testTextureOffset();
\r
1221 result += testTextureLodOffset();
\r
1222 result += testTextureProjLodOffset();
\r
1223 result += testTexelFetch();
\r
1224 result += testTexelFetchOffset();
\r
1225 result += testTextureGrad();
\r
1226 result += testTextureGradOffset();
\r
1227 result += testTextureProjGrad();
\r
1228 result += testTextureProjGradoffset();
\r
1229 result += testTextureGather();
\r
1230 result += testTextureGatherOffset();
\r
1231 result += testTextureGatherOffsets();
\r
1232 result += testTextureGatherLod();
\r
1233 result += testTextureGatherLodOffset();
\r
1234 result += testTextureGatherLodOffsets();
\r
1236 result += f16vec4(testTextureSize());
\r
1237 result.xy += f16vec2(testTextureQueryLod());
\r
1238 result.x += float16_t(testTextureQueryLevels());
\r
1239 result.x += float16_t(testTextureSamples());
\r
1241 result += testImageLoad();
\r
1242 testImageStore(result);
\r
1244 result += testSparseTexture();
\r
1245 result += testSparseTextureLod();
\r
1246 result += testSparseTextureOffset();
\r
1247 result += testSparseTextureLodOffset();
\r
1248 result += testSparseTextureGrad();
\r
1249 result += testSparseTextureGradOffset();
\r
1250 result += testSparseTexelFetch();
\r
1251 result += testSparseTexelFetchOffset();
\r
1252 result += testSparseTextureGather();
\r
1253 result += testSparseTextureGatherOffset();
\r
1254 result += testSparseTextureGatherOffsets();
\r
1255 result += testSparseTextureGatherLod();
\r
1256 result += testSparseTextureGatherLodOffset();
\r
1257 result += testSparseTextureGatherLodOffsets();
\r
1259 result += testSparseImageLoad();
\r
1261 result += testSparseTextureClamp();
\r
1262 result += testTextureClamp();
\r
1263 result += testSparseTextureOffsetClamp();
\r
1264 result += testTextureOffsetClamp();
\r
1265 result += testSparseTextureGrad();
\r
1266 result += testTextureGrad();
\r
1267 result += testSparseTextureGradOffsetClamp();
\r
1268 result += testTextureGradOffsetClamp();
\r
1270 result += testCombinedTextureSampler();
\r
1271 result += testSubpassLoad();
\r
1273 fragColor = result;
\r