Lines Matching refs:caseDef

144 const string getStageTestSource (const CaseDefinition& caseDef)
146 const bool formatIsBoolean = fmtIsBoolean(caseDef.format);
147 const string op = getOpTypeName(caseDef.opType);
148 const string fmt = subgroups::getFormatNameForGLSL(caseDef.format);
149 const string computePart = isAllComputeStages(caseDef.shaderStage)
154 (OPTYPE_ALL == caseDef.opType || OPTYPE_ALL_ARB == caseDef.opType) ?
158 : (OPTYPE_ANY == caseDef.opType || OPTYPE_ANY_ARB == caseDef.opType) ?
162 : (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType) ?
176 void initFrameBufferPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
179 const bool spirv14required = isAllRayTracingStages(caseDef.shaderStage);
185 const bool arbFunctions = caseDef.opType > OPTYPE_LAST_NON_ARB;
186 const string extensions = getExtensions(arbFunctions) + subgroups::getAdditionalExtensionForFormat(caseDef.format);
187 const bool pointSize = *caseDef.geometryPointSizeSupported;
189 subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, pointSize, extensions, getStageTestSource(caseDef), "");
192 const string getStageTestSourceFrag (const CaseDefinition& caseDef)
194 const bool formatIsBoolean = fmtIsBoolean(caseDef.format);
195 const string op = getOpTypeName(caseDef.opType);
196 const string fmt = subgroups::getFormatNameForGLSL(caseDef.format);
199 (OPTYPE_ALL == caseDef.opType || OPTYPE_ALL_ARB == caseDef.opType) ?
203 : (OPTYPE_ANY == caseDef.opType || OPTYPE_ANY_ARB == caseDef.opType) ?
207 : (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType) ?
210 " tempRes |= " + getOpTypeName(caseDef.opType) + "("
222 void initFrameBufferProgramsFrag (SourceCollections& programCollection, CaseDefinition caseDef)
225 const bool spirv14required = isAllRayTracingStages(caseDef.shaderStage);
231 const bool arbFunctions = caseDef.opType > OPTYPE_LAST_NON_ARB;
232 const string extensions = getExtensions(arbFunctions) + subgroups::getAdditionalExtensionForFormat(caseDef.format);
234 DE_ASSERT(VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage);
257 << " " << subgroups::getFormatNameForGLSL(caseDef.format) << " data[" << subgroups::maxSupportedSubgroupSize() << "];\n"
274 << getStageTestSourceFrag(caseDef)
282 void initPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
285 const bool spirv14required = (isAllRayTracingStages(caseDef.shaderStage) || isAllMeshShadingStages(caseDef.shaderStage));
291 const bool arbFunctions = caseDef.opType > OPTYPE_LAST_NON_ARB;
292 const string extensions = getExtensions(arbFunctions) + subgroups::getAdditionalExtensionForFormat(caseDef.format);
293 const bool pointSize = *caseDef.geometryPointSizeSupported;
295 subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, pointSize, extensions, getStageTestSource(caseDef), "");
298 void supportedCheck (Context& context, CaseDefinition caseDef)
308 if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
311 if (caseDef.requires16BitUniformBuffer)
319 if (caseDef.requires8BitUniformBuffer)
327 if (caseDef.opType > OPTYPE_LAST_NON_ARB)
332 if (caseDef.requiredSubgroupSize)
350 if ((subgroupSizeControlProperties.requiredSubgroupSizeStages & caseDef.shaderStage) != caseDef.shaderStage)
354 *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
357 if (isAllRayTracingStages(caseDef.shaderStage))
361 else if (isAllMeshShadingStages(caseDef.shaderStage))
366 if ((caseDef.shaderStage & VK_SHADER_STAGE_TASK_BIT_EXT) != 0u)
376 subgroups::supportedCheckShader(context, caseDef.shaderStage);
379 TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
381 if (caseDef.opType > OPTYPE_LAST_NON_ARB)
386 const subgroups::SSBOData::InputDataInitializeType initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType)
393 caseDef.format, // vk::VkFormat format;
398 switch (caseDef.shaderStage)
402 case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, caseDef.shaderStage);
403 case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, caseDef.shaderStage);
409 TestStatus test (Context& context, const CaseDefinition caseDef)
411 const subgroups::SSBOData::InputDataInitializeType initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType)
415 const bool isCompute = isAllComputeStages(caseDef.shaderStage);
417 const bool isMesh = isAllMeshShadingStages(caseDef.shaderStage);
435 caseDef.format, // vk::VkFormat format;
439 if (caseDef.requiredSubgroupSize == DE_FALSE)
469 else if (isAllGraphicsStages(caseDef.shaderStage))
471 const VkShaderStageFlags stages = subgroups::getPossibleGraphicsSubgroupStages(context, caseDef.shaderStage);
476 caseDef.format, // vk::VkFormat format;
486 else if (isAllRayTracingStages(caseDef.shaderStage))
488 const VkShaderStageFlags stages = subgroups::getPossibleRayTracingSubgroupStages(context, caseDef.shaderStage);
493 caseDef.format, // vk::VkFormat format;
603 const CaseDefinition caseDef =
614 addFunctionCaseWithPrograms(computeGroupPtr, testName, supportedCheck, initPrograms, test, caseDef);
624 const CaseDefinition caseDef =
635 addFunctionCaseWithPrograms(meshGroupPtr, testName, supportedCheck, initPrograms, test, caseDef);
641 const CaseDefinition caseDef =
652 addFunctionCaseWithPrograms(graphicGroupPtr, name, supportedCheck, initPrograms, test, caseDef);
657 const CaseDefinition caseDef =
667 const string testName = name + "_" + getShaderStageName(caseDef.shaderStage);
669 addFunctionCaseWithPrograms(framebufferGroupPtr, testName, supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
673 const CaseDefinition caseDef =
683 const string testName = name + "_" + getShaderStageName(caseDef.shaderStage);
685 addFunctionCaseWithPrograms(fragHelperGroupPtr, testName, supportedCheck, initFrameBufferProgramsFrag, noSSBOtest, caseDef);
711 const CaseDefinition caseDef =
722 addFunctionCaseWithPrograms(raytracingGroup.get(), name, supportedCheck, initPrograms, test, caseDef);