• Home
  • Raw
  • Download

Lines Matching refs:ctx

69 void vertex_attribf (NegativeTestContext& ctx)  in vertex_attribf()  argument
71ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attribf()
72 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attribf()
73 ctx.glVertexAttrib1f(maxVertexAttribs, 0.0f); in vertex_attribf()
74 ctx.expectError(GL_INVALID_VALUE); in vertex_attribf()
75 ctx.glVertexAttrib2f(maxVertexAttribs, 0.0f, 0.0f); in vertex_attribf()
76 ctx.expectError(GL_INVALID_VALUE); in vertex_attribf()
77 ctx.glVertexAttrib3f(maxVertexAttribs, 0.0f, 0.0f, 0.0f); in vertex_attribf()
78 ctx.expectError(GL_INVALID_VALUE); in vertex_attribf()
79 ctx.glVertexAttrib4f(maxVertexAttribs, 0.0f, 0.0f, 0.0f, 0.0f); in vertex_attribf()
80 ctx.expectError(GL_INVALID_VALUE); in vertex_attribf()
81 ctx.endSection(); in vertex_attribf()
84 void vertex_attribfv (NegativeTestContext& ctx) in vertex_attribfv() argument
86ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attribfv()
87 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attribfv()
89 ctx.glVertexAttrib1fv(maxVertexAttribs, &v[0]); in vertex_attribfv()
90 ctx.expectError(GL_INVALID_VALUE); in vertex_attribfv()
91 ctx.glVertexAttrib2fv(maxVertexAttribs, &v[0]); in vertex_attribfv()
92 ctx.expectError(GL_INVALID_VALUE); in vertex_attribfv()
93 ctx.glVertexAttrib3fv(maxVertexAttribs, &v[0]); in vertex_attribfv()
94 ctx.expectError(GL_INVALID_VALUE); in vertex_attribfv()
95 ctx.glVertexAttrib4fv(maxVertexAttribs, &v[0]); in vertex_attribfv()
96 ctx.expectError(GL_INVALID_VALUE); in vertex_attribfv()
97 ctx.endSection(); in vertex_attribfv()
100 void vertex_attribi4 (NegativeTestContext& ctx) in vertex_attribi4() argument
102 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attribi4()
106ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attribi4()
107 ctx.glVertexAttribI4i(maxVertexAttribs, valInt, valInt, valInt, valInt); in vertex_attribi4()
108 ctx.expectError(GL_INVALID_VALUE); in vertex_attribi4()
109 ctx.glVertexAttribI4ui(maxVertexAttribs, valUint, valUint, valUint, valUint); in vertex_attribi4()
110 ctx.expectError(GL_INVALID_VALUE); in vertex_attribi4()
111 ctx.endSection(); in vertex_attribi4()
114 void vertex_attribi4v (NegativeTestContext& ctx) in vertex_attribi4v() argument
116 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attribi4v()
120ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attribi4v()
121 ctx.glVertexAttribI4iv(maxVertexAttribs, &valInt[0]); in vertex_attribi4v()
122 ctx.expectError(GL_INVALID_VALUE); in vertex_attribi4v()
123 ctx.glVertexAttribI4uiv(maxVertexAttribs, &valUint[0]); in vertex_attribi4v()
124 ctx.expectError(GL_INVALID_VALUE); in vertex_attribi4v()
125 ctx.endSection(); in vertex_attribi4v()
128 void vertex_attrib_pointer (NegativeTestContext& ctx) in vertex_attrib_pointer() argument
130 ctx.beginSection("GL_INVALID_ENUM is generated if type is not an accepted value."); in vertex_attrib_pointer()
131 ctx.glVertexAttribPointer(0, 1, 0, GL_TRUE, 0, 0); in vertex_attrib_pointer()
132 ctx.expectError(GL_INVALID_ENUM); in vertex_attrib_pointer()
133 ctx.endSection(); in vertex_attrib_pointer()
135ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attrib_pointer()
136 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attrib_pointer()
137 ctx.glVertexAttribPointer(maxVertexAttribs, 1, GL_BYTE, GL_TRUE, 0, 0); in vertex_attrib_pointer()
138 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_pointer()
139 ctx.endSection(); in vertex_attrib_pointer()
141 ctx.beginSection("GL_INVALID_VALUE is generated if size is not 1, 2, 3, or 4."); in vertex_attrib_pointer()
142 ctx.glVertexAttribPointer(0, 0, GL_BYTE, GL_TRUE, 0, 0); in vertex_attrib_pointer()
143 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_pointer()
144 ctx.endSection(); in vertex_attrib_pointer()
146 ctx.beginSection("GL_INVALID_VALUE is generated if stride is negative."); in vertex_attrib_pointer()
147 ctx.glVertexAttribPointer(0, 1, GL_BYTE, GL_TRUE, -1, 0); in vertex_attrib_pointer()
148 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_pointer()
149 ctx.endSection(); in vertex_attrib_pointer()
151ctx.beginSection("GL_INVALID_OPERATION is generated if type is GL_INT_2_10_10_10_REV or GL_UNSIGNE… in vertex_attrib_pointer()
152 ctx.glVertexAttribPointer(0, 2, GL_INT_2_10_10_10_REV, GL_TRUE, 0, 0); in vertex_attrib_pointer()
153 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_pointer()
154 ctx.glVertexAttribPointer(0, 2, GL_UNSIGNED_INT_2_10_10_10_REV, GL_TRUE, 0, 0); in vertex_attrib_pointer()
155 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_pointer()
156 ctx.glVertexAttribPointer(0, 4, GL_INT_2_10_10_10_REV, GL_TRUE, 0, 0); in vertex_attrib_pointer()
157 ctx.expectError(GL_NO_ERROR); in vertex_attrib_pointer()
158 ctx.glVertexAttribPointer(0, 4, GL_UNSIGNED_INT_2_10_10_10_REV, GL_TRUE, 0, 0); in vertex_attrib_pointer()
159 ctx.expectError(GL_NO_ERROR); in vertex_attrib_pointer()
160 ctx.endSection(); in vertex_attrib_pointer()
162ctx.beginSection("GL_INVALID_OPERATION is generated a non-zero vertex array object is bound, zero … in vertex_attrib_pointer()
165 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_pointer()
166 ctx.glBindVertexArray(vao); in vertex_attrib_pointer()
167 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_pointer()
168 ctx.expectError(GL_NO_ERROR); in vertex_attrib_pointer()
170 ctx.glVertexAttribPointer(0, 1, GL_BYTE, GL_TRUE, 0, &offset); in vertex_attrib_pointer()
171 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_pointer()
173 ctx.glBindVertexArray(0); in vertex_attrib_pointer()
174 ctx.glDeleteVertexArrays(1, &vao); in vertex_attrib_pointer()
175 ctx.expectError(GL_NO_ERROR); in vertex_attrib_pointer()
176 ctx.endSection(); in vertex_attrib_pointer()
179 void vertex_attrib_i_pointer (NegativeTestContext& ctx) in vertex_attrib_i_pointer() argument
181 ctx.beginSection("GL_INVALID_ENUM is generated if type is not an accepted value."); in vertex_attrib_i_pointer()
182 ctx.glVertexAttribIPointer(0, 1, 0, 0, 0); in vertex_attrib_i_pointer()
183 ctx.expectError(GL_INVALID_ENUM); in vertex_attrib_i_pointer()
184 ctx.glVertexAttribIPointer(0, 4, GL_INT_2_10_10_10_REV, 0, 0); in vertex_attrib_i_pointer()
185 ctx.expectError(GL_INVALID_ENUM); in vertex_attrib_i_pointer()
186 ctx.glVertexAttribIPointer(0, 4, GL_UNSIGNED_INT_2_10_10_10_REV, 0, 0); in vertex_attrib_i_pointer()
187 ctx.expectError(GL_INVALID_ENUM); in vertex_attrib_i_pointer()
188 ctx.endSection(); in vertex_attrib_i_pointer()
190ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attrib_i_pointer()
191 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attrib_i_pointer()
192 ctx.glVertexAttribIPointer(maxVertexAttribs, 1, GL_BYTE, 0, 0); in vertex_attrib_i_pointer()
193 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_i_pointer()
194 ctx.endSection(); in vertex_attrib_i_pointer()
196 ctx.beginSection("GL_INVALID_VALUE is generated if size is not 1, 2, 3, or 4."); in vertex_attrib_i_pointer()
197 ctx.glVertexAttribIPointer(0, 0, GL_BYTE, 0, 0); in vertex_attrib_i_pointer()
198 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_i_pointer()
199 ctx.endSection(); in vertex_attrib_i_pointer()
201 ctx.beginSection("GL_INVALID_VALUE is generated if stride is negative."); in vertex_attrib_i_pointer()
202 ctx.glVertexAttribIPointer(0, 1, GL_BYTE, -1, 0); in vertex_attrib_i_pointer()
203 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_i_pointer()
204 ctx.endSection(); in vertex_attrib_i_pointer()
206ctx.beginSection("GL_INVALID_OPERATION is generated a non-zero vertex array object is bound, zero … in vertex_attrib_i_pointer()
209 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_i_pointer()
210 ctx.glBindVertexArray(vao); in vertex_attrib_i_pointer()
211 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_i_pointer()
212 ctx.expectError(GL_NO_ERROR); in vertex_attrib_i_pointer()
214 ctx.glVertexAttribIPointer(0, 1, GL_BYTE, 0, &offset); in vertex_attrib_i_pointer()
215 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_i_pointer()
217 ctx.glBindVertexArray(0); in vertex_attrib_i_pointer()
218 ctx.glDeleteVertexArrays(1, &vao); in vertex_attrib_i_pointer()
219 ctx.expectError(GL_NO_ERROR); in vertex_attrib_i_pointer()
220 ctx.endSection(); in vertex_attrib_i_pointer()
223 void vertex_attrib_format (NegativeTestContext& ctx) in vertex_attrib_format() argument
225 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attrib_format()
226 int maxVertexAttribRelativeOffset = ctx.getInteger(GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET); in vertex_attrib_format()
229ctx.beginSection("GL_INVALID_VALUE is generated if attribindex is greater than or equal to the val… in vertex_attrib_format()
230 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
231 ctx.glBindVertexArray(vao); in vertex_attrib_format()
232 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
233 ctx.glVertexAttribFormat(maxVertexAttribs, 4, GL_FLOAT, GL_FALSE, maxVertexAttribRelativeOffset); in vertex_attrib_format()
234 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_format()
235 ctx.endSection(); in vertex_attrib_format()
237 ctx.beginSection("GL_INVALID_VALUE is generated if size is not one of 1, 2, 3, 4."); in vertex_attrib_format()
238 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
239 ctx.glBindVertexArray(vao); in vertex_attrib_format()
240 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
241 ctx.glVertexAttribFormat(1, 0, GL_FLOAT, GL_FALSE, maxVertexAttribRelativeOffset); in vertex_attrib_format()
242 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_format()
243 ctx.endSection(); in vertex_attrib_format()
245ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the parameter token names all… in vertex_attrib_format()
246 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
247 ctx.glBindVertexArray(vao); in vertex_attrib_format()
248 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
249 ctx.glVertexAttribFormat(1, 4, 1, GL_FALSE, 0); in vertex_attrib_format()
250 ctx.expectError(GL_INVALID_ENUM); in vertex_attrib_format()
251 ctx.endSection(); in vertex_attrib_format()
253 ctx.beginSection("GL_INVALID_OPERATION is generated if type is not a token name allowed."); in vertex_attrib_format()
254 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
255 ctx.glBindVertexArray(0); in vertex_attrib_format()
256 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
257 ctx.glVertexAttribFormat(1, 4, GL_FLOAT, GL_FALSE, 0); in vertex_attrib_format()
258 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_format()
259 ctx.endSection(); in vertex_attrib_format()
261ctx.beginSection("GL_INVALID_OPERATION is generated if type is GL_INT_2_10_10_10_REV and size is n… in vertex_attrib_format()
262 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
263 ctx.glBindVertexArray(vao); in vertex_attrib_format()
264 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
265 ctx.glVertexAttribFormat(1, 3, GL_INT_2_10_10_10_REV, GL_FALSE, 0); in vertex_attrib_format()
266 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_format()
267 ctx.endSection(); in vertex_attrib_format()
269ctx.beginSection("GL_INVALID_OPERATION is generated if type is GL_UNSIGNED_INT_2_10_10_10_REV and … in vertex_attrib_format()
270 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
271 ctx.glBindVertexArray(vao); in vertex_attrib_format()
272 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
273 ctx.glVertexAttribFormat(1, 3, GL_UNSIGNED_INT_2_10_10_10_REV, GL_FALSE, 0); in vertex_attrib_format()
274 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_format()
275 ctx.endSection(); in vertex_attrib_format()
277ctx.beginSection("GL_INVALID_VALUE is generated if relativeoffset is larger than the value of GL_M… in vertex_attrib_format()
278 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_format()
279 ctx.glBindVertexArray(vao); in vertex_attrib_format()
280 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_format()
281 ctx.glVertexAttribFormat(1, 4, GL_FLOAT, GL_FALSE, maxVertexAttribRelativeOffset + 1); in vertex_attrib_format()
282 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_format()
283 ctx.endSection(); in vertex_attrib_format()
286 void vertex_attrib_i_format (NegativeTestContext& ctx) in vertex_attrib_i_format() argument
288 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attrib_i_format()
289 int maxVertexAttribRelativeOffset = ctx.getInteger(GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET); in vertex_attrib_i_format()
292ctx.beginSection("GL_INVALID_VALUE is generated if attribindex is greater than or equal to the val… in vertex_attrib_i_format()
293 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_i_format()
294 ctx.glBindVertexArray(vao); in vertex_attrib_i_format()
295 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_i_format()
296 ctx.glVertexAttribIFormat(maxVertexAttribs, 4, GL_INT, 0); in vertex_attrib_i_format()
297 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_i_format()
298 ctx.endSection(); in vertex_attrib_i_format()
300 ctx.beginSection("GL_INVALID_VALUE is generated if size is not one the values 1, 2, 3, 4."); in vertex_attrib_i_format()
301 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_i_format()
302 ctx.glBindVertexArray(vao); in vertex_attrib_i_format()
303 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_i_format()
304 ctx.glVertexAttribIFormat(1, 0, GL_INT, 0); in vertex_attrib_i_format()
305 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_i_format()
306 ctx.endSection(); in vertex_attrib_i_format()
308ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the parameter token names all… in vertex_attrib_i_format()
309 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_i_format()
310 ctx.glBindVertexArray(vao); in vertex_attrib_i_format()
311 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_i_format()
312 ctx.glVertexAttribIFormat(1, 4, GL_FLOAT, 0); in vertex_attrib_i_format()
313 ctx.expectError(GL_INVALID_ENUM); in vertex_attrib_i_format()
314 ctx.endSection(); in vertex_attrib_i_format()
316 ctx.beginSection("GL_INVALID_OPERATION is generated if type is not a token name allowed."); in vertex_attrib_i_format()
317 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_i_format()
318 ctx.glBindVertexArray(0); in vertex_attrib_i_format()
319 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_i_format()
320 ctx.glVertexAttribIFormat(1, 4, GL_INT, 0); in vertex_attrib_i_format()
321 ctx.expectError(GL_INVALID_OPERATION); in vertex_attrib_i_format()
322 ctx.endSection(); in vertex_attrib_i_format()
324ctx.beginSection("GL_INVALID_VALUE is generated if relativeoffset is larger than the value of GL_M… in vertex_attrib_i_format()
325 ctx.glGenVertexArrays(1, &vao); in vertex_attrib_i_format()
326 ctx.glBindVertexArray(vao); in vertex_attrib_i_format()
327 ctx.glBindBuffer(GL_ARRAY_BUFFER, 0); in vertex_attrib_i_format()
328 ctx.glVertexAttribIFormat(1, 4, GL_INT, maxVertexAttribRelativeOffset + 1); in vertex_attrib_i_format()
329 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_i_format()
330 ctx.endSection(); in vertex_attrib_i_format()
333 void enable_vertex_attrib_array (NegativeTestContext& ctx) in enable_vertex_attrib_array() argument
335 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in enable_vertex_attrib_array()
337ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in enable_vertex_attrib_array()
338 ctx.glEnableVertexAttribArray(maxVertexAttribs); in enable_vertex_attrib_array()
339 ctx.expectError(GL_INVALID_VALUE); in enable_vertex_attrib_array()
340 ctx.endSection(); in enable_vertex_attrib_array()
343 void disable_vertex_attrib_array (NegativeTestContext& ctx) in disable_vertex_attrib_array() argument
345 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in disable_vertex_attrib_array()
347ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in disable_vertex_attrib_array()
348 ctx.glDisableVertexAttribArray(maxVertexAttribs); in disable_vertex_attrib_array()
349 ctx.expectError(GL_INVALID_VALUE); in disable_vertex_attrib_array()
350 ctx.endSection(); in disable_vertex_attrib_array()
353 void gen_vertex_arrays (NegativeTestContext& ctx) in gen_vertex_arrays() argument
357 ctx.beginSection("GL_INVALID_VALUE is generated if n is negative."); in gen_vertex_arrays()
358 ctx.glGenVertexArrays(-1, &arrays); in gen_vertex_arrays()
359 ctx.expectError(GL_INVALID_VALUE); in gen_vertex_arrays()
360 ctx.endSection(); in gen_vertex_arrays()
363 void bind_vertex_array (NegativeTestContext& ctx) in bind_vertex_array() argument
365ctx.beginSection("GL_INVALID_OPERATION is generated if array is not zero or the name of an existin… in bind_vertex_array()
366 ctx.glBindVertexArray(-1); in bind_vertex_array()
367 ctx.expectError(GL_INVALID_OPERATION); in bind_vertex_array()
368 ctx.endSection(); in bind_vertex_array()
371 void delete_vertex_arrays (NegativeTestContext& ctx) in delete_vertex_arrays() argument
373 ctx.beginSection("GL_INVALID_VALUE is generated if n is negative."); in delete_vertex_arrays()
374 ctx.glDeleteVertexArrays(-1, 0); in delete_vertex_arrays()
375 ctx.expectError(GL_INVALID_VALUE); in delete_vertex_arrays()
376 ctx.endSection(); in delete_vertex_arrays()
379 void vertex_attrib_divisor (NegativeTestContext& ctx) in vertex_attrib_divisor() argument
381 int maxVertexAttribs = ctx.getInteger(GL_MAX_VERTEX_ATTRIBS); in vertex_attrib_divisor()
383ctx.beginSection("GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX… in vertex_attrib_divisor()
384 ctx.glVertexAttribDivisor(maxVertexAttribs, 0); in vertex_attrib_divisor()
385 ctx.expectError(GL_INVALID_VALUE); in vertex_attrib_divisor()
386 ctx.endSection(); in vertex_attrib_divisor()
389 void draw_arrays (NegativeTestContext& ctx) in draw_arrays() argument
391 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_arrays()
395 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_arrays()
397 ctx.glUseProgram(program.getProgram()); in draw_arrays()
398 ctx.expectError(GL_NO_ERROR); in draw_arrays()
400 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_arrays()
401 ctx.glDrawArrays(-1, 0, 1); in draw_arrays()
402 ctx.expectError(GL_INVALID_ENUM); in draw_arrays()
403 ctx.endSection(); in draw_arrays()
405 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_arrays()
406 ctx.glDrawArrays(GL_POINTS, 0, -1); in draw_arrays()
407 ctx.expectError(GL_INVALID_VALUE); in draw_arrays()
408 ctx.endSection(); in draw_arrays()
410ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_arrays()
411 ctx.glGenFramebuffers(1, &fbo); in draw_arrays()
412 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_arrays()
413 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_arrays()
414 ctx.glDrawArrays(GL_POINTS, 0, 1); in draw_arrays()
415 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_arrays()
416 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_arrays()
417 ctx.glDeleteFramebuffers(1, &fbo); in draw_arrays()
418 ctx.endSection(); in draw_arrays()
420 ctx.glUseProgram(0); in draw_arrays()
423 void draw_arrays_invalid_program (NegativeTestContext& ctx) in draw_arrays_invalid_program() argument
426 ctx.glUseProgram(0); in draw_arrays_invalid_program()
428 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_arrays_invalid_program()
429 ctx.glDrawArrays(-1, 0, 1); in draw_arrays_invalid_program()
430 ctx.expectError(GL_INVALID_ENUM); in draw_arrays_invalid_program()
431 ctx.endSection(); in draw_arrays_invalid_program()
433 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_arrays_invalid_program()
434 ctx.glDrawArrays(GL_POINTS, 0, -1); in draw_arrays_invalid_program()
435 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_invalid_program()
436 ctx.endSection(); in draw_arrays_invalid_program()
438ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_arrays_invalid_program()
439 ctx.glGenFramebuffers(1, &fbo); in draw_arrays_invalid_program()
440 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_arrays_invalid_program()
441 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_arrays_invalid_program()
442 ctx.glDrawArrays(GL_POINTS, 0, 1); in draw_arrays_invalid_program()
443 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_arrays_invalid_program()
444 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_arrays_invalid_program()
445 ctx.glDeleteFramebuffers(1, &fbo); in draw_arrays_invalid_program()
446 ctx.endSection(); in draw_arrays_invalid_program()
449 void draw_arrays_incomplete_primitive (NegativeTestContext& ctx) in draw_arrays_incomplete_primitive() argument
451 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_arrays_incomplete_primitive()
455 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_arrays_incomplete_primitive()
457 ctx.glUseProgram(program.getProgram()); in draw_arrays_incomplete_primitive()
458 ctx.expectError(GL_NO_ERROR); in draw_arrays_incomplete_primitive()
460 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_arrays_incomplete_primitive()
461 ctx.glDrawArrays(-1, 0, 1); in draw_arrays_incomplete_primitive()
462 ctx.expectError(GL_INVALID_ENUM); in draw_arrays_incomplete_primitive()
463 ctx.endSection(); in draw_arrays_incomplete_primitive()
465 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_arrays_incomplete_primitive()
466 ctx.glDrawArrays(GL_TRIANGLES, 0, -1); in draw_arrays_incomplete_primitive()
467 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_incomplete_primitive()
468 ctx.endSection(); in draw_arrays_incomplete_primitive()
470ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_arrays_incomplete_primitive()
471 ctx.glGenFramebuffers(1, &fbo); in draw_arrays_incomplete_primitive()
472 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_arrays_incomplete_primitive()
473 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_arrays_incomplete_primitive()
474 ctx.glDrawArrays(GL_TRIANGLES, 0, 1); in draw_arrays_incomplete_primitive()
475 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_arrays_incomplete_primitive()
476 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_arrays_incomplete_primitive()
477 ctx.glDeleteFramebuffers(1, &fbo); in draw_arrays_incomplete_primitive()
478 ctx.endSection(); in draw_arrays_incomplete_primitive()
480 ctx.glUseProgram(0); in draw_arrays_incomplete_primitive()
483 void draw_elements (NegativeTestContext& ctx) in draw_elements() argument
485 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_elements()
492 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_elements()
494 ctx.glUseProgram(program.getProgram()); in draw_elements()
495 ctx.expectError(GL_NO_ERROR); in draw_elements()
497 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements()
498 ctx.glDrawElements(-1, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements()
499 ctx.expectError(GL_INVALID_ENUM); in draw_elements()
500 ctx.endSection(); in draw_elements()
502 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements()
503 ctx.glDrawElements(GL_POINTS, 1, -1, vertices); in draw_elements()
504 ctx.expectError(GL_INVALID_ENUM); in draw_elements()
505 ctx.glDrawElements(GL_POINTS, 1, GL_FLOAT, vertices); in draw_elements()
506 ctx.expectError(GL_INVALID_ENUM); in draw_elements()
507 ctx.endSection(); in draw_elements()
509 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_elements()
510 ctx.glDrawElements(GL_POINTS, -1, GL_UNSIGNED_BYTE, vertices); in draw_elements()
511 ctx.expectError(GL_INVALID_VALUE); in draw_elements()
512 ctx.endSection(); in draw_elements()
514ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements()
515 ctx.glGenFramebuffers(1, &fbo); in draw_elements()
516 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements()
517 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements()
518 ctx.glDrawElements(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements()
519 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements()
520 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements()
521 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements()
522 ctx.endSection(); in draw_elements()
524 …if (!ctx.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader")) // GL_EXT_geometry_shade… in draw_elements()
526ctx.beginSection("GL_INVALID_OPERATION is generated if transform feedback is active and not paused… in draw_elements()
529 ctx.glGenBuffers(1, &buf); in draw_elements()
530 ctx.glGenTransformFeedbacks(1, &tfID); in draw_elements()
532 ctx.glUseProgram(program.getProgram()); in draw_elements()
533 ctx.glTransformFeedbackVaryings(program.getProgram(), 1, &tfVarying, GL_INTERLEAVED_ATTRIBS); in draw_elements()
534 ctx.glLinkProgram(program.getProgram()); in draw_elements()
535 ctx.glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfID); in draw_elements()
536 ctx.glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, buf); in draw_elements()
537 ctx.glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, 32, DE_NULL, GL_DYNAMIC_DRAW); in draw_elements()
538 ctx.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf); in draw_elements()
539 ctx.glBeginTransformFeedback(GL_POINTS); in draw_elements()
540 ctx.expectError(GL_NO_ERROR); in draw_elements()
542 ctx.glDrawElements(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements()
543 ctx.expectError(GL_INVALID_OPERATION); in draw_elements()
545 ctx.glPauseTransformFeedback(); in draw_elements()
546 ctx.glDrawElements(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements()
547 ctx.expectError(GL_NO_ERROR); in draw_elements()
549 ctx.glEndTransformFeedback(); in draw_elements()
550 ctx.glDeleteBuffers(1, &buf); in draw_elements()
551 ctx.glDeleteTransformFeedbacks(1, &tfID); in draw_elements()
552 ctx.expectError(GL_NO_ERROR); in draw_elements()
553 ctx.endSection(); in draw_elements()
556 ctx.glUseProgram(0); in draw_elements()
559 void draw_elements_invalid_program (NegativeTestContext& ctx) in draw_elements_invalid_program() argument
561 ctx.glUseProgram(0); in draw_elements_invalid_program()
565 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_invalid_program()
566 ctx.glDrawElements(-1, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements_invalid_program()
567 ctx.expectError(GL_INVALID_ENUM); in draw_elements_invalid_program()
568 ctx.endSection(); in draw_elements_invalid_program()
570 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_invalid_program()
571 ctx.glDrawElements(GL_POINTS, 1, -1, vertices); in draw_elements_invalid_program()
572 ctx.expectError(GL_INVALID_ENUM); in draw_elements_invalid_program()
573 ctx.glDrawElements(GL_POINTS, 1, GL_FLOAT, vertices); in draw_elements_invalid_program()
574 ctx.expectError(GL_INVALID_ENUM); in draw_elements_invalid_program()
575 ctx.endSection(); in draw_elements_invalid_program()
577 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_elements_invalid_program()
578 ctx.glDrawElements(GL_POINTS, -1, GL_UNSIGNED_BYTE, vertices); in draw_elements_invalid_program()
579 ctx.expectError(GL_INVALID_VALUE); in draw_elements_invalid_program()
580 ctx.endSection(); in draw_elements_invalid_program()
582ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_invalid_program()
583 ctx.glGenFramebuffers(1, &fbo); in draw_elements_invalid_program()
584 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_invalid_program()
585 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_invalid_program()
586 ctx.glDrawElements(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements_invalid_program()
587 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_invalid_program()
588 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_invalid_program()
589 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_invalid_program()
590 ctx.endSection(); in draw_elements_invalid_program()
593 void draw_elements_incomplete_primitive (NegativeTestContext& ctx) in draw_elements_incomplete_primitive() argument
595 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_elements_incomplete_primitive()
602 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_elements_incomplete_primitive()
604 ctx.glUseProgram(program.getProgram()); in draw_elements_incomplete_primitive()
605 ctx.expectError(GL_NO_ERROR); in draw_elements_incomplete_primitive()
607 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_incomplete_primitive()
608 ctx.glDrawElements(-1, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements_incomplete_primitive()
609 ctx.expectError(GL_INVALID_ENUM); in draw_elements_incomplete_primitive()
610 ctx.endSection(); in draw_elements_incomplete_primitive()
612 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_incomplete_primitive()
613 ctx.glDrawElements(GL_TRIANGLES, 1, -1, vertices); in draw_elements_incomplete_primitive()
614 ctx.expectError(GL_INVALID_ENUM); in draw_elements_incomplete_primitive()
615 ctx.glDrawElements(GL_TRIANGLES, 1, GL_FLOAT, vertices); in draw_elements_incomplete_primitive()
616 ctx.expectError(GL_INVALID_ENUM); in draw_elements_incomplete_primitive()
617 ctx.endSection(); in draw_elements_incomplete_primitive()
619 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_elements_incomplete_primitive()
620 ctx.glDrawElements(GL_TRIANGLES, -1, GL_UNSIGNED_BYTE, vertices); in draw_elements_incomplete_primitive()
621 ctx.expectError(GL_INVALID_VALUE); in draw_elements_incomplete_primitive()
622 ctx.endSection(); in draw_elements_incomplete_primitive()
624ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_incomplete_primitive()
625 ctx.glGenFramebuffers(1, &fbo); in draw_elements_incomplete_primitive()
626 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_incomplete_primitive()
627 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_incomplete_primitive()
628 ctx.glDrawElements(GL_TRIANGLES, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements_incomplete_primitive()
629 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_incomplete_primitive()
630 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_incomplete_primitive()
631 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_incomplete_primitive()
632 ctx.endSection(); in draw_elements_incomplete_primitive()
634 …if (!ctx.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader")) // GL_EXT_geometry_shade… in draw_elements_incomplete_primitive()
636ctx.beginSection("GL_INVALID_OPERATION is generated if transform feedback is active and not paused… in draw_elements_incomplete_primitive()
639 ctx.glGenBuffers(1, &buf); in draw_elements_incomplete_primitive()
640 ctx.glGenTransformFeedbacks(1, &tfID); in draw_elements_incomplete_primitive()
642 ctx.glUseProgram(program.getProgram()); in draw_elements_incomplete_primitive()
643 ctx.glTransformFeedbackVaryings(program.getProgram(), 1, &tfVarying, GL_INTERLEAVED_ATTRIBS); in draw_elements_incomplete_primitive()
644 ctx.glLinkProgram(program.getProgram()); in draw_elements_incomplete_primitive()
645 ctx.glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfID); in draw_elements_incomplete_primitive()
646 ctx.glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, buf); in draw_elements_incomplete_primitive()
647 ctx.glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, 32, DE_NULL, GL_DYNAMIC_DRAW); in draw_elements_incomplete_primitive()
648 ctx.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf); in draw_elements_incomplete_primitive()
649 ctx.glBeginTransformFeedback(GL_TRIANGLES); in draw_elements_incomplete_primitive()
650 ctx.expectError(GL_NO_ERROR); in draw_elements_incomplete_primitive()
652 ctx.glDrawElements(GL_TRIANGLES, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements_incomplete_primitive()
653 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_incomplete_primitive()
655 ctx.glPauseTransformFeedback(); in draw_elements_incomplete_primitive()
656 ctx.glDrawElements(GL_TRIANGLES, 1, GL_UNSIGNED_BYTE, vertices); in draw_elements_incomplete_primitive()
657 ctx.expectError(GL_NO_ERROR); in draw_elements_incomplete_primitive()
659 ctx.glEndTransformFeedback(); in draw_elements_incomplete_primitive()
660 ctx.glDeleteBuffers(1, &buf); in draw_elements_incomplete_primitive()
661 ctx.glDeleteTransformFeedbacks(1, &tfID); in draw_elements_incomplete_primitive()
662 ctx.expectError(GL_NO_ERROR); in draw_elements_incomplete_primitive()
663 ctx.endSection(); in draw_elements_incomplete_primitive()
666 ctx.glUseProgram(0); in draw_elements_incomplete_primitive()
669 void draw_elements_base_vertex (NegativeTestContext& ctx) in draw_elements_base_vertex() argument
671 …TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiT… in draw_elements_base_vertex()
676 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_base_vertex()
677 ctx.glDrawElementsBaseVertex(-1, 1, GL_UNSIGNED_INT, vertices, 1); in draw_elements_base_vertex()
678 ctx.expectError(GL_INVALID_ENUM); in draw_elements_base_vertex()
679 ctx.endSection(); in draw_elements_base_vertex()
681 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_base_vertex()
682 ctx.glDrawElementsBaseVertex(GL_POINTS, 1, -1, vertices, 1); in draw_elements_base_vertex()
683 ctx.expectError(GL_INVALID_ENUM); in draw_elements_base_vertex()
684 ctx.glDrawElementsBaseVertex(GL_POINTS, 1, GL_FLOAT, vertices, 1); in draw_elements_base_vertex()
685 ctx.expectError(GL_INVALID_ENUM); in draw_elements_base_vertex()
686 ctx.endSection(); in draw_elements_base_vertex()
688 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_elements_base_vertex()
689 ctx.glDrawElementsBaseVertex(GL_POINTS, -1, GL_UNSIGNED_INT, vertices, 1); in draw_elements_base_vertex()
690 ctx.expectError(GL_INVALID_VALUE); in draw_elements_base_vertex()
691 ctx.endSection(); in draw_elements_base_vertex()
693ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_base_vertex()
694 ctx.glGenFramebuffers(1, &fbo); in draw_elements_base_vertex()
695 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_base_vertex()
696 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_base_vertex()
697 ctx.glDrawElementsBaseVertex(GL_POINTS, 1, GL_UNSIGNED_INT, vertices, 1); in draw_elements_base_vertex()
698 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_base_vertex()
699 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_base_vertex()
700 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_base_vertex()
701 ctx.endSection(); in draw_elements_base_vertex()
704 void draw_elements_base_vertex_invalid_map (NegativeTestContext& ctx) in draw_elements_base_vertex_invalid_map() argument
709ctx.beginSection("GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to a… in draw_elements_base_vertex_invalid_map()
710 ctx.glGenBuffers(1, &buf); in draw_elements_base_vertex_invalid_map()
711 ctx.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buf); in draw_elements_base_vertex_invalid_map()
712 ctx.glBufferData(GL_ELEMENT_ARRAY_BUFFER, 10, 0, GL_STATIC_DRAW); in draw_elements_base_vertex_invalid_map()
713 ctx.glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER, 0, 5, GL_MAP_READ_BIT); in draw_elements_base_vertex_invalid_map()
714 ctx.expectError(GL_NO_ERROR); in draw_elements_base_vertex_invalid_map()
715 ctx.glDrawElementsBaseVertex(GL_POINTS, 1, GL_UNSIGNED_INT, vertices, 1); in draw_elements_base_vertex_invalid_map()
716 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_base_vertex_invalid_map()
717 ctx.glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); in draw_elements_base_vertex_invalid_map()
718 ctx.glDeleteBuffers(1, &buf); in draw_elements_base_vertex_invalid_map()
719 ctx.endSection(); in draw_elements_base_vertex_invalid_map()
722 void draw_elements_base_vertex_primitive_mode_mismatch (NegativeTestContext& ctx) in draw_elements_base_vertex_primitive_mode_mismatch() argument
724 …TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiT… in draw_elements_base_vertex_primitive_mode_mismatch()
730 …glu::ShaderProgram program(ctx.getRenderContext(), glu::ProgramSources() << glu::ProgramSeparabl… in draw_elements_base_vertex_primitive_mode_mismatch()
732ctx.beginSection("GL_INVALID_OPERATION is generated if a geometry shader is active and mode is inc… in draw_elements_base_vertex_primitive_mode_mismatch()
733 ctx.glUseProgram(program.getProgram()); in draw_elements_base_vertex_primitive_mode_mismatch()
734 ctx.glDrawElementsBaseVertex(GL_TRIANGLES, 1, GL_UNSIGNED_INT, vertices, 1); in draw_elements_base_vertex_primitive_mode_mismatch()
735 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_base_vertex_primitive_mode_mismatch()
736 ctx.endSection(); in draw_elements_base_vertex_primitive_mode_mismatch()
738 ctx.glUseProgram(0); in draw_elements_base_vertex_primitive_mode_mismatch()
741 void draw_arrays_instanced (NegativeTestContext& ctx) in draw_arrays_instanced() argument
743 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_arrays_instanced()
747 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_arrays_instanced()
749 ctx.glUseProgram(program.getProgram()); in draw_arrays_instanced()
750 ctx.expectError(GL_NO_ERROR); in draw_arrays_instanced()
751 ctx.glVertexAttribDivisor(0, 1); in draw_arrays_instanced()
752 ctx.expectError(GL_NO_ERROR); in draw_arrays_instanced()
754 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_arrays_instanced()
755 ctx.glDrawArraysInstanced(-1, 0, 1, 1); in draw_arrays_instanced()
756 ctx.expectError(GL_INVALID_ENUM); in draw_arrays_instanced()
757 ctx.endSection(); in draw_arrays_instanced()
759 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_arrays_instanced()
760 ctx.glDrawArraysInstanced(GL_POINTS, 0, -1, 1); in draw_arrays_instanced()
761 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_instanced()
762 ctx.glDrawArraysInstanced(GL_POINTS, 0, 1, -1); in draw_arrays_instanced()
763 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_instanced()
764 ctx.endSection(); in draw_arrays_instanced()
766ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_arrays_instanced()
767 ctx.glGenFramebuffers(1, &fbo); in draw_arrays_instanced()
768 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_arrays_instanced()
769 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_arrays_instanced()
770 ctx.glDrawArraysInstanced(GL_POINTS, 0, 1, 1); in draw_arrays_instanced()
771 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_arrays_instanced()
772 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_arrays_instanced()
773 ctx.glDeleteFramebuffers(1, &fbo); in draw_arrays_instanced()
774 ctx.endSection(); in draw_arrays_instanced()
776 ctx.glUseProgram(0); in draw_arrays_instanced()
779 void draw_arrays_instanced_invalid_program (NegativeTestContext& ctx) in draw_arrays_instanced_invalid_program() argument
781 ctx.glUseProgram(0); in draw_arrays_instanced_invalid_program()
783 ctx.glVertexAttribDivisor(0, 1); in draw_arrays_instanced_invalid_program()
784 ctx.expectError(GL_NO_ERROR); in draw_arrays_instanced_invalid_program()
786 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_arrays_instanced_invalid_program()
787 ctx.glDrawArraysInstanced(-1, 0, 1, 1); in draw_arrays_instanced_invalid_program()
788 ctx.expectError(GL_INVALID_ENUM); in draw_arrays_instanced_invalid_program()
789 ctx.endSection(); in draw_arrays_instanced_invalid_program()
791 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_arrays_instanced_invalid_program()
792 ctx.glDrawArraysInstanced(GL_POINTS, 0, -1, 1); in draw_arrays_instanced_invalid_program()
793 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_instanced_invalid_program()
794 ctx.glDrawArraysInstanced(GL_POINTS, 0, 1, -1); in draw_arrays_instanced_invalid_program()
795 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_instanced_invalid_program()
796 ctx.endSection(); in draw_arrays_instanced_invalid_program()
798ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_arrays_instanced_invalid_program()
799 ctx.glGenFramebuffers(1, &fbo); in draw_arrays_instanced_invalid_program()
800 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_arrays_instanced_invalid_program()
801 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_arrays_instanced_invalid_program()
802 ctx.glDrawArraysInstanced(GL_POINTS, 0, 1, 1); in draw_arrays_instanced_invalid_program()
803 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_arrays_instanced_invalid_program()
804 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_arrays_instanced_invalid_program()
805 ctx.glDeleteFramebuffers(1, &fbo); in draw_arrays_instanced_invalid_program()
806 ctx.endSection(); in draw_arrays_instanced_invalid_program()
809 void draw_arrays_instanced_incomplete_primitive (NegativeTestContext& ctx) in draw_arrays_instanced_incomplete_primitive() argument
811 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_arrays_instanced_incomplete_primitive()
815 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_arrays_instanced_incomplete_primitive()
817 ctx.glVertexAttribDivisor(0, 1); in draw_arrays_instanced_incomplete_primitive()
818 ctx.expectError(GL_NO_ERROR); in draw_arrays_instanced_incomplete_primitive()
820 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_arrays_instanced_incomplete_primitive()
821 ctx.glDrawArraysInstanced(-1, 0, 1, 1); in draw_arrays_instanced_incomplete_primitive()
822 ctx.expectError(GL_INVALID_ENUM); in draw_arrays_instanced_incomplete_primitive()
823 ctx.endSection(); in draw_arrays_instanced_incomplete_primitive()
825 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_arrays_instanced_incomplete_primitive()
826 ctx.glDrawArraysInstanced(GL_TRIANGLES, 0, -1, 1); in draw_arrays_instanced_incomplete_primitive()
827 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_instanced_incomplete_primitive()
828 ctx.glDrawArraysInstanced(GL_TRIANGLES, 0, 1, -1); in draw_arrays_instanced_incomplete_primitive()
829 ctx.expectError(GL_INVALID_VALUE); in draw_arrays_instanced_incomplete_primitive()
830 ctx.endSection(); in draw_arrays_instanced_incomplete_primitive()
832ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_arrays_instanced_incomplete_primitive()
833 ctx.glGenFramebuffers(1, &fbo); in draw_arrays_instanced_incomplete_primitive()
834 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_arrays_instanced_incomplete_primitive()
835 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_arrays_instanced_incomplete_primitive()
836 ctx.glDrawArraysInstanced(GL_TRIANGLES, 0, 1, 1); in draw_arrays_instanced_incomplete_primitive()
837 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_arrays_instanced_incomplete_primitive()
838 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_arrays_instanced_incomplete_primitive()
839 ctx.glDeleteFramebuffers(1, &fbo); in draw_arrays_instanced_incomplete_primitive()
840 ctx.endSection(); in draw_arrays_instanced_incomplete_primitive()
842 ctx.glUseProgram(0); in draw_arrays_instanced_incomplete_primitive()
845 void draw_elements_instanced (NegativeTestContext& ctx) in draw_elements_instanced() argument
847 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_elements_instanced()
854 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_elements_instanced()
856 ctx.glUseProgram(program.getProgram()); in draw_elements_instanced()
857 ctx.glVertexAttribDivisor(0, 1); in draw_elements_instanced()
858 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced()
860 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_instanced()
861 ctx.glDrawElementsInstanced(-1, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced()
862 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced()
863 ctx.endSection(); in draw_elements_instanced()
865 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_instanced()
866 ctx.glDrawElementsInstanced(GL_POINTS, 1, -1, vertices, 1); in draw_elements_instanced()
867 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced()
868 ctx.glDrawElementsInstanced(GL_POINTS, 1, GL_FLOAT, vertices, 1); in draw_elements_instanced()
869 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced()
870 ctx.endSection(); in draw_elements_instanced()
872 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_elements_instanced()
873 ctx.glDrawElementsInstanced(GL_POINTS, -1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced()
874 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced()
875 ctx.glDrawElementsInstanced(GL_POINTS, 11, GL_UNSIGNED_BYTE, vertices, -1); in draw_elements_instanced()
876 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced()
877 ctx.endSection(); in draw_elements_instanced()
879ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_instanced()
880 ctx.glGenFramebuffers(1, &fbo); in draw_elements_instanced()
881 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_instanced()
882 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_instanced()
883 ctx.glDrawElementsInstanced(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced()
884 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_instanced()
885 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_instanced()
886 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_instanced()
887 ctx.endSection(); in draw_elements_instanced()
889 …if (!ctx.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader")) // GL_EXT_geometry_shade… in draw_elements_instanced()
891ctx.beginSection("GL_INVALID_OPERATION is generated if transform feedback is active and not paused… in draw_elements_instanced()
894 ctx.glGenBuffers(1, &buf); in draw_elements_instanced()
895 ctx.glGenTransformFeedbacks(1, &tfID); in draw_elements_instanced()
897 ctx.glUseProgram(program.getProgram()); in draw_elements_instanced()
898 ctx.glTransformFeedbackVaryings(program.getProgram(), 1, &tfVarying, GL_INTERLEAVED_ATTRIBS); in draw_elements_instanced()
899 ctx.glLinkProgram(program.getProgram()); in draw_elements_instanced()
900 ctx.glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfID); in draw_elements_instanced()
901 ctx.glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, buf); in draw_elements_instanced()
902 ctx.glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, 32, DE_NULL, GL_DYNAMIC_DRAW); in draw_elements_instanced()
903 ctx.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf); in draw_elements_instanced()
904 ctx.glBeginTransformFeedback(GL_POINTS); in draw_elements_instanced()
905 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced()
907 ctx.glDrawElementsInstanced(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced()
908 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_instanced()
910 ctx.glPauseTransformFeedback(); in draw_elements_instanced()
911 ctx.glDrawElementsInstanced(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced()
912 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced()
914 ctx.glEndTransformFeedback(); in draw_elements_instanced()
915 ctx.glDeleteBuffers(1, &buf); in draw_elements_instanced()
916 ctx.glDeleteTransformFeedbacks(1, &tfID); in draw_elements_instanced()
917 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced()
918 ctx.endSection(); in draw_elements_instanced()
921 ctx.glUseProgram(0); in draw_elements_instanced()
924 void draw_elements_instanced_invalid_program (NegativeTestContext& ctx) in draw_elements_instanced_invalid_program() argument
926 ctx.glUseProgram(0); in draw_elements_instanced_invalid_program()
929 ctx.glVertexAttribDivisor(0, 1); in draw_elements_instanced_invalid_program()
930 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_invalid_program()
932 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_instanced_invalid_program()
933 ctx.glDrawElementsInstanced(-1, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_invalid_program()
934 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_invalid_program()
935 ctx.endSection(); in draw_elements_instanced_invalid_program()
937 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_instanced_invalid_program()
938 ctx.glDrawElementsInstanced(GL_POINTS, 1, -1, vertices, 1); in draw_elements_instanced_invalid_program()
939 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_invalid_program()
940 ctx.glDrawElementsInstanced(GL_POINTS, 1, GL_FLOAT, vertices, 1); in draw_elements_instanced_invalid_program()
941 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_invalid_program()
942 ctx.endSection(); in draw_elements_instanced_invalid_program()
944 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_elements_instanced_invalid_program()
945 ctx.glDrawElementsInstanced(GL_POINTS, -1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_invalid_program()
946 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced_invalid_program()
947 ctx.glDrawElementsInstanced(GL_POINTS, 11, GL_UNSIGNED_BYTE, vertices, -1); in draw_elements_instanced_invalid_program()
948 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced_invalid_program()
949 ctx.endSection(); in draw_elements_instanced_invalid_program()
951ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_instanced_invalid_program()
952 ctx.glGenFramebuffers(1, &fbo); in draw_elements_instanced_invalid_program()
953 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_instanced_invalid_program()
954 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_instanced_invalid_program()
955 ctx.glDrawElementsInstanced(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_invalid_program()
956 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_instanced_invalid_program()
957 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_instanced_invalid_program()
958 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_instanced_invalid_program()
959 ctx.endSection(); in draw_elements_instanced_invalid_program()
962 void draw_elements_instanced_incomplete_primitive (NegativeTestContext& ctx) in draw_elements_instanced_incomplete_primitive() argument
964 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_elements_instanced_incomplete_primitive()
971 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_elements_instanced_incomplete_primitive()
973 ctx.glUseProgram(program.getProgram()); in draw_elements_instanced_incomplete_primitive()
974 ctx.glVertexAttribDivisor(0, 1); in draw_elements_instanced_incomplete_primitive()
975 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_incomplete_primitive()
977 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_instanced_incomplete_primitive()
978 ctx.glDrawElementsInstanced(-1, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_incomplete_primitive()
979 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_incomplete_primitive()
980 ctx.endSection(); in draw_elements_instanced_incomplete_primitive()
982 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_instanced_incomplete_primitive()
983 ctx.glDrawElementsInstanced(GL_TRIANGLES, 1, -1, vertices, 1); in draw_elements_instanced_incomplete_primitive()
984 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_incomplete_primitive()
985 ctx.glDrawElementsInstanced(GL_TRIANGLES, 1, GL_FLOAT, vertices, 1); in draw_elements_instanced_incomplete_primitive()
986 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_incomplete_primitive()
987 ctx.endSection(); in draw_elements_instanced_incomplete_primitive()
989 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_elements_instanced_incomplete_primitive()
990 ctx.glDrawElementsInstanced(GL_TRIANGLES, -1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_incomplete_primitive()
991 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced_incomplete_primitive()
992 ctx.glDrawElementsInstanced(GL_TRIANGLES, 11, GL_UNSIGNED_BYTE, vertices, -1); in draw_elements_instanced_incomplete_primitive()
993 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced_incomplete_primitive()
994 ctx.endSection(); in draw_elements_instanced_incomplete_primitive()
996ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_instanced_incomplete_primitive()
997 ctx.glGenFramebuffers(1, &fbo); in draw_elements_instanced_incomplete_primitive()
998 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_instanced_incomplete_primitive()
999 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_instanced_incomplete_primitive()
1000 ctx.glDrawElementsInstanced(GL_TRIANGLES, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_incomplete_primitive()
1001 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_instanced_incomplete_primitive()
1002 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_instanced_incomplete_primitive()
1003 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_instanced_incomplete_primitive()
1004 ctx.endSection(); in draw_elements_instanced_incomplete_primitive()
1006 …if (!ctx.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader")) // GL_EXT_geometry_shade… in draw_elements_instanced_incomplete_primitive()
1008ctx.beginSection("GL_INVALID_OPERATION is generated if transform feedback is active and not paused… in draw_elements_instanced_incomplete_primitive()
1011 ctx.glGenBuffers(1, &buf); in draw_elements_instanced_incomplete_primitive()
1012 ctx.glGenTransformFeedbacks(1, &tfID); in draw_elements_instanced_incomplete_primitive()
1014 ctx.glUseProgram(program.getProgram()); in draw_elements_instanced_incomplete_primitive()
1015 ctx.glTransformFeedbackVaryings(program.getProgram(), 1, &tfVarying, GL_INTERLEAVED_ATTRIBS); in draw_elements_instanced_incomplete_primitive()
1016 ctx.glLinkProgram(program.getProgram()); in draw_elements_instanced_incomplete_primitive()
1017 ctx.glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfID); in draw_elements_instanced_incomplete_primitive()
1018 ctx.glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, buf); in draw_elements_instanced_incomplete_primitive()
1019 ctx.glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, 32, DE_NULL, GL_DYNAMIC_DRAW); in draw_elements_instanced_incomplete_primitive()
1020 ctx.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf); in draw_elements_instanced_incomplete_primitive()
1021 ctx.glBeginTransformFeedback(GL_TRIANGLES); in draw_elements_instanced_incomplete_primitive()
1022 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_incomplete_primitive()
1024 ctx.glDrawElementsInstanced(GL_TRIANGLES, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_incomplete_primitive()
1025 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_instanced_incomplete_primitive()
1027 ctx.glPauseTransformFeedback(); in draw_elements_instanced_incomplete_primitive()
1028 ctx.glDrawElementsInstanced (GL_TRIANGLES, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_elements_instanced_incomplete_primitive()
1029 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_incomplete_primitive()
1031 ctx.glEndTransformFeedback(); in draw_elements_instanced_incomplete_primitive()
1032 ctx.glDeleteBuffers(1, &buf); in draw_elements_instanced_incomplete_primitive()
1033 ctx.glDeleteTransformFeedbacks(1, &tfID); in draw_elements_instanced_incomplete_primitive()
1034 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_incomplete_primitive()
1035 ctx.endSection(); in draw_elements_instanced_incomplete_primitive()
1038 ctx.glUseProgram(0); in draw_elements_instanced_incomplete_primitive()
1041 void draw_elements_instanced_base_vertex (NegativeTestContext& ctx) in draw_elements_instanced_base_vertex() argument
1043 …TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiT… in draw_elements_instanced_base_vertex()
1045 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_elements_instanced_base_vertex()
1050 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplat… in draw_elements_instanced_base_vertex()
1052 ctx.glUseProgram(program.getProgram()); in draw_elements_instanced_base_vertex()
1053 ctx.glVertexAttribDivisor(0, 1); in draw_elements_instanced_base_vertex()
1054 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_base_vertex()
1056 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_elements_instanced_base_vertex()
1057 ctx.glDrawElementsInstancedBaseVertex(-1, 1, GL_UNSIGNED_BYTE, vertices, 1, 1); in draw_elements_instanced_base_vertex()
1058 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_base_vertex()
1059 ctx.endSection(); in draw_elements_instanced_base_vertex()
1061 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_elements_instanced_base_vertex()
1062 ctx.glDrawElementsInstancedBaseVertex(GL_POINTS, 1, -1, vertices, 1, 1); in draw_elements_instanced_base_vertex()
1063 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_base_vertex()
1064 ctx.glDrawElementsInstancedBaseVertex(GL_POINTS, 1, GL_FLOAT, vertices, 1, 1); in draw_elements_instanced_base_vertex()
1065 ctx.expectError(GL_INVALID_ENUM); in draw_elements_instanced_base_vertex()
1066 ctx.endSection(); in draw_elements_instanced_base_vertex()
1068 ctx.beginSection("GL_INVALID_VALUE is generated if count or primcount are negative."); in draw_elements_instanced_base_vertex()
1069 ctx.glDrawElementsInstancedBaseVertex(GL_POINTS, -1, GL_UNSIGNED_BYTE, vertices, 1, 1); in draw_elements_instanced_base_vertex()
1070 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced_base_vertex()
1071 ctx.glDrawElementsInstancedBaseVertex(GL_POINTS, 11, GL_UNSIGNED_BYTE, vertices, -1, 1); in draw_elements_instanced_base_vertex()
1072 ctx.expectError(GL_INVALID_VALUE); in draw_elements_instanced_base_vertex()
1073 ctx.endSection(); in draw_elements_instanced_base_vertex()
1075ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_elements_instanced_base_vertex()
1076 ctx.glGenFramebuffers(1, &fbo); in draw_elements_instanced_base_vertex()
1077 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_elements_instanced_base_vertex()
1078 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_elements_instanced_base_vertex()
1079 ctx.glDrawElementsInstancedBaseVertex(GL_POINTS, 1, GL_UNSIGNED_BYTE, vertices, 1, 1); in draw_elements_instanced_base_vertex()
1080 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_elements_instanced_base_vertex()
1081 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_elements_instanced_base_vertex()
1082 ctx.glDeleteFramebuffers(1, &fbo); in draw_elements_instanced_base_vertex()
1083 ctx.endSection(); in draw_elements_instanced_base_vertex()
1085 ctx.glUseProgram(0); in draw_elements_instanced_base_vertex()
1088 void draw_elements_instanced_base_vertex_invalid_map (NegativeTestContext& ctx) in draw_elements_instanced_base_vertex_invalid_map() argument
1093ctx.beginSection("GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to a… in draw_elements_instanced_base_vertex_invalid_map()
1094 ctx.glGenBuffers(1, &buf); in draw_elements_instanced_base_vertex_invalid_map()
1095 ctx.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buf); in draw_elements_instanced_base_vertex_invalid_map()
1096 ctx.glBufferData(GL_ELEMENT_ARRAY_BUFFER, 10, 0, GL_STATIC_DRAW); in draw_elements_instanced_base_vertex_invalid_map()
1097 ctx.glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER, 0, 5, GL_MAP_READ_BIT); in draw_elements_instanced_base_vertex_invalid_map()
1098 ctx.expectError(GL_NO_ERROR); in draw_elements_instanced_base_vertex_invalid_map()
1099 ctx.glDrawElementsInstancedBaseVertex(GL_POINTS, 1, GL_UNSIGNED_INT, vertices, 1, 1); in draw_elements_instanced_base_vertex_invalid_map()
1100 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_instanced_base_vertex_invalid_map()
1101 ctx.glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); in draw_elements_instanced_base_vertex_invalid_map()
1102 ctx.glDeleteBuffers(1, &buf); in draw_elements_instanced_base_vertex_invalid_map()
1103 ctx.endSection(); in draw_elements_instanced_base_vertex_invalid_map()
1107 void draw_elements_instanced_base_vertex_primitive_mode_mismatch (NegativeTestContext& ctx) in draw_elements_instanced_base_vertex_primitive_mode_mismatch() argument
1109 …TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiT… in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1114 …glu::ShaderProgram geometryProgram(ctx.getRenderContext(), glu::ProgramSources() << glu::Program… in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1116ctx.beginSection("GL_INVALID_OPERATION is generated if a geometry shader is active and mode is inc… in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1117 ctx.glUseProgram(geometryProgram.getProgram()); in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1118 ctx.glDrawElementsInstancedBaseVertex(GL_TRIANGLES, 1, GL_UNSIGNED_INT, vertices, 1, 1); in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1119 ctx.expectError(GL_INVALID_OPERATION); in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1120 ctx.endSection(); in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1122 ctx.glUseProgram(0); in draw_elements_instanced_base_vertex_primitive_mode_mismatch()
1125 void draw_range_elements (NegativeTestContext& ctx) in draw_range_elements() argument
1127 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_range_elements()
1134 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_range_elements()
1136 ctx.glUseProgram(program.getProgram()); in draw_range_elements()
1137 ctx.expectError(GL_NO_ERROR); in draw_range_elements()
1139 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_range_elements()
1140 ctx.glDrawRangeElements(-1, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements()
1141 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements()
1142 ctx.endSection(); in draw_range_elements()
1144 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_range_elements()
1145 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, -1, vertices); in draw_range_elements()
1146 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements()
1147 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, GL_FLOAT, vertices); in draw_range_elements()
1148 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements()
1149 ctx.endSection(); in draw_range_elements()
1151 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_range_elements()
1152 ctx.glDrawRangeElements(GL_POINTS, 0, 1, -1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements()
1153 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements()
1154 ctx.endSection(); in draw_range_elements()
1156 ctx.beginSection("GL_INVALID_VALUE is generated if end < start."); in draw_range_elements()
1157 ctx.glDrawRangeElements(GL_POINTS, 1, 0, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements()
1158 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements()
1159 ctx.endSection(); in draw_range_elements()
1161ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_range_elements()
1162 ctx.glGenFramebuffers(1, &fbo); in draw_range_elements()
1163 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_range_elements()
1164 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_range_elements()
1165 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements()
1166 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_range_elements()
1167 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_range_elements()
1168 ctx.glDeleteFramebuffers(1, &fbo); in draw_range_elements()
1169 ctx.endSection(); in draw_range_elements()
1171 …if (!ctx.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader")) // GL_EXT_geometry_shade… in draw_range_elements()
1173ctx.beginSection("GL_INVALID_OPERATION is generated if transform feedback is active and not paused… in draw_range_elements()
1176 ctx.glGenBuffers(1, &buf); in draw_range_elements()
1177 ctx.glGenTransformFeedbacks(1, &tfID); in draw_range_elements()
1179 ctx.glUseProgram(program.getProgram()); in draw_range_elements()
1180 ctx.glTransformFeedbackVaryings(program.getProgram(), 1, &tfVarying, GL_INTERLEAVED_ATTRIBS); in draw_range_elements()
1181 ctx.glLinkProgram(program.getProgram()); in draw_range_elements()
1182 ctx.glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfID); in draw_range_elements()
1183 ctx.glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, buf); in draw_range_elements()
1184 ctx.glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, 32, DE_NULL, GL_DYNAMIC_DRAW); in draw_range_elements()
1185 ctx.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf); in draw_range_elements()
1186 ctx.glBeginTransformFeedback(GL_POINTS); in draw_range_elements()
1187 ctx.expectError(GL_NO_ERROR); in draw_range_elements()
1189 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements()
1190 ctx.expectError(GL_INVALID_OPERATION); in draw_range_elements()
1192 ctx.glPauseTransformFeedback(); in draw_range_elements()
1193 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements()
1194 ctx.expectError(GL_NO_ERROR); in draw_range_elements()
1196 ctx.glEndTransformFeedback(); in draw_range_elements()
1197 ctx.glDeleteBuffers(1, &buf); in draw_range_elements()
1198 ctx.glDeleteTransformFeedbacks(1, &tfID); in draw_range_elements()
1199 ctx.expectError(GL_NO_ERROR); in draw_range_elements()
1200 ctx.endSection(); in draw_range_elements()
1203 ctx.glUseProgram(0); in draw_range_elements()
1206 void draw_range_elements_invalid_program (NegativeTestContext& ctx) in draw_range_elements_invalid_program() argument
1208 ctx.glUseProgram(0); in draw_range_elements_invalid_program()
1212 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_range_elements_invalid_program()
1213 ctx.glDrawRangeElements(-1, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_invalid_program()
1214 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_invalid_program()
1215 ctx.endSection(); in draw_range_elements_invalid_program()
1217 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_range_elements_invalid_program()
1218 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, -1, vertices); in draw_range_elements_invalid_program()
1219 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_invalid_program()
1220 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, GL_FLOAT, vertices); in draw_range_elements_invalid_program()
1221 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_invalid_program()
1222 ctx.endSection(); in draw_range_elements_invalid_program()
1224 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_range_elements_invalid_program()
1225 ctx.glDrawRangeElements(GL_POINTS, 0, 1, -1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_invalid_program()
1226 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements_invalid_program()
1227 ctx.endSection(); in draw_range_elements_invalid_program()
1229 ctx.beginSection("GL_INVALID_VALUE is generated if end < start."); in draw_range_elements_invalid_program()
1230 ctx.glDrawRangeElements(GL_POINTS, 1, 0, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_invalid_program()
1231 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements_invalid_program()
1232 ctx.endSection(); in draw_range_elements_invalid_program()
1234ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_range_elements_invalid_program()
1235 ctx.glGenFramebuffers(1, &fbo); in draw_range_elements_invalid_program()
1236 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_range_elements_invalid_program()
1237 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_range_elements_invalid_program()
1238 ctx.glDrawRangeElements(GL_POINTS, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_invalid_program()
1239 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_range_elements_invalid_program()
1240 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_range_elements_invalid_program()
1241 ctx.glDeleteFramebuffers(1, &fbo); in draw_range_elements_invalid_program()
1242 ctx.endSection(); in draw_range_elements_invalid_program()
1245 void draw_range_elements_incomplete_primitive (NegativeTestContext& ctx) in draw_range_elements_incomplete_primitive() argument
1247 …const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3,… in draw_range_elements_incomplete_primitive()
1254 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_range_elements_incomplete_primitive()
1256 ctx.glUseProgram(program.getProgram()); in draw_range_elements_incomplete_primitive()
1257 ctx.expectError(GL_NO_ERROR); in draw_range_elements_incomplete_primitive()
1259 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_range_elements_incomplete_primitive()
1260 ctx.glDrawRangeElements(-1, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_incomplete_primitive()
1261 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_incomplete_primitive()
1262 ctx.endSection(); in draw_range_elements_incomplete_primitive()
1264 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_range_elements_incomplete_primitive()
1265 ctx.glDrawRangeElements(GL_TRIANGLES, 0, 1, 1, -1, vertices); in draw_range_elements_incomplete_primitive()
1266 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_incomplete_primitive()
1267 ctx.glDrawRangeElements(GL_TRIANGLES, 0, 1, 1, GL_FLOAT, vertices); in draw_range_elements_incomplete_primitive()
1268 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_incomplete_primitive()
1269 ctx.endSection(); in draw_range_elements_incomplete_primitive()
1271 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_range_elements_incomplete_primitive()
1272 ctx.glDrawRangeElements(GL_TRIANGLES, 0, 1, -1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_incomplete_primitive()
1273 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements_incomplete_primitive()
1274 ctx.endSection(); in draw_range_elements_incomplete_primitive()
1276 ctx.beginSection("GL_INVALID_VALUE is generated if end < start."); in draw_range_elements_incomplete_primitive()
1277 ctx.glDrawRangeElements(GL_TRIANGLES, 1, 0, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_incomplete_primitive()
1278 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements_incomplete_primitive()
1279 ctx.endSection(); in draw_range_elements_incomplete_primitive()
1281ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_range_elements_incomplete_primitive()
1282 ctx.glGenFramebuffers(1, &fbo); in draw_range_elements_incomplete_primitive()
1283 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_range_elements_incomplete_primitive()
1284 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_range_elements_incomplete_primitive()
1285 ctx.glDrawRangeElements(GL_TRIANGLES, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_incomplete_primitive()
1286 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_range_elements_incomplete_primitive()
1287 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_range_elements_incomplete_primitive()
1288 ctx.glDeleteFramebuffers(1, &fbo); in draw_range_elements_incomplete_primitive()
1289 ctx.endSection(); in draw_range_elements_incomplete_primitive()
1291 …if (!ctx.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader")) // GL_EXT_geometry_shade… in draw_range_elements_incomplete_primitive()
1293ctx.beginSection("GL_INVALID_OPERATION is generated if transform feedback is active and not paused… in draw_range_elements_incomplete_primitive()
1296 ctx.glGenBuffers(1, &buf); in draw_range_elements_incomplete_primitive()
1297 ctx.glGenTransformFeedbacks(1, &tfID); in draw_range_elements_incomplete_primitive()
1299 ctx.glUseProgram(program.getProgram()); in draw_range_elements_incomplete_primitive()
1300 ctx.glTransformFeedbackVaryings(program.getProgram(), 1, &tfVarying, GL_INTERLEAVED_ATTRIBS); in draw_range_elements_incomplete_primitive()
1301 ctx.glLinkProgram(program.getProgram()); in draw_range_elements_incomplete_primitive()
1302 ctx.glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfID); in draw_range_elements_incomplete_primitive()
1303 ctx.glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, buf); in draw_range_elements_incomplete_primitive()
1304 ctx.glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, 32, DE_NULL, GL_DYNAMIC_DRAW); in draw_range_elements_incomplete_primitive()
1305 ctx.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf); in draw_range_elements_incomplete_primitive()
1306 ctx.glBeginTransformFeedback(GL_TRIANGLES); in draw_range_elements_incomplete_primitive()
1307 ctx.expectError(GL_NO_ERROR); in draw_range_elements_incomplete_primitive()
1309 ctx.glDrawRangeElements(GL_TRIANGLES, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_incomplete_primitive()
1310 ctx.expectError(GL_INVALID_OPERATION); in draw_range_elements_incomplete_primitive()
1312 ctx.glPauseTransformFeedback(); in draw_range_elements_incomplete_primitive()
1313 ctx.glDrawRangeElements(GL_TRIANGLES, 0, 1, 1, GL_UNSIGNED_BYTE, vertices); in draw_range_elements_incomplete_primitive()
1314 ctx.expectError(GL_NO_ERROR); in draw_range_elements_incomplete_primitive()
1316 ctx.glEndTransformFeedback(); in draw_range_elements_incomplete_primitive()
1317 ctx.glDeleteBuffers(1, &buf); in draw_range_elements_incomplete_primitive()
1318 ctx.glDeleteTransformFeedbacks(1, &tfID); in draw_range_elements_incomplete_primitive()
1319 ctx.expectError(GL_NO_ERROR); in draw_range_elements_incomplete_primitive()
1320 ctx.endSection(); in draw_range_elements_incomplete_primitive()
1323 ctx.glUseProgram(0); in draw_range_elements_incomplete_primitive()
1326 void draw_range_elements_base_vertex (NegativeTestContext& ctx) in draw_range_elements_base_vertex() argument
1328 …TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiT… in draw_range_elements_base_vertex()
1334 …glu::ShaderProgram program (ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(… in draw_range_elements_base_vertex()
1336 ctx.glUseProgram(program.getProgram()); in draw_range_elements_base_vertex()
1337 ctx.expectError(GL_NO_ERROR); in draw_range_elements_base_vertex()
1339 ctx.beginSection("GL_INVALID_ENUM is generated if mode is not an accepted value."); in draw_range_elements_base_vertex()
1340 ctx.glDrawRangeElementsBaseVertex(-1, 0, 1, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_range_elements_base_vertex()
1341 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_base_vertex()
1342 ctx.endSection(); in draw_range_elements_base_vertex()
1344 ctx.beginSection("GL_INVALID_ENUM is generated if type is not one of the accepted values."); in draw_range_elements_base_vertex()
1345 ctx.glDrawRangeElementsBaseVertex(GL_POINTS, 0, 1, 1, -1, vertices, 1); in draw_range_elements_base_vertex()
1346 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_base_vertex()
1347 ctx.glDrawRangeElementsBaseVertex(GL_POINTS, 0, 1, 1, GL_FLOAT, vertices, 1); in draw_range_elements_base_vertex()
1348 ctx.expectError(GL_INVALID_ENUM); in draw_range_elements_base_vertex()
1349 ctx.endSection(); in draw_range_elements_base_vertex()
1351 ctx.beginSection("GL_INVALID_VALUE is generated if count is negative."); in draw_range_elements_base_vertex()
1352 ctx.glDrawRangeElementsBaseVertex(GL_POINTS, 0, 1, -1, GL_UNSIGNED_BYTE, vertices, 1); in draw_range_elements_base_vertex()
1353 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements_base_vertex()
1354 ctx.endSection(); in draw_range_elements_base_vertex()
1356 ctx.beginSection("GL_INVALID_VALUE is generated if end < start."); in draw_range_elements_base_vertex()
1357 ctx.glDrawRangeElementsBaseVertex(GL_POINTS, 1, 0, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_range_elements_base_vertex()
1358 ctx.expectError(GL_INVALID_VALUE); in draw_range_elements_base_vertex()
1359 ctx.endSection(); in draw_range_elements_base_vertex()
1361ctx.beginSection("GL_INVALID_FRAMEBUFFER_OPERATION is generated if the currently bound framebuffer… in draw_range_elements_base_vertex()
1362 ctx.glGenFramebuffers(1, &fbo); in draw_range_elements_base_vertex()
1363 ctx.glBindFramebuffer(GL_FRAMEBUFFER, fbo); in draw_range_elements_base_vertex()
1364 ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER); in draw_range_elements_base_vertex()
1365 ctx.glDrawRangeElementsBaseVertex(GL_POINTS, 0, 1, 1, GL_UNSIGNED_BYTE, vertices, 1); in draw_range_elements_base_vertex()
1366 ctx.expectError(GL_INVALID_FRAMEBUFFER_OPERATION); in draw_range_elements_base_vertex()
1367 ctx.glBindFramebuffer(GL_FRAMEBUFFER, 0); in draw_range_elements_base_vertex()
1368 ctx.glDeleteFramebuffers(1, &fbo); in draw_range_elements_base_vertex()
1369 ctx.endSection(); in draw_range_elements_base_vertex()
1371 ctx.glUseProgram(0); in draw_range_elements_base_vertex()
1374 void draw_range_elements_base_vertex_invalid_map (NegativeTestContext& ctx) in draw_range_elements_base_vertex_invalid_map() argument
1379ctx.beginSection("GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to a… in draw_range_elements_base_vertex_invalid_map()
1380 ctx.glGenBuffers(1, &buf); in draw_range_elements_base_vertex_invalid_map()
1381 ctx.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buf); in draw_range_elements_base_vertex_invalid_map()
1382 ctx.glBufferData(GL_ELEMENT_ARRAY_BUFFER, 10, 0, GL_STATIC_DRAW); in draw_range_elements_base_vertex_invalid_map()
1383 ctx.glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER, 0, 5, GL_MAP_READ_BIT); in draw_range_elements_base_vertex_invalid_map()
1384 ctx.expectError(GL_NO_ERROR); in draw_range_elements_base_vertex_invalid_map()
1385 ctx.glDrawRangeElementsBaseVertex(GL_POINTS, 0, 1, 1, GL_UNSIGNED_INT, vertices, 1); in draw_range_elements_base_vertex_invalid_map()
1386 ctx.expectError(GL_INVALID_OPERATION); in draw_range_elements_base_vertex_invalid_map()
1387 ctx.glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); in draw_range_elements_base_vertex_invalid_map()
1388 ctx.glDeleteBuffers(1, &buf); in draw_range_elements_base_vertex_invalid_map()
1389 ctx.endSection(); in draw_range_elements_base_vertex_invalid_map()
1392 void draw_range_elements_base_vertex_primitive_mode_mismatch (NegativeTestContext& ctx) in draw_range_elements_base_vertex_primitive_mode_mismatch() argument
1394 …TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiT… in draw_range_elements_base_vertex_primitive_mode_mismatch()
1399 …glu::ShaderProgram geometryProgram(ctx.getRenderContext(), glu::ProgramSources() << glu::Program… in draw_range_elements_base_vertex_primitive_mode_mismatch()
1401ctx.beginSection("GL_INVALID_OPERATION is generated if a geometry shader is active and mode is inc… in draw_range_elements_base_vertex_primitive_mode_mismatch()
1402 ctx.glUseProgram(geometryProgram.getProgram()); in draw_range_elements_base_vertex_primitive_mode_mismatch()
1403 ctx.glDrawRangeElementsBaseVertex(GL_TRIANGLES, 0, 1, 1, GL_UNSIGNED_INT, vertices, 1); in draw_range_elements_base_vertex_primitive_mode_mismatch()
1404 ctx.expectError(GL_INVALID_OPERATION); in draw_range_elements_base_vertex_primitive_mode_mismatch()
1405 ctx.endSection(); in draw_range_elements_base_vertex_primitive_mode_mismatch()
1407 ctx.glUseProgram(0); in draw_range_elements_base_vertex_primitive_mode_mismatch()