Lines Matching refs:subgroups
69 return subgroups::check(datas, width, 0x1F);
113 return subgroups::checkComputeOrMesh(datas, numWorkgroups, localSize, 0x1F);
148 const string fmt = subgroups::getFormatNameForGLSL(caseDef.format);
186 const string extensions = getExtensions(arbFunctions) + subgroups::getAdditionalExtensionForFormat(caseDef.format);
189 subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, pointSize, extensions, getStageTestSource(caseDef), "");
196 const string fmt = subgroups::getFormatNameForGLSL(caseDef.format);
232 const string extensions = getExtensions(arbFunctions) + subgroups::getAdditionalExtensionForFormat(caseDef.format);
257 << " " << subgroups::getFormatNameForGLSL(caseDef.format) << " data[" << subgroups::maxSupportedSubgroupSize() << "];\n"
292 const string extensions = getExtensions(arbFunctions) + subgroups::getAdditionalExtensionForFormat(caseDef.format);
295 subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, pointSize, extensions, getStageTestSource(caseDef), "");
300 if (!subgroups::isSubgroupSupported(context))
303 if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_VOTE_BIT))
308 if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
313 if (!subgroups::is16BitUBOStorageSupported(context))
321 if (!subgroups::is8BitUBOStorageSupported(context))
348 TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
354 *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
376 subgroups::supportedCheckShader(context, caseDef.shaderStage);
386 const subgroups::SSBOData::InputDataInitializeType initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType)
387 ? subgroups::SSBOData::InitializeZero
388 : subgroups::SSBOData::InitializeNonZero;
389 const subgroups::SSBOData inputData
392 subgroups::SSBOData::LayoutStd140, // InputDataLayoutType layout;
394 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
395 subgroups::SSBOData::BindingUBO, // BindingType bindingType;
400 case VK_SHADER_STAGE_VERTEX_BIT: return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
401 case VK_SHADER_STAGE_GEOMETRY_BIT: return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
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);
404 case VK_SHADER_STAGE_FRAGMENT_BIT: return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkFragmentPipelineStages);
411 const subgroups::SSBOData::InputDataInitializeType initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType)
412 ? subgroups::SSBOData::InitializeZero
413 : subgroups::SSBOData::InitializeNonZero;
431 const subgroups::SSBOData inputData
434 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
436 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
442 return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh);
444 return subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh);
456 result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh, size);
458 result = subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh, size);
471 const VkShaderStageFlags stages = subgroups::getPossibleGraphicsSubgroupStages(context, caseDef.shaderStage);
472 const subgroups::SSBOData inputData =
475 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
477 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
478 subgroups::SSBOData::BindingSSBO, // bool isImage;
483 return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
488 const VkShaderStageFlags stages = subgroups::getPossibleRayTracingSubgroupStages(context, caseDef.shaderStage);
489 const subgroups::SSBOData inputData =
492 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
494 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
495 subgroups::SSBOData::BindingSSBO, // bool isImage;
500 return subgroups::allRayTracingStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
510 namespace subgroups
551 const vector<VkFormat> formats = subgroups::getAllFormats();
589 const string name = op + "_" + subgroups::getFormatNameForGLSL(format);
693 const vector<VkFormat> formats = subgroups::getAllRayTracingFormats();
710 const string name = op + "_" + subgroups::getFormatNameForGLSL(format);
748 } // subgroups