Lines Matching refs:DrawTestSpec

52 static void addTestIterations (gls::DrawTest* test, const gls::DrawTestSpec& baseSpec, TestIterationType type)
54 gls::DrawTestSpec spec(baseSpec);
71 static void genBasicSpec (gls::DrawTestSpec& spec, gls::DrawTestSpec::DrawMethod method)
74 spec.primitive = gls::DrawTestSpec::PRIMITIVE_TRIANGLES;
77 spec.indexType = gls::DrawTestSpec::INDEXTYPE_LAST;
79 spec.indexStorage = gls::DrawTestSpec::STORAGE_LAST;
87 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
88 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
89 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
90 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
98 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
99 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
100 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
101 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
114 AttributeGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod, gls::DrawTestSpec::Primitive primitive, gls::DrawTestSpec::IndexType indexType, gls::DrawTestSpec::Storage indexStorage);
120 gls::DrawTestSpec::DrawMethod m_method;
121 gls::DrawTestSpec::Primitive m_primitive;
122 gls::DrawTestSpec::IndexType m_indexType;
123 gls::DrawTestSpec::Storage m_indexStorage;
126 AttributeGroup::AttributeGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod, gls::DrawTestSpec::Primitive primitive, gls::DrawTestSpec::IndexType indexType, gls::DrawTestSpec::Storage indexStorage)
144 gls::DrawTestSpec spec;
160 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
161 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
162 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
163 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
179 gls::DrawTestSpec spec;
195 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
196 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
197 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
198 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
206 spec.attribs[1].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
207 spec.attribs[1].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
208 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
209 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
225 gls::DrawTestSpec spec;
241 spec.attribs[0].inputType = gls::DrawTestSpec::INPUTTYPE_FLOAT;
242 spec.attribs[0].outputType = gls::DrawTestSpec::OUTPUTTYPE_VEC2;
243 spec.attribs[0].storage = gls::DrawTestSpec::STORAGE_BUFFER;
244 spec.attribs[0].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
254 gls::DrawTestSpec::InputType input;
255 gls::DrawTestSpec::OutputType output;
259 { gls::DrawTestSpec::INPUTTYPE_FLOAT, gls::DrawTestSpec::OUTPUTTYPE_VEC2, 4 },
260 { gls::DrawTestSpec::INPUTTYPE_FLOAT, gls::DrawTestSpec::OUTPUTTYPE_VEC4, 2 },
265 const std::string desc = gls::DrawTestSpec::inputTypeToString(iopairs[ioNdx].input) + de::toString(iopairs[ioNdx].componentCount) + " to " + gls::DrawTestSpec::outputTypeToString(iopairs[ioNdx].output);
269 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
270 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
288 IndexGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
294 gls::DrawTestSpec::DrawMethod m_method;
297 IndexGroup::IndexGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
311 gls::DrawTestSpec::Storage storage;
312 gls::DrawTestSpec::IndexType type;
319 { gls::DrawTestSpec::STORAGE_USER, gls::DrawTestSpec::INDEXTYPE_BYTE, true, { 0, 1, -1 } },
320 { gls::DrawTestSpec::STORAGE_USER, gls::DrawTestSpec::INDEXTYPE_SHORT, true, { 0, 2, -1 } },
322 { gls::DrawTestSpec::STORAGE_USER, gls::DrawTestSpec::INDEXTYPE_SHORT, false, { 1, 3, -1 } },
324 { gls::DrawTestSpec::STORAGE_BUFFER, gls::DrawTestSpec::INDEXTYPE_BYTE, true, { 0, 1, -1 } },
325 { gls::DrawTestSpec::STORAGE_BUFFER, gls::DrawTestSpec::INDEXTYPE_SHORT, true, { 0, 2, -1 } },
328 gls::DrawTestSpec spec;
343 tcu::TestCaseGroup* group = (indexTest.storage == gls::DrawTestSpec::STORAGE_USER)
347 const std::string name = std::string("index_") + gls::DrawTestSpec::indexTypeToString(indexTest.type);
348 const std::string desc = std::string("index ") + gls::DrawTestSpec::indexTypeToString(indexTest.type) + " in " + gls::DrawTestSpec::storageToString(indexTest.storage);
361 DE_ASSERT(spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_OFFSET);
362 DE_ASSERT(spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_STRIDE);
371 FirstGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
377 gls::DrawTestSpec::DrawMethod m_method;
380 FirstGroup::FirstGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
397 gls::DrawTestSpec spec;
417 MethodGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
423 gls::DrawTestSpec::DrawMethod m_method;
426 MethodGroup::MethodGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
438 const bool indexed = (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS) || (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_INSTANCED) || (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED);
439 const bool hasFirst = (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS) || (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS_INSTANCED);
441 const gls::DrawTestSpec::Primitive primitive[] =
443 gls::DrawTestSpec::PRIMITIVE_POINTS,
444 gls::DrawTestSpec::PRIMITIVE_TRIANGLES,
445 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN,
446 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP,
447 gls::DrawTestSpec::PRIMITIVE_LINES,
448 gls::DrawTestSpec::PRIMITIVE_LINE_STRIP,
449 gls::DrawTestSpec::PRIMITIVE_LINE_LOOP
461 if (m_method != gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED)
467 const std::string name = gls::DrawTestSpec::primitiveToString(primitive[ndx]);
468 const std::string desc = gls::DrawTestSpec::primitiveToString(primitive[ndx]);
470 this->addChild(new AttributeGroup(m_context, name.c_str(), desc.c_str(), m_method, primitive[ndx], gls::DrawTestSpec::INDEXTYPE_SHORT, gls::DrawTestSpec::STORAGE_BUFFER));
521 static const gls::DrawTestSpec::Primitive primitives[] =
523 gls::DrawTestSpec::PRIMITIVE_POINTS,
524 gls::DrawTestSpec::PRIMITIVE_TRIANGLES,
525 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN,
526 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP,
527 gls::DrawTestSpec::PRIMITIVE_LINES,
528 gls::DrawTestSpec::PRIMITIVE_LINE_STRIP,
529 gls::DrawTestSpec::PRIMITIVE_LINE_LOOP
533 static const gls::DrawTestSpec::DrawMethod drawMethods[] =
535 gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS,
536 gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS,
540 static const gls::DrawTestSpec::IndexType indexTypes[] =
542 gls::DrawTestSpec::INDEXTYPE_BYTE,
543 gls::DrawTestSpec::INDEXTYPE_SHORT,
547 static const gls::DrawTestSpec::Storage storages[] =
549 gls::DrawTestSpec::STORAGE_USER,
550 gls::DrawTestSpec::STORAGE_BUFFER,
554 static const gls::DrawTestSpec::InputType inputTypes[] =
556 gls::DrawTestSpec::INPUTTYPE_FLOAT,
557 gls::DrawTestSpec::INPUTTYPE_FIXED,
558 gls::DrawTestSpec::INPUTTYPE_BYTE,
559 gls::DrawTestSpec::INPUTTYPE_SHORT,
560 gls::DrawTestSpec::INPUTTYPE_UNSIGNED_BYTE,
561 gls::DrawTestSpec::INPUTTYPE_UNSIGNED_SHORT
565 static const gls::DrawTestSpec::OutputType outputTypes[] =
567 gls::DrawTestSpec::OUTPUTTYPE_FLOAT,
568 gls::DrawTestSpec::OUTPUTTYPE_VEC2,
569 gls::DrawTestSpec::OUTPUTTYPE_VEC3,
570 gls::DrawTestSpec::OUTPUTTYPE_VEC4,
574 static const gls::DrawTestSpec::Usage usages[] =
576 gls::DrawTestSpec::USAGE_STATIC_DRAW,
577 gls::DrawTestSpec::USAGE_DYNAMIC_DRAW,
578 gls::DrawTestSpec::USAGE_STREAM_DRAW,
595 gls::DrawTestSpec spec;
598 spec.primitive = random.chooseWeighted<gls::DrawTestSpec::Primitive> (DE_ARRAY_BEGIN(primitives), DE_ARRAY_END(primitives), primitiveWeights.weights);
600 spec.drawMethod = random.chooseWeighted<gls::DrawTestSpec::DrawMethod> (DE_ARRAY_BEGIN(drawMethods), DE_ARRAY_END(drawMethods), drawMethodWeights.weights);
601 spec.indexType = random.chooseWeighted<gls::DrawTestSpec::IndexType> (DE_ARRAY_BEGIN(indexTypes), DE_ARRAY_END(indexTypes), indexTypeWeights.weights);
603 spec.indexStorage = random.chooseWeighted<gls::DrawTestSpec::Storage> (DE_ARRAY_BEGIN(storages), DE_ARRAY_END(storages), storageWeights.weights);
616 gls::DrawTestSpec::AttributeSpec attribSpec;
618 attribSpec.inputType = random.chooseWeighted<gls::DrawTestSpec::InputType> (DE_ARRAY_BEGIN(inputTypes), DE_ARRAY_END(inputTypes), inputTypeWeights.weights);
619 attribSpec.outputType = random.chooseWeighted<gls::DrawTestSpec::OutputType> (DE_ARRAY_BEGIN(outputTypes), DE_ARRAY_END(outputTypes), outputTypeWeights.weights);
620 attribSpec.storage = random.chooseWeighted<gls::DrawTestSpec::Storage> (DE_ARRAY_BEGIN(storages), DE_ARRAY_END(storages), storageWeights.weights);
621 attribSpec.usage = random.chooseWeighted<gls::DrawTestSpec::Usage> (DE_ARRAY_BEGIN(usages), DE_ARRAY_END(usages), usageWeights.weights);
633 if (attribSpec.stride && attribSpec.componentCount * gls::DrawTestSpec::inputTypeSize(attribSpec.inputType) > attribSpec.stride)
645 if (spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
651 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED && spec.indexMin == spec.indexMax && spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
653 if (spec.attribs[0].useDefaultAttribute && spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
657 if (spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLES || spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN || spec.primitive == gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP)
661 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)
663 if (spec.drawMethod == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_RANGED && (spec.indexMax - spec.indexMin) < 2)
678 if (spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_OFFSET &&
679 spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_STRIDE)
704 const gls::DrawTestSpec::DrawMethod basicMethods[] =
706 gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS,
707 gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS,
712 std::string name = gls::DrawTestSpec::drawMethodToString(basicMethods[ndx]);
713 std::string desc = gls::DrawTestSpec::drawMethodToString(basicMethods[ndx]);