Lines Matching refs:subgroups
157 return subgroups::check(datas, width, 0x3);
168 return subgroups::checkComputeOrMesh(datas, numWorkgroups, localSize, 0x3);
180 subgroups::getAdditionalExtensionForFormat(caseDef.format);
200 " " + subgroups::getFormatNameForGLSL(caseDef.format) + " ref = "
236 subgroups::initStdFrameBufferPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, extHeader, testSrc, "");
251 subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, caseDef.format, *caseDef.geometryPointSizeSupported, extHeader, testSrc, "");
256 if (!subgroups::isSubgroupSupported(context))
259 if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_ARITHMETIC_BIT))
262 if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
267 if (!subgroups::is16BitUBOStorageSupported(context))
275 if (!subgroups::is8BitUBOStorageSupported(context))
297 TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
303 *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
324 subgroups::supportedCheckShader(context, caseDef.shaderStage);
329 const subgroups::SSBOData inputData =
331 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
332 subgroups::SSBOData::LayoutStd140, // InputDataLayoutType layout;
334 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
335 subgroups::SSBOData::BindingUBO, // BindingType bindingType;
340 case VK_SHADER_STAGE_VERTEX_BIT: return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
341 case VK_SHADER_STAGE_GEOMETRY_BIT: return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
342 case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, caseDef.shaderStage);
343 case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, caseDef.shaderStage);
366 const subgroups::SSBOData inputData =
368 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
369 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
371 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
377 return subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh);
379 return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh);
391 result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh, size);
393 result = subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkComputeOrMesh, size);
406 const VkShaderStageFlags stages = subgroups::getPossibleGraphicsSubgroupStages(context, caseDef.shaderStage);
407 const subgroups::SSBOData inputData =
409 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
410 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
412 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
413 subgroups::SSBOData::BindingSSBO, // bool isImage;
418 return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
423 const VkShaderStageFlags stages = subgroups::getPossibleRayTracingSubgroupStages(context, caseDef.shaderStage);
424 const subgroups::SSBOData inputData =
426 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
427 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
429 subgroups::maxSupportedSubgroupSize(), // vk::VkDeviceSize numElements;
430 subgroups::SSBOData::BindingSSBO, // bool isImage;
435 return subgroups::allRayTracingStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
445 namespace subgroups
480 const vector<VkFormat> formats = subgroups::getAllFormats();
485 const string formatName = subgroups::getFormatNameForGLSL(format);
486 const bool isBool = subgroups::isFormatBool(format);
487 const bool isFloat = subgroups::isFormatFloat(format);
590 const vector<VkFormat> formats = subgroups::getAllRayTracingFormats();
595 const string formatName = subgroups::getFormatNameForGLSL(format);
596 const bool isBool = subgroups::isFormatBool(format);
597 const bool isFloat = subgroups::isFormatFloat(format);
645 } // subgroups