Lines Matching refs:subgroups

75 	return subgroups::check(datas, width, 1);
86 return subgroups::checkComputeOrMesh(datas, numWorkgroups, localSize, 1);
109 + subgroups::getAdditionalExtensionForFormat(caseDef.format);
114 const string formatName = subgroups::getFormatNameForGLSL(caseDef.format);
115 const deUint32 stageCount = subgroups::getStagesCount(caseDef.shaderStage);
152 const string formatName = subgroups::getFormatNameForGLSL(caseDef.format);
153 const deUint32 stageCount = subgroups::getStagesCount(caseDef.shaderStage);
155 const auto b2Len = ((caseDef.argType == ArgType::DYNAMIC) ? subgroups::maxSupportedSubgroupSize() : 1u);
160 " " + formatName + " data1[" + de::toString(subgroups::maxSupportedSubgroupSize()) + "];\n"
198 " " + subgroups::getFormatNameForGLSL(caseDef.format) + " op = "
222 subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, VK_FORMAT_R32_UINT, pointSizeSupported, extHeader, testSrc, "", headDeclarations);
239 subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, VK_FORMAT_R32_UINT, pointSizeSupported, extHeader, testSrc, "", headDeclarations);
244 if (!subgroups::isSubgroupSupported(context))
251 if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_SHUFFLE_BIT))
257 if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT))
264 if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
269 if (!subgroups::is16BitUBOStorageSupported(context))
277 if (!subgroups::is8BitUBOStorageSupported(context))
299 TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
305 *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
326 subgroups::supportedCheckShader(context, caseDef.shaderStage);
331 const VkDeviceSize secondBufferSize = ((caseDef.argType == ArgType::DYNAMIC) ? subgroups::maxSupportedSubgroupSize() : 1u);
332 const subgroups::SSBOData inputData[2]
335 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
336 subgroups::SSBOData::LayoutStd140, // InputDataLayoutType layout;
338 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
339 subgroups::SSBOData::BindingUBO, // BindingType bindingType;
342 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
343 subgroups::SSBOData::LayoutStd140, // InputDataLayoutType layout;
346 subgroups::SSBOData::BindingUBO, // BindingType bindingType;
352 case VK_SHADER_STAGE_VERTEX_BIT: return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages);
353 case VK_SHADER_STAGE_GEOMETRY_BIT: return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages);
354 case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, caseDef.shaderStage);
355 case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, caseDef.shaderStage);
363 ? subgroups::SSBOData::LayoutStd430
364 : subgroups::SSBOData::LayoutStd140);
366 ? subgroups::maxSupportedSubgroupSize()
369 ? subgroups::SSBOData::BindingSSBO
370 : subgroups::SSBOData::BindingUBO);
388 const subgroups::SSBOData inputData[2]
391 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
392 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
394 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
397 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
408 return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkComputeOrMesh);
410 return subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkComputeOrMesh);
422 result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkComputeOrMesh, size);
424 result = subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkComputeOrMesh, size);
437 const VkShaderStageFlags stages = subgroups::getPossibleGraphicsSubgroupStages(context, caseDef.shaderStage);
438 const subgroups::SSBOData inputData[2]
441 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
442 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
444 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
445 subgroups::SSBOData::BindingSSBO, // bool isImage;
450 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
460 return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, stages);
465 const VkShaderStageFlags stages = subgroups::getPossibleRayTracingSubgroupStages(context, caseDef.shaderStage);
466 const subgroups::SSBOData inputData[2]
469 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
470 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
472 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
473 subgroups::SSBOData::BindingSSBO, // bool isImage;
478 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
488 return subgroups::allRayTracingStages(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, stages);
498 namespace subgroups
546 const vector<VkFormat> formats = subgroups::getAllFormats();
551 const string formatName = subgroups::getFormatNameForGLSL(format);
649 const vector<VkFormat> formats = subgroups::getAllRayTracingFormats();
654 const string formatName = subgroups::getFormatNameForGLSL(format);
696 } // subgroups