Lines Matching refs:spec
153 static void addTestIterations (gls::DrawTest* test, gls::DrawTestSpec& spec, TestIterationType type)
157 spec.primitiveCount = 1;
158 test->addIteration(spec, "draw count = 1");
160 spec.primitiveCount = 5;
161 test->addIteration(spec, "draw count = 5");
163 spec.primitiveCount = 25;
164 test->addIteration(spec, "draw count = 25");
168 spec.instanceCount = 1;
169 test->addIteration(spec, "instance count = 1");
171 spec.instanceCount = 4;
172 test->addIteration(spec, "instance count = 4");
174 spec.instanceCount = 11;
175 test->addIteration(spec, "instance count = 11");
181 static void genBasicSpec (gls::DrawTestSpec& spec, glu::ContextType contextType, gls::DrawTestSpec::DrawMethod method)
183 spec.apiType = glu::isContextTypeES(contextType) ? glu::ApiType::es(3, 1) : contextType.getAPI();
184 spec.primitive = gls::DrawTestSpec::PRIMITIVE_TRIANGLES;
185 spec.primitiveCount = 5;
186 spec.drawMethod = method;
187 spec.indexType = gls::DrawTestSpec::INDEXTYPE_LAST;
188 spec.indexPointerOffset = 0;
189 spec.indexStorage = gls::DrawTestSpec::STORAGE_LAST;
190 spec.first = 0;
191 spec.indexMin = 0;
192 spec.indexMax = 0;
193 spec.instanceCount = 1;
194 spec.indirectOffset = 0;
196 spec.attribs.resize(2);
198 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
199 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
200 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
201 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
202 spec.attribs[0].componentCount = 4;
203 spec.attribs[0].offset = 0;
204 spec.attribs[0].stride = 0;
205 spec.attribs[0].normalize = false;
206 spec.attribs[0].instanceDivisor = 0;
207 spec.attribs[0].useDefaultAttribute = false;
209 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
210 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
211 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
212 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
213 spec.attribs[1].componentCount = 2;
214 spec.attribs[1].offset = 0;
215 spec.attribs[1].stride = 0;
216 spec.attribs[1].normalize = false;
217 spec.attribs[1].instanceDivisor = 0;
218 spec.attribs[1].useDefaultAttribute = false;
264 gls::DrawTestSpec spec;
266 spec.apiType = glu::isContextTypeES(contextType) ? glu::ApiType::es(3, 1) : contextType.getAPI();
267 spec.primitive = m_primitive;
268 spec.primitiveCount = 5;
269 spec.drawMethod = m_method;
270 spec.indexType = m_indexType;
271 spec.indexPointerOffset = 0;
272 spec.indexStorage = m_indexStorage;
273 spec.first = 0;
274 spec.indexMin = 0;
275 spec.indexMax = 0;
276 spec.instanceCount = 1;
277 spec.indirectOffset = 0;
279 spec.attribs.resize(1);
281 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
282 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
283 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
284 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
285 spec.attribs[0].componentCount = 2;
286 spec.attribs[0].offset = 0;
287 spec.attribs[0].stride = 0;
288 spec.attribs[0].normalize = false;
289 spec.attribs[0].instanceDivisor = 0;
290 spec.attribs[0].useDefaultAttribute = false;
292 addTestIterations(test, spec, TYPE_DRAW_COUNT);
301 gls::DrawTestSpec spec;
303 spec.apiType = glu::isContextTypeES(contextType) ? glu::ApiType::es(3, 1) : contextType.getAPI();
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);
349 gls::DrawTestSpec spec;
351 spec.apiType = glu::isContextTypeES(contextType) ? glu::ApiType::es(3, 1) : contextType.getAPI();
352 spec.primitive = m_primitive;
353 spec.primitiveCount = 5;
354 spec.drawMethod = m_method;
355 spec.indexType = m_indexType;
356 spec.indexPointerOffset = 0;
357 spec.indexStorage = m_indexStorage;
358 spec.first = 0;
359 spec.indexMin = 0;
360 spec.indexMax = 0;
361 spec.instanceCount = 1;
362 spec.indirectOffset = 0;
364 spec.attribs.resize(3);
366 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
367 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
368 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
369 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
370 spec.attribs[0].componentCount = 4;
371 spec.attribs[0].offset = 0;
372 spec.attribs[0].stride = 0;
373 spec.attribs[0].normalize = false;
374 spec.attribs[0].instanceDivisor = 0;
375 spec.attribs[0].useDefaultAttribute = false;
378 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
379 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
380 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
381 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
382 spec.attribs[1].componentCount = 2;
383 spec.attribs[1].offset = 0;
384 spec.attribs[1].stride = 0;
385 spec.attribs[1].normalize = false;
386 spec.attribs[1].instanceDivisor = 1;
387 spec.attribs[1].useDefaultAttribute = false;
388 spec.attribs[1].additionalPositionAttribute = true;
391 spec.attribs[2].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
392 spec.attribs[2].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
393 spec.attribs[2].storage = gls::DrawTestSpec::STORAGE_BUFFER;
394 spec.attribs[2].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
395 spec.attribs[2].componentCount = 3;
396 spec.attribs[2].offset = 0;
397 spec.attribs[2].stride = 0;
398 spec.attribs[2].normalize = false;
399 spec.attribs[2].instanceDivisor = 1;
400 spec.attribs[2].useDefaultAttribute = false;
402 addTestIterations(test, spec, TYPE_INSTANCE_COUNT);
411 gls::DrawTestSpec spec;
413 spec.apiType = glu::isContextTypeES(contextType) ? glu::ApiType::es(3, 1) : contextType.getAPI();
414 spec.primitive = m_primitive;
415 spec.primitiveCount = 5;
416 spec.drawMethod = m_method;
417 spec.indexType = m_indexType;
418 spec.indexPointerOffset = 0;
419 spec.indexStorage = m_indexStorage;
420 spec.first = 0;
421 spec.indexMin = 0;
422 spec.indexMax = 0;
423 spec.instanceCount = 1;
424 spec.indirectOffset = 0;
426 spec.attribs.resize(2);
428 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
429 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
430 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
431 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
432 spec.attribs[0].componentCount = 2;
433 spec.attribs[0].offset = 0;
434 spec.attribs[0].stride = 0;
435 spec.attribs[0].normalize = false;
436 spec.attribs[0].instanceDivisor = 0;
437 spec.attribs[0].useDefaultAttribute = false;
456 spec.attribs[1].inputType = iopairs[ioNdx].input;
457 spec.attribs[1].outputType = iopairs[ioNdx].output;
458 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
459 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
460 spec.attribs[1].componentCount = iopairs[ioNdx].componentCount;
461 spec.attribs[1].offset = 0;
462 spec.attribs[1].stride = 0;
463 spec.attribs[1].normalize = false;
464 spec.attribs[1].instanceDivisor = 0;
465 spec.attribs[1].useDefaultAttribute = true;
467 test->addIteration(spec, desc.c_str());
511 gls::DrawTestSpec spec;
512 genBasicSpec(spec, m_context.getRenderContext().getType(), m_method);
514 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
524 spec.indexType = indexTest.type;
529 spec.indexPointerOffset = indexTest.offsets[iterationNdx];
530 test->addIteration(spec, iterationDesc.c_str());
578 gls::DrawTestSpec spec;
579 genBasicSpec(spec, m_context.getRenderContext().getType(), m_method);
581 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
591 spec.indexType = indexTest.type;
596 spec.baseVertex = indexTest.baseVertex[iterationNdx];
597 test->addIteration(spec, iterationDesc.c_str());
633 gls::DrawTestSpec spec;
634 genBasicSpec(spec, m_context.getRenderContext().getType(), m_method);
642 spec.first = firsts[firstNdx];
644 addTestIterations(test, spec, TYPE_DRAW_COUNT);
2155 gls::DrawTestSpec spec;
2157 spec.apiType = apiType;
2158 spec.primitive = random.chooseWeighted<gls::DrawTestSpec::Primitive> (DE_ARRAY_BEGIN(primitives), DE_ARRAY_END(primitives), primitiveWeights.weights);
2159 spec.primitiveCount = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(primitiveCounts), DE_ARRAY_END(primitiveCounts), primitiveCountWeights);
2160 spec.drawMethod = random.chooseWeighted<gls::DrawTestSpec::DrawMethod> (DE_ARRAY_BEGIN(drawMethods), DE_ARRAY_END(drawMethods), drawMethodWeights.weights);
2162 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS_INDIRECT)
2164 else if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_INDIRECT)
2172 spec.indexType = random.chooseWeighted<gls::DrawTestSpec::IndexType> (DE_ARRAY_BEGIN(indexTypes), DE_ARRAY_END(indexTypes), indexTypeWeights.weights);
2173 spec.indexPointerOffset = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indexOffsets), DE_ARRAY_END(indexOffsets), indexOffsetWeights);
2174 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
2175 spec.first = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(firsts), DE_ARRAY_END(firsts), firstWeights);
2176 spec.indexMin = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indexMins), DE_ARRAY_END(indexMins), indexWeights);
2177 spec.indexMax = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indexMaxs), DE_ARRAY_END(indexMaxs), indexWeights);
2178 spec.instanceCount = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(instanceCounts), DE_ARRAY_END(instanceCounts), instanceWeights);
2179 spec.indirectOffset = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(indirectOffsets), DE_ARRAY_END(indirectOffsets), indirectOffsetWeigths) * drawCommandSize;
2180 spec.baseVertex = random.chooseWeighted<int, const int*, const float*> (DE_ARRAY_BEGIN(baseVertices), DE_ARRAY_END(baseVertices), baseVertexWeigths);
2182 // check spec is legal
2183 if (!spec.valid())
2202 // check spec is legal
2203 valid = attribSpec.valid(spec.apiType);
2212 spec.attribs.push_back(attribSpec);
2218 if (spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
2219 spec.attribs[0].instanceDivisor = 0;
2224 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED && spec.indexMin == spec.indexMax && spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
2226 if (spec.attribs[0].useDefaultAttribute && spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
2230 if (spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLES || spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN || spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP)
2232 if (spec.attribs[0].componentCount == 1)
2234 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)
2236 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED && (spec.indexMax - spec.indexMin) < 2)
2243 deUint32 hash = spec.hash();
2245 hash = (hash << 2) ^ (deUint32)spec.attribs[attrNdx].hash();
2250 if (spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_OFFSET &&
2251 spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_STRIDE)
2252 this->addChild(new gls::DrawTest(m_testCtx, m_context.getRenderContext(), spec, de::toString(insertedCount).c_str(), spec.getDesc().c_str()));