Lines Matching full:spec
155 static void addTestIterations (gls::DrawTest* test, gls::DrawTestSpec& spec, TestIterationType type)
159 spec.primitiveCount = 1;
160 test->addIteration(spec, "draw count = 1");
162 spec.primitiveCount = 5;
163 test->addIteration(spec, "draw count = 5");
165 spec.primitiveCount = 25;
166 test->addIteration(spec, "draw count = 25");
170 spec.instanceCount = 1;
171 test->addIteration(spec, "instance count = 1");
173 spec.instanceCount = 4;
174 test->addIteration(spec, "instance count = 4");
176 spec.instanceCount = 11;
177 test->addIteration(spec, "instance count = 11");
183 static void genBasicSpec (gls::DrawTestSpec& spec, gls::DrawTestSpec::DrawMethod method)
185 spec.apiType = glu::ApiType::es(3,1);
186 spec.primitive = gls::DrawTestSpec::PRIMITIVE_TRIANGLES;
187 spec.primitiveCount = 5;
188 spec.drawMethod = method;
189 spec.indexType = gls::DrawTestSpec::INDEXTYPE_LAST;
190 spec.indexPointerOffset = 0;
191 spec.indexStorage = gls::DrawTestSpec::STORAGE_LAST;
192 spec.first = 0;
193 spec.indexMin = 0;
194 spec.indexMax = 0;
195 spec.instanceCount = 1;
196 spec.indirectOffset = 0;
198 spec.attribs.resize(2);
200 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
201 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
202 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
203 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
204 spec.attribs[0].componentCount = 4;
205 spec.attribs[0].offset = 0;
206 spec.attribs[0].stride = 0;
207 spec.attribs[0].normalize = false;
208 spec.attribs[0].instanceDivisor = 0;
209 spec.attribs[0].useDefaultAttribute = false;
211 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
212 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
213 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
214 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
215 spec.attribs[1].componentCount = 2;
216 spec.attribs[1].offset = 0;
217 spec.attribs[1].stride = 0;
218 spec.attribs[1].normalize = false;
219 spec.attribs[1].instanceDivisor = 0;
220 spec.attribs[1].useDefaultAttribute = false;
265 gls::DrawTestSpec spec;
267 spec.apiType = glu::ApiType::es(3,1);
268 spec.primitive = m_primitive;
269 spec.primitiveCount = 5;
270 spec.drawMethod = m_method;
271 spec.indexType = m_indexType;
272 spec.indexPointerOffset = 0;
273 spec.indexStorage = m_indexStorage;
274 spec.first = 0;
275 spec.indexMin = 0;
276 spec.indexMax = 0;
277 spec.instanceCount = 1;
278 spec.indirectOffset = 0;
280 spec.attribs.resize(1);
282 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
283 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
284 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
285 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
286 spec.attribs[0].componentCount = 2;
287 spec.attribs[0].offset = 0;
288 spec.attribs[0].stride = 0;
289 spec.attribs[0].normalize = false;
290 spec.attribs[0].instanceDivisor = 0;
291 spec.attribs[0].useDefaultAttribute = false;
293 addTestIterations(test, spec, TYPE_DRAW_COUNT);
301 gls::DrawTestSpec spec;
303 spec.apiType = glu::ApiType::es(3,1);
304 spec.primitive = m_primitive;
305 spec.primitiveCount = 5;
306 spec.drawMethod = m_method;
307 spec.indexType = m_indexType;
308 spec.indexPointerOffset = 0;
309 spec.indexStorage = m_indexStorage;
310 spec.first = 0;
311 spec.indexMin = 0;
312 spec.indexMax = 0;
313 spec.instanceCount = 1;
314 spec.indirectOffset = 0;
316 spec.attribs.resize(2);
318 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
319 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
320 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
321 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
322 spec.attribs[0].componentCount = 4;
323 spec.attribs[0].offset = 0;
324 spec.attribs[0].stride = 0;
325 spec.attribs[0].normalize = false;
326 spec.attribs[0].instanceDivisor = 0;
327 spec.attribs[0].useDefaultAttribute = false;
329 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
330 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
331 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
332 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
333 spec.attribs[1].componentCount = 2;
334 spec.attribs[1].offset = 0;
335 spec.attribs[1].stride = 0;
336 spec.attribs[1].normalize = false;
337 spec.attribs[1].instanceDivisor = 0;
338 spec.attribs[1].useDefaultAttribute = false;
340 addTestIterations(test, spec, TYPE_DRAW_COUNT);
348 gls::DrawTestSpec spec;
350 spec.apiType = glu::ApiType::es(3,1);
351 spec.primitive = m_primitive;
352 spec.primitiveCount = 5;
353 spec.drawMethod = m_method;
354 spec.indexType = m_indexType;
355 spec.indexPointerOffset = 0;
356 spec.indexStorage = m_indexStorage;
357 spec.first = 0;
358 spec.indexMin = 0;
359 spec.indexMax = 0;
360 spec.instanceCount = 1;
361 spec.indirectOffset = 0;
363 spec.attribs.resize(3);
365 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
366 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
367 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
368 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
369 spec.attribs[0].componentCount = 4;
370 spec.attribs[0].offset = 0;
371 spec.attribs[0].stride = 0;
372 spec.attribs[0].normalize = false;
373 spec.attribs[0].instanceDivisor = 0;
374 spec.attribs[0].useDefaultAttribute = false;
377 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
378 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
379 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
380 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
381 spec.attribs[1].componentCount = 2;
382 spec.attribs[1].offset = 0;
383 spec.attribs[1].stride = 0;
384 spec.attribs[1].normalize = false;
385 spec.attribs[1].instanceDivisor = 1;
386 spec.attribs[1].useDefaultAttribute = false;
387 spec.attribs[1].additionalPositionAttribute = true;
390 spec.attribs[2].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
391 spec.attribs[2].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
392 spec.attribs[2].storage = gls::DrawTestSpec::STORAGE_BUFFER;
393 spec.attribs[2].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
394 spec.attribs[2].componentCount = 3;
395 spec.attribs[2].offset = 0;
396 spec.attribs[2].stride = 0;
397 spec.attribs[2].normalize = false;
398 spec.attribs[2].instanceDivisor = 1;
399 spec.attribs[2].useDefaultAttribute = false;
401 addTestIterations(test, spec, TYPE_INSTANCE_COUNT);
409 gls::DrawTestSpec spec;
411 spec.apiType = glu::ApiType::es(3,1);
412 spec.primitive = m_primitive;
413 spec.primitiveCount = 5;
414 spec.drawMethod = m_method;
415 spec.indexType = m_indexType;
416 spec.indexPointerOffset = 0;
417 spec.indexStorage = m_indexStorage;
418 spec.first = 0;
419 spec.indexMin = 0;
420 spec.indexMax = 0;
421 spec.instanceCount = 1;
422 spec.indirectOffset = 0;
424 spec.attribs.resize(2);
426 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
427 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
428 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
429 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
430 spec.attribs[0].componentCount = 2;
431 spec.attribs[0].offset = 0;
432 spec.attribs[0].stride = 0;
433 spec.attribs[0].normalize = false;
434 spec.attribs[0].instanceDivisor = 0;
435 spec.attribs[0].useDefaultAttribute = false;
454 spec.attribs[1].inputType = iopairs[ioNdx].input;
455 spec.attribs[1].outputType = iopairs[ioNdx].output;
456 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
457 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
458 spec.attribs[1].componentCount = iopairs[ioNdx].componentCount;
459 spec.attribs[1].offset = 0;
460 spec.attribs[1].stride = 0;
461 spec.attribs[1].normalize = false;
462 spec.attribs[1].instanceDivisor = 0;
463 spec.attribs[1].useDefaultAttribute = true;
465 test->addIteration(spec, desc.c_str());
509 gls::DrawTestSpec spec;
510 genBasicSpec(spec, m_method);
512 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
522 spec.indexType = indexTest.type;
527 spec.indexPointerOffset = indexTest.offsets[iterationNdx];
528 test->addIteration(spec, iterationDesc.c_str());
576 gls::DrawTestSpec spec;
577 genBasicSpec(spec, m_method);
579 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
589 spec.indexType = indexTest.type;
594 spec.baseVertex = indexTest.baseVertex[iterationNdx];
595 test->addIteration(spec, iterationDesc.c_str());
631 gls::DrawTestSpec spec;
632 genBasicSpec(spec, m_method);
640 spec.first = firsts[firstNdx];
642 addTestIterations(test, spec, TYPE_DRAW_COUNT);
2149 gls::DrawTestSpec spec;
2151 spec.apiType = glu::ApiType::es(3,1);
2152 spec.primitive = random.chooseWeighted<gls::DrawTestSpec::Primitive> (DE_ARRAY_BEGIN(primitives), DE_ARRAY_END(primitives), primitiveWeights.weights);
2153 spec.primitiveCount = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(primitiveCounts), DE_ARRAY_END(primitiveCounts), primitiveCountWeights);
2154 spec.drawMethod = random.chooseWeighted<gls::DrawTestSpec::DrawMethod> (DE_ARRAY_BEGIN(drawMethods), DE_ARRAY_END(drawMethods), drawMethodWeights.weights);
2156 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS_INDIRECT)
2158 else if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_INDIRECT)
2166 spec.indexType = random.chooseWeighted<gls::DrawTestSpec::IndexType> (DE_ARRAY_BEGIN(indexTypes), DE_ARRAY_END(indexTypes), indexTypeWeights.weights);
2167 spec.indexPointerOffset = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indexOffsets), DE_ARRAY_END(indexOffsets), indexOffsetWeights);
2168 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
2169 spec.first = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(firsts), DE_ARRAY_END(firsts), firstWeights);
2170 spec.indexMin = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indexMins), DE_ARRAY_END(indexMins), indexWeights);
2171 spec.indexMax = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indexMaxs), DE_ARRAY_END(indexMaxs), indexWeights);
2172 spec.instanceCount = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(instanceCounts), DE_ARRAY_END(instanceCounts), instanceWeights);
2173 spec.indirectOffset = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indirectOffsets), DE_ARRAY_END(indirectOffsets), indirectOffsetWeigths) * drawCommandSize;
2174 spec.baseVertex = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(baseVertices), DE_ARRAY_END(baseVertices), baseVertexWeigths);
2176 // check spec is legal
2177 if (!spec.valid())
2196 // check spec is legal
2197 valid = attribSpec.valid(spec.apiType);
2206 spec.attribs.push_back(attribSpec);
2212 if (spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
2213 spec.attribs[0].instanceDivisor = 0;
2218 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED && spec.indexMin == spec.indexMax && spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
2220 if (spec.attribs[0].useDefaultAttribute && spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
2224 if (spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLES || spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN || spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP)
2226 if (spec.attribs[0].componentCount == 1)
2228 if (spec.attribs[0].outputType == gls::DrawTestSpec::OUTPUTTYPE_FLOAT || spec.attribs[0].outputType == gls::DrawTestSpec::OUTPUTTYPE_INT || spec.attribs[0].outputType == gls::DrawTestSpec::OUTPUTTYPE_UINT)
2230 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED && (spec.indexMax - spec.indexMin) < 2)
2237 deUint32 hash = spec.hash();
2239 hash = (hash << 2) ^ (deUint32)spec.attribs[attrNdx].hash();
2244 if (spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_OFFSET &&
2245 spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_STRIDE)
2246 this->addChild(new gls::DrawTest(m_testCtx, m_context.getRenderContext(), spec, de::toString(insertedCount).c_str(), spec.getDesc().c_str()));