Lines Matching refs:glu
61 using glu::VarType;
62 using glu::StructType;
96 glu::VarType generateType (de::Random& rnd, int structDepth, int arrayDepth, bool arrayOk, bool unusedArrayOk);
198 const glu::VarType& lastType = lastVar.getType();
199 const bool isUnsizedArr = lastType.isArrayType() && (lastType.getArraySize() == glu::VarType::UNSIZED_ARRAY);
237 const glu::VarType type = generateType(rnd, 0, 0, true, isLastMember && (m_features & FEATURE_UNSIZED_ARRAYS));
248 glu::VarType RandomSSBOLayoutCase::generateType (de::Random& rnd, int structDepth, int arrayDepth, bool arrayOk, bool unsizedArrayOk)
260 const glu::VarType elementType = generateType(rnd, structDepth, arrayDepth + 1, childArrayOk, false);
261 return glu::VarType(elementType, glu::VarType::UNSIZED_ARRAY);
265 vector<glu::VarType> memberTypes;
272 glu::StructType& structType = m_interface.allocStruct((string("s") + genName('A', 'Z', m_structNdx)).c_str());
281 return glu::VarType(&structType);
288 const glu::VarType elementType = generateType(rnd, structDepth, arrayDepth + 1, childArrayOk, false);
290 return glu::VarType(elementType, arrayLength);
294 vector<glu::DataType> typeCandidates;
296 typeCandidates.push_back(glu::TYPE_FLOAT);
297 typeCandidates.push_back(glu::TYPE_INT);
298 typeCandidates.push_back(glu::TYPE_UINT);
299 typeCandidates.push_back(glu::TYPE_BOOL);
303 typeCandidates.push_back(glu::TYPE_UINT16);
304 typeCandidates.push_back(glu::TYPE_INT16);
305 typeCandidates.push_back(glu::TYPE_FLOAT16);
310 typeCandidates.push_back(glu::TYPE_UINT8);
311 typeCandidates.push_back(glu::TYPE_INT8);
316 typeCandidates.push_back(glu::TYPE_FLOAT_VEC2);
317 typeCandidates.push_back(glu::TYPE_FLOAT_VEC3);
318 typeCandidates.push_back(glu::TYPE_FLOAT_VEC4);
319 typeCandidates.push_back(glu::TYPE_INT_VEC2);
320 typeCandidates.push_back(glu::TYPE_INT_VEC3);
321 typeCandidates.push_back(glu::TYPE_INT_VEC4);
322 typeCandidates.push_back(glu::TYPE_UINT_VEC2);
323 typeCandidates.push_back(glu::TYPE_UINT_VEC3);
324 typeCandidates.push_back(glu::TYPE_UINT_VEC4);
325 typeCandidates.push_back(glu::TYPE_BOOL_VEC2);
326 typeCandidates.push_back(glu::TYPE_BOOL_VEC3);
327 typeCandidates.push_back(glu::TYPE_BOOL_VEC4);
330 typeCandidates.push_back(glu::TYPE_FLOAT16_VEC2);
331 typeCandidates.push_back(glu::TYPE_FLOAT16_VEC3);
332 typeCandidates.push_back(glu::TYPE_FLOAT16_VEC4);
333 typeCandidates.push_back(glu::TYPE_INT16_VEC2);
334 typeCandidates.push_back(glu::TYPE_INT16_VEC3);
335 typeCandidates.push_back(glu::TYPE_INT16_VEC4);
336 typeCandidates.push_back(glu::TYPE_UINT16_VEC2);
337 typeCandidates.push_back(glu::TYPE_UINT16_VEC3);
338 typeCandidates.push_back(glu::TYPE_UINT16_VEC4);
342 typeCandidates.push_back(glu::TYPE_INT8_VEC2);
343 typeCandidates.push_back(glu::TYPE_INT8_VEC3);
344 typeCandidates.push_back(glu::TYPE_INT8_VEC4);
345 typeCandidates.push_back(glu::TYPE_UINT8_VEC2);
346 typeCandidates.push_back(glu::TYPE_UINT8_VEC3);
347 typeCandidates.push_back(glu::TYPE_UINT8_VEC4);
353 typeCandidates.push_back(glu::TYPE_FLOAT_MAT2);
354 typeCandidates.push_back(glu::TYPE_FLOAT_MAT2X3);
355 typeCandidates.push_back(glu::TYPE_FLOAT_MAT3X2);
356 typeCandidates.push_back(glu::TYPE_FLOAT_MAT3);
357 typeCandidates.push_back(glu::TYPE_FLOAT_MAT3X4);
358 typeCandidates.push_back(glu::TYPE_FLOAT_MAT4X2);
359 typeCandidates.push_back(glu::TYPE_FLOAT_MAT4X3);
360 typeCandidates.push_back(glu::TYPE_FLOAT_MAT4);
363 glu::DataType type = rnd.choose<glu::DataType>(typeCandidates.begin(), typeCandidates.end());
364 glu::Precision precision;
366 if (glu::dataTypeSupportsPrecisionModifier(type))
369 static const glu::Precision precisionCandidates[] = { glu::PRECISION_LOWP, glu::PRECISION_MEDIUMP, glu::PRECISION_HIGHP };
370 precision = rnd.choose<glu::Precision>(&precisionCandidates[0], &precisionCandidates[DE_LENGTH_OF_ARRAY(precisionCandidates)]);
373 precision = glu::PRECISION_LAST;
375 return glu::VarType(type, precision);
390 if (getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_UINT16 ||
391 getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_INT16 ||
392 getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_FLOAT16)
396 if (getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_UINT8 ||
397 getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_INT8)
406 block.addMember(BufferVar("padding", VarType(getDataTypeScalarType(tempType.getBasicType()), glu::PRECISION_LAST), ACCESS_READ|(readonly ? 0 : ACCESS_WRITE)));
436 if (getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_UINT16 ||
437 getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_INT16 ||
438 getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_FLOAT16)
442 if (getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_UINT8 ||
443 getDataTypeScalarType(tempType.getBasicType()) == glu::TYPE_INT8)
481 typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, glu::PRECISION_HIGHP)); // \todo [pyry] First member is unused.
482 typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_MEDIUMP), 4));
483 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP));
512 typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, glu::PRECISION_HIGHP)); // \todo [pyry] UNUSED
513 typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_MEDIUMP), 4));
514 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP));
517 block.addMember(BufferVar("u", VarType(glu::TYPE_UINT, glu::PRECISION_LOWP), 0 /* no access */));
519 block.addMember(BufferVar("v", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_MEDIUMP), ACCESS_WRITE));
545 typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, glu::PRECISION_HIGHP));
546 typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_MEDIUMP), 4));
547 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP)); // \todo [pyry] UNUSED
550 typeT.addMember("a", VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_MEDIUMP));
555 block.addMember(BufferVar("v", VarType(glu::TYPE_FLOAT_VEC2, glu::PRECISION_LOWP), 0 /* no access */));
557 block.addMember(BufferVar("u", VarType(glu::TYPE_UINT, glu::PRECISION_HIGHP), ACCESS_WRITE));
583 typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, glu::PRECISION_HIGHP));
584 typeS.addMember("b", VarType(VarType(glu::TYPE_INT_VEC2, glu::PRECISION_MEDIUMP), 4));
585 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP)); // \todo [pyry] UNUSED
588 typeT.addMember("a", VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_MEDIUMP));
593 block.addMember(BufferVar("v", VarType(glu::TYPE_FLOAT_VEC2, glu::PRECISION_LOWP), 0 /* no access */));
595 block.addMember(BufferVar("u", VarType(glu::TYPE_UINT, glu::PRECISION_HIGHP), ACCESS_READ|ACCESS_WRITE));
621 typeS.addMember("a", VarType(glu::TYPE_UINT_VEC2, glu::PRECISION_HIGHP)); // \todo [pyry] UNUSED
622 typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_MAT2X4, glu::PRECISION_MEDIUMP), 4));
623 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC3, glu::PRECISION_HIGHP));
626 block.addMember(BufferVar("u", VarType(glu::TYPE_FLOAT_VEC2, glu::PRECISION_LOWP), 0 /* no access */));
627 block.addMember(BufferVar("v", VarType(glu::TYPE_UINT, glu::PRECISION_MEDIUMP), ACCESS_WRITE));
663 typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, glu::PRECISION_HIGHP));
664 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP));
667 block.addMember(BufferVar("u", VarType(glu::TYPE_UINT, glu::PRECISION_LOWP), 0 /* no access */));
668 block.addMember(BufferVar("v", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_MEDIUMP), ACCESS_WRITE));
704 typeS.addMember("a", VarType(glu::TYPE_UINT_VEC3, glu::PRECISION_HIGHP));
705 typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_VEC2, glu::PRECISION_MEDIUMP), 4));
706 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP)); // \todo [pyry] UNUSED
709 typeT.addMember("a", VarType(glu::TYPE_FLOAT_MAT4X3, glu::PRECISION_MEDIUMP));
711 typeT.addMember("c", VarType(glu::TYPE_INT, glu::PRECISION_HIGHP));
715 block.addMember(BufferVar("v", VarType(glu::TYPE_FLOAT_VEC2, glu::PRECISION_LOWP), 0 /* no access */));
716 block.addMember(BufferVar("u", VarType(glu::TYPE_UINT, glu::PRECISION_HIGHP), ACCESS_READ|ACCESS_WRITE));
753 blockA.addMember(BufferVar("a", VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), ACCESS_READ|ACCESS_WRITE));
754 blockA.addMember(BufferVar("b", VarType(glu::TYPE_UINT_VEC3, glu::PRECISION_LOWP), 0 /* no access */));
755 blockA.addMember(BufferVar("c", VarType(glu::TYPE_FLOAT_MAT2, glu::PRECISION_MEDIUMP), ACCESS_READ));
760 blockB.addMember(BufferVar("a", VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_MEDIUMP), ACCESS_WRITE));
761 blockB.addMember(BufferVar("b", VarType(glu::TYPE_INT_VEC2, glu::PRECISION_LOWP), ACCESS_READ));
762 blockB.addMember(BufferVar("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), 0 /* no access */));
763 blockB.addMember(BufferVar("d", VarType(glu::TYPE_BOOL, glu::PRECISION_LAST), ACCESS_READ|ACCESS_WRITE));
792 typeS.addMember("a", VarType(glu::TYPE_FLOAT_MAT3, glu::PRECISION_LOWP));
793 typeS.addMember("b", VarType(VarType(glu::TYPE_INT_VEC2, glu::PRECISION_MEDIUMP), 4));
794 typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP));
797 typeT.addMember("a", VarType(glu::TYPE_UINT, glu::PRECISION_MEDIUMP)); // \todo [pyry] UNUSED
799 typeT.addMember("c", VarType(glu::TYPE_BOOL_VEC4, glu::PRECISION_LAST));
802 blockA.addMember(BufferVar("a", VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), ACCESS_READ|ACCESS_WRITE));
804 blockA.addMember(BufferVar("c", VarType(glu::TYPE_UINT_VEC3, glu::PRECISION_LOWP), 0 /* no access */));
809 blockB.addMember(BufferVar("a", VarType(glu::TYPE_FLOAT_MAT2, glu::PRECISION_MEDIUMP), ACCESS_WRITE));
811 blockB.addMember(BufferVar("c", VarType(glu::TYPE_BOOL_VEC4, glu::PRECISION_LAST), 0 /* no access */));
812 blockB.addMember(BufferVar("d", VarType(glu::TYPE_BOOL, glu::PRECISION_LAST), ACCESS_READ|ACCESS_WRITE));
844 dst.glslSources.add("comp") << glu::ComputeSource(
1084 static const glu::DataType basicTypes[] =
1086 glu::TYPE_FLOAT,
1087 glu::TYPE_FLOAT_VEC2,
1088 glu::TYPE_FLOAT_VEC3,
1089 glu::TYPE_FLOAT_VEC4,
1090 glu::TYPE_INT,
1091 glu::TYPE_INT_VEC2,
1092 glu::TYPE_INT_VEC3,
1093 glu::TYPE_INT_VEC4,
1094 glu::TYPE_UINT,
1095 glu::TYPE_UINT_VEC2,
1096 glu::TYPE_UINT_VEC3,
1097 glu::TYPE_UINT_VEC4,
1098 glu::TYPE_BOOL,
1099 glu::TYPE_BOOL_VEC2,
1100 glu::TYPE_BOOL_VEC3,
1101 glu::TYPE_BOOL_VEC4,
1102 glu::TYPE_FLOAT_MAT2,
1103 glu::TYPE_FLOAT_MAT3,
1104 glu::TYPE_FLOAT_MAT4,
1105 glu::TYPE_FLOAT_MAT2X3,
1106 glu::TYPE_FLOAT_MAT2X4,
1107 glu::TYPE_FLOAT_MAT3X2,
1108 glu::TYPE_FLOAT_MAT3X4,
1109 glu::TYPE_FLOAT_MAT4X2,
1110 glu::TYPE_FLOAT_MAT4X3,
1111 glu::TYPE_UINT8,
1112 glu::TYPE_UINT8_VEC2,
1113 glu::TYPE_UINT8_VEC3,
1114 glu::TYPE_UINT8_VEC4,
1115 glu::TYPE_INT8,
1116 glu::TYPE_INT8_VEC2,
1117 glu::TYPE_INT8_VEC3,
1118 glu::TYPE_INT8_VEC4,
1119 glu::TYPE_UINT16,
1120 glu::TYPE_UINT16_VEC2,
1121 glu::TYPE_UINT16_VEC3,
1122 glu::TYPE_UINT16_VEC4,
1123 glu::TYPE_INT16,
1124 glu::TYPE_INT16_VEC2,
1125 glu::TYPE_INT16_VEC3,
1126 glu::TYPE_INT16_VEC4,
1127 glu::TYPE_FLOAT16,
1128 glu::TYPE_FLOAT16_VEC2,
1129 glu::TYPE_FLOAT16_VEC3,
1130 glu::TYPE_FLOAT16_VEC4,
1191 glu::DataType type = basicTypes[basicTypeNdx];
1192 const char* typeName = glu::getDataTypeName(type);
1194 if (!glu::dataTypeSupportsPrecisionModifier(type))
1195 layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, VarType(type, glu::PRECISION_LAST), layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer, m_readonly));
1198 for (int precNdx = 0; precNdx < glu::PRECISION_LAST; precNdx++)
1200 const glu::Precision precision = glu::Precision(precNdx);
1201 const string caseName = string(glu::getPrecisionName(precision)) + "_" + typeName;
1207 if (glu::isDataTypeMatrix(type))
1211 for (int precNdx = 0; precNdx < glu::PRECISION_LAST; precNdx++)
1213 const glu::Precision precision = glu::Precision(precNdx);
1214 const string caseName = string(matrixFlags[matFlagNdx].name) + "_" + string(glu::getPrecisionName(precision)) + "_" + typeName;
1218 layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (caseName + loadType.first + storeType.first).c_str(), glu::VarType(type, precision), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, loadType.second, storeType.second, m_usePhysStorageBuffer, m_readonly));
1238 glu::DataType type = basicTypes[basicTypeNdx];
1239 const char* typeName = glu::getDataTypeName(type);
1243 VarType(VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), arraySize),
1246 if (glu::isDataTypeMatrix(type))
1253 VarType(VarType(type, glu::PRECISION_HIGHP), arraySize),
1273 glu::DataType type = basicTypes[basicTypeNdx];
1274 const char* typeName = glu::getDataTypeName(type);
1278 VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP),
1281 if (glu::isDataTypeMatrix(type))
1288 VarType(type, glu::PRECISION_HIGHP), arraySize,
1309 glu::DataType type = basicTypes[basicTypeNdx];
1310 const char* typeName = glu::getDataTypeName(type);
1313 const VarType childType (VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), childSize);
1318 if (glu::isDataTypeMatrix(type))
1346 glu::DataType type = basicTypes[basicTypeNdx];
1347 const char* typeName = glu::getDataTypeName(type);
1351 const VarType childType0 (VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), childSize0);
1357 if (glu::isDataTypeMatrix(type))
1386 glu::DataType type = basicTypes[basicTypeNdx];
1387 const char* typeName = glu::getDataTypeName(type);
1391 const VarType childType0 (VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), childSize0);
1396 if (glu::isDataTypeMatrix(type))
1647 glu::DataType type = basicTypes[basicTypeNdx];
1648 const char* typeName = glu::getDataTypeName(type);
1652 VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP),
1655 if (glu::isDataTypeMatrix(type))
1662 VarType(type, glu::PRECISION_HIGHP), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags,