Lines Matching defs:spec
92 bool isValid (const ShaderCaseSpecification& spec)
100 const bool isSeparable = !spec.programs.empty() && spec.programs[0].sources.separable;
102 if (spec.programs.empty())
108 if (isCapabilityRequired(CAPABILITY_FULL_GLSL_ES_100_SUPPORT, spec))
110 if (spec.targetVersion != GLSL_VERSION_100_ES)
116 if (spec.expectResult != EXPECT_PASS &&
117 spec.expectResult != EXPECT_VALIDATION_FAIL &&
118 spec.expectResult != EXPECT_BUILD_SUCCESSFUL)
125 if (!de::inBounds(spec.caseType, (CaseType)0, CASETYPE_LAST))
131 if (!de::inBounds(spec.expectResult, (ExpectResult)0, EXPECT_LAST))
137 if (!isValid(spec.values))
140 if (!spec.values.inputs.empty() && !spec.values.outputs.empty() &&
141 spec.values.inputs[0].elements.size() / spec.values.inputs[0].type.getScalarSize() != spec.values.outputs[0].elements.size() / spec.values.outputs[0].type.getScalarSize())
151 if (spec.caseType != CASETYPE_COMPLETE)
157 for (size_t progNdx = 0; progNdx < spec.programs.size(); ++progNdx)
165 const bool hasShader = !spec.programs[progNdx].sources.sources[shaderStageNdx].empty();
166 const bool isEnabled = (spec.programs[progNdx].activeStages & curStageMask) != 0;
183 else if (!spec.programs[progNdx].sources.sources[shaderStageNdx].empty())
205 const bool hasVertex = !spec.programs[0].sources.sources[SHADERTYPE_VERTEX].empty();
206 const bool hasFragment = !spec.programs[0].sources.sources[SHADERTYPE_FRAGMENT].empty();
208 if (spec.programs.size() != 1)
214 if (spec.caseType == CASETYPE_VERTEX_ONLY && (!hasVertex || hasFragment))
220 if (spec.caseType == CASETYPE_FRAGMENT_ONLY && (hasVertex || !hasFragment))
226 if (spec.caseType == CASETYPE_COMPLETE && (!hasVertex || !hasFragment))
236 bool isCapabilityRequired(CapabilityFlag capabilityFlag, const ShaderCaseSpecification& spec)
238 std::vector<RequiredCapability>::const_iterator currRequirement = spec.requiredCaps.begin();
239 while (currRequirement != spec.requiredCaps.end())
1457 ShaderCaseSpecification spec;
1458 spec.caseType = CASETYPE_VERTEX_ONLY;
1459 spec.expectResult = expectResult;
1460 spec.targetVersion = version;
1461 spec.requiredCaps = requiredCaps;
1462 spec.values = valueBlock;
1464 spec.programs.resize(1);
1465 spec.programs[0].sources << VertexSource(bothSource);
1466 spec.programs[0].requiredExtensions = requiredExts;
1468 shaderNodeList.push_back(m_caseFactory->createCase(caseName + "_vertex", description, ShaderCaseSpecification(spec)));
1473 ShaderCaseSpecification spec;
1474 spec.caseType = CASETYPE_FRAGMENT_ONLY;
1475 spec.expectResult = expectResult;
1476 spec.targetVersion = version;
1477 spec.requiredCaps = requiredCaps;
1478 spec.values = valueBlock;
1480 spec.programs.resize(1);
1481 spec.programs[0].sources << FragmentSource(bothSource);
1482 spec.programs[0].requiredExtensions = requiredExts;
1484 shaderNodeList.push_back(m_caseFactory->createCase(caseName + "_fragment", description, ShaderCaseSpecification(spec)));
1489 ShaderCaseSpecification spec;
1490 spec.caseType = CASETYPE_COMPLETE;
1491 spec.expectResult = expectResult;
1492 spec.outputType = outputType;
1493 spec.outputFormat = format;
1494 spec.targetVersion = version;
1495 spec.requiredCaps = requiredCaps;
1496 spec.values = valueBlock;
1498 spec.programs.resize(1);
1499 spec.programs[0].sources.sources[SHADERTYPE_VERTEX].swap(vertexSources);
1500 spec.programs[0].sources.sources[SHADERTYPE_FRAGMENT].swap(fragmentSources);
1501 spec.programs[0].sources.sources[SHADERTYPE_TESSELLATION_CONTROL].swap(tessellationCtrlSources);
1502 spec.programs[0].sources.sources[SHADERTYPE_TESSELLATION_EVALUATION].swap(tessellationEvalSources);
1503 spec.programs[0].sources.sources[SHADERTYPE_GEOMETRY].swap(geometrySources);
1504 spec.programs[0].requiredExtensions.swap(requiredExts);
1506 shaderNodeList.push_back(m_caseFactory->createCase(caseName, description, ShaderCaseSpecification(spec)));
1524 ShaderCaseSpecification spec;
1525 spec.caseType = CASETYPE_COMPLETE;
1526 spec.expectResult = expectResult;
1527 spec.targetVersion = version;
1528 spec.requiredCaps = requiredCaps;
1529 spec.values = valueBlock;
1531 spec.programs.swap(pipelinePrograms);
1533 shaderNodeList.push_back(m_caseFactory->createCase(caseName, description, ShaderCaseSpecification(spec)));