Lines Matching refs:DrawTestSpec

153 static void addTestIterations (gls::DrawTest* test, gls::DrawTestSpec& spec, TestIterationType type)
181 static void genBasicSpec (gls::DrawTestSpec& spec, glu::ContextType contextType, gls::DrawTestSpec::DrawMethod method)
184 spec.primitive = gls::DrawTestSpec::PRIMITIVE_TRIANGLES;
187 spec.indexType = gls::DrawTestSpec::INDEXTYPE_LAST;
189 spec.indexStorage = gls::DrawTestSpec::STORAGE_LAST;
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;
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;
233 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);
239 gls::DrawTestSpec::DrawMethod m_method;
240 gls::DrawTestSpec::Primitive m_primitive;
241 gls::DrawTestSpec::IndexType m_indexType;
242 gls::DrawTestSpec::Storage m_indexStorage;
245 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)
264 gls::DrawTestSpec spec;
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;
301 gls::DrawTestSpec spec;
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;
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;
349 gls::DrawTestSpec spec;
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;
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;
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;
411 gls::DrawTestSpec spec;
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;
441 gls::DrawTestSpec::InputType input;
442 gls::DrawTestSpec::OutputType output;
446 { gls::DrawTestSpec::INPUTTYPE_FLOAT, gls::DrawTestSpec::OUTPUTTYPE_VEC2, 4 },
447 { gls::DrawTestSpec::INPUTTYPE_FLOAT, gls::DrawTestSpec::OUTPUTTYPE_VEC4, 2 },
448 { gls::DrawTestSpec::INPUTTYPE_INT, gls::DrawTestSpec::OUTPUTTYPE_IVEC3, 4 },
449 { gls::DrawTestSpec::INPUTTYPE_UNSIGNED_INT, gls::DrawTestSpec::OUTPUTTYPE_UVEC2, 4 },
454 const std::string desc = gls::DrawTestSpec::inputTypeToString(iopairs[ioNdx].input) + de::toString(iopairs[ioNdx].componentCount) + " to " + gls::DrawTestSpec::outputTypeToString(iopairs[ioNdx].output);
458 spec.attribs[1].storage = gls::DrawTestSpec::STORAGE_BUFFER;
459 spec.attribs[1].usage = gls::DrawTestSpec::USAGE_STATIC_DRAW;
477 IndexGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
483 gls::DrawTestSpec::DrawMethod m_method;
486 IndexGroup::IndexGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
500 gls::DrawTestSpec::IndexType type;
506 { gls::DrawTestSpec::INDEXTYPE_BYTE, { 0, 1, -1 } },
507 { gls::DrawTestSpec::INDEXTYPE_SHORT, { 0, 2, -1 } },
508 { gls::DrawTestSpec::INDEXTYPE_INT, { 0, 4, -1 } },
511 gls::DrawTestSpec spec;
514 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
520 const std::string name = std::string("index_") + gls::DrawTestSpec::indexTypeToString(indexTest.type);
521 const std::string desc = std::string("index ") + gls::DrawTestSpec::indexTypeToString(indexTest.type);
528 const std::string iterationDesc = std::string("first vertex ") + de::toString(indexTest.offsets[iterationNdx] / gls::DrawTestSpec::indexTypeSize(indexTest.type));
540 BaseVertexGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
546 gls::DrawTestSpec::DrawMethod m_method;
549 BaseVertexGroup::BaseVertexGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
564 gls::DrawTestSpec::IndexType type;
570 { true, gls::DrawTestSpec::INDEXTYPE_BYTE, { 1, 2 } },
571 { true, gls::DrawTestSpec::INDEXTYPE_SHORT, { 1, 2 } },
572 { true, gls::DrawTestSpec::INDEXTYPE_INT, { 1, 2 } },
573 { false, gls::DrawTestSpec::INDEXTYPE_BYTE, { -1, -2 } },
574 { false, gls::DrawTestSpec::INDEXTYPE_SHORT, { -1, -2 } },
575 { false, gls::DrawTestSpec::INDEXTYPE_INT, { -1, -2 } },
578 gls::DrawTestSpec spec;
581 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
587 const std::string name = std::string("index_") + (indexTest.positiveBase ? "" : "neg_") + gls::DrawTestSpec::indexTypeToString(indexTest.type);
588 const std::string desc = std::string("index ") + gls::DrawTestSpec::indexTypeToString(indexTest.type);
607 FirstGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
613 gls::DrawTestSpec::DrawMethod m_method;
616 FirstGroup::FirstGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
633 gls::DrawTestSpec spec;
653 MethodGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod);
659 gls::DrawTestSpec::DrawMethod m_method;
662 MethodGroup::MethodGroup (Context& context, const char* name, const char* descr, gls::DrawTestSpec::DrawMethod drawMethod)
674 const bool indexed = (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_INDIRECT);
675 const bool hasFirst = (m_method == gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS_INDIRECT);
677 const gls::DrawTestSpec::Primitive primitive[] =
679 gls::DrawTestSpec::PRIMITIVE_POINTS,
680 gls::DrawTestSpec::PRIMITIVE_TRIANGLES,
681 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN,
682 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP,
683 gls::DrawTestSpec::PRIMITIVE_LINES,
684 gls::DrawTestSpec::PRIMITIVE_LINE_STRIP,
685 gls::DrawTestSpec::PRIMITIVE_LINE_LOOP
703 const std::string name = gls::DrawTestSpec::primitiveToString(primitive[ndx]);
704 const std::string desc = gls::DrawTestSpec::primitiveToString(primitive[ndx]);
706 this->addChild(new AttributeGroup(m_context, name.c_str(), desc.c_str(), m_method, primitive[ndx], gls::DrawTestSpec::INDEXTYPE_SHORT, gls::DrawTestSpec::STORAGE_BUFFER));
2070 gls::DrawTestSpec::Primitive primitives[] =
2072 gls::DrawTestSpec::PRIMITIVE_POINTS,
2073 gls::DrawTestSpec::PRIMITIVE_TRIANGLES,
2074 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_FAN,
2075 gls::DrawTestSpec::PRIMITIVE_TRIANGLE_STRIP,
2076 gls::DrawTestSpec::PRIMITIVE_LINES,
2077 gls::DrawTestSpec::PRIMITIVE_LINE_STRIP,
2078 gls::DrawTestSpec::PRIMITIVE_LINE_LOOP
2082 gls::DrawTestSpec::DrawMethod drawMethods[] =
2084 gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS_INDIRECT,
2085 gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_INDIRECT,
2089 gls::DrawTestSpec::IndexType indexTypes[] =
2091 gls::DrawTestSpec::INDEXTYPE_BYTE,
2092 gls::DrawTestSpec::INDEXTYPE_SHORT,
2093 gls::DrawTestSpec::INDEXTYPE_INT,
2097 gls::DrawTestSpec::InputType inputTypes[] =
2099 gls::DrawTestSpec::INPUTTYPE_FLOAT,
2100 gls::DrawTestSpec::INPUTTYPE_FIXED,
2101 gls::DrawTestSpec::INPUTTYPE_BYTE,
2102 gls::DrawTestSpec::INPUTTYPE_SHORT,
2103 gls::DrawTestSpec::INPUTTYPE_UNSIGNED_BYTE,
2104 gls::DrawTestSpec::INPUTTYPE_UNSIGNED_SHORT,
2105 gls::DrawTestSpec::INPUTTYPE_INT,
2106 gls::DrawTestSpec::INPUTTYPE_UNSIGNED_INT,
2107 gls::DrawTestSpec::INPUTTYPE_HALF,
2108 gls::DrawTestSpec::INPUTTYPE_UNSIGNED_INT_2_10_10_10,
2109 gls::DrawTestSpec::INPUTTYPE_INT_2_10_10_10,
2113 gls::DrawTestSpec::OutputType outputTypes[] =
2115 gls::DrawTestSpec::OUTPUTTYPE_FLOAT,
2116 gls::DrawTestSpec::OUTPUTTYPE_VEC2,
2117 gls::DrawTestSpec::OUTPUTTYPE_VEC3,
2118 gls::DrawTestSpec::OUTPUTTYPE_VEC4,
2119 gls::DrawTestSpec::OUTPUTTYPE_INT,
2120 gls::DrawTestSpec::OUTPUTTYPE_UINT,
2121 gls::DrawTestSpec::OUTPUTTYPE_IVEC2,
2122 gls::DrawTestSpec::OUTPUTTYPE_IVEC3,
2123 gls::DrawTestSpec::OUTPUTTYPE_IVEC4,
2124 gls::DrawTestSpec::OUTPUTTYPE_UVEC2,
2125 gls::DrawTestSpec::OUTPUTTYPE_UVEC3,
2126 gls::DrawTestSpec::OUTPUTTYPE_UVEC4,
2130 gls::DrawTestSpec::Usage usages[] =
2132 gls::DrawTestSpec::USAGE_DYNAMIC_DRAW,
2133 gls::DrawTestSpec::USAGE_STATIC_DRAW,
2134 gls::DrawTestSpec::USAGE_STREAM_DRAW,
2135 gls::DrawTestSpec::USAGE_STREAM_READ,
2136 gls::DrawTestSpec::USAGE_STREAM_COPY,
2137 gls::DrawTestSpec::USAGE_STATIC_READ,
2138 gls::DrawTestSpec::USAGE_STATIC_COPY,
2139 gls::DrawTestSpec::USAGE_DYNAMIC_READ,
2140 gls::DrawTestSpec::USAGE_DYNAMIC_COPY,
2155 gls::DrawTestSpec spec;
2158 spec.primitive = random.chooseWeighted<gls::DrawTestSpec::Primitive> (DE_ARRAY_BEGIN(primitives), DE_ARRAY_END(primitives), primitiveWeights.weights);
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);
2174 spec.indexStorage = gls::DrawTestSpec::STORAGE_BUFFER;
2189 gls::DrawTestSpec::AttributeSpec attribSpec;
2191 attribSpec.inputType = random.chooseWeighted<gls::DrawTestSpec::InputType> (DE_ARRAY_BEGIN(inputTypes), DE_ARRAY_END(inputTypes), inputTypeWeights.weights);
2192 attribSpec.outputType = random.chooseWeighted<gls::DrawTestSpec::OutputType> (DE_ARRAY_BEGIN(outputTypes), DE_ARRAY_END(outputTypes), outputTypeWeights.weights);
2193 attribSpec.storage = gls::DrawTestSpec::STORAGE_BUFFER;
2194 attribSpec.usage = random.chooseWeighted<gls::DrawTestSpec::Usage> (DE_ARRAY_BEGIN(usages), DE_ARRAY_END(usages), usageWeights.weights);
2206 if (attribSpec.stride && attribSpec.componentCount * gls::DrawTestSpec::inputTypeSize(attribSpec.inputType) > attribSpec.stride)
2218 if (spec.primitive != gls::DrawTestSpec::PRIMITIVE_POINTS)
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)
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)
2250 if (spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_OFFSET &&
2251 spec.isCompatibilityTest() != gls::DrawTestSpec::COMPATIBILITY_UNALIGNED_STRIDE)
2779 const gls::DrawTestSpec::DrawMethod basicMethods[] =
2781 gls::DrawTestSpec::DRAWMETHOD_DRAWARRAYS_INDIRECT,
2782 gls::DrawTestSpec::DRAWMETHOD_DRAWELEMENTS_INDIRECT,
2787 const std::string name = gls::DrawTestSpec::drawMethodToString(basicMethods[ndx]);
2788 const std::string desc = gls::DrawTestSpec::drawMethodToString(basicMethods[ndx]);