Lines Matching defs:subgroups
180 // we used an atomicly incremented counter to note how many subgroups we used for the vertex shader
308 return subgroups::checkComputeOrMesh(datas, numWorkgroups, localSize, 1);
322 return subgroups::checkComputeOrMesh(datas, numWorkgroups, localSize, ref);
465 subgroups::setVertexShaderFrameBuffer(programCollection);
1422 const deUint32 stageCount = subgroups::getStagesCount(caseDef.shaderStage);
1620 << subgroups::getSharedMemoryBallotHelper()
1783 subgroups::initStdPrograms(programCollection, buildOptions, caseDef.shaderStage, VK_FORMAT_R32_UINT, pointSizeSupport, extHeader, testSrc, "", headDeclarations, true);
1788 if (!subgroups::isSubgroupSupported(context))
1791 if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_BASIC_BIT))
1810 TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
1816 *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
1818 subgroups::supportedCheckShader(context, caseDef.shaderStage);
1822 if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
1851 vector<subgroups::SSBOData> inputDatas (inputDatasCount);
1854 inputDatas[0].layout = subgroups::SSBOData::LayoutStd140;
1856 inputDatas[0].initializeType = subgroups::SSBOData::InitializeNonZero;
1857 inputDatas[0].bindingType = subgroups::SSBOData::BindingUBO;
1860 inputDatas[1].layout = subgroups::SSBOData::LayoutStd140;
1862 inputDatas[1].initializeType = subgroups::SSBOData::InitializeNonZero;
1863 inputDatas[1].bindingType = subgroups::SSBOData::BindingUBO;
1868 inputDatas[2].layout = subgroups::SSBOData::LayoutPacked;
1870 inputDatas[2].initializeType = subgroups::SSBOData::InitializeNone;
1871 inputDatas[2].bindingType = subgroups::SSBOData::BindingImage;
1877 return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO);
1879 return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
1887 return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
1896 return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO);
1898 return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
1906 return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO, caseDef.shaderStage);
1908 return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
1943 return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeOrMeshSubgroupElect);
1945 return subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, nullptr, 0, nullptr, checkComputeOrMeshSubgroupElect);
1957 result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkComputeOrMeshSubgroupElect, size);
1959 result = subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, nullptr, 0u, nullptr, checkComputeOrMeshSubgroupElect, size);
1973 const subgroups::SSBOData inputDatas[inputDatasCount] =
1976 subgroups::SSBOData::InitializeNone, // InputDataInitializeType initializeType;
1977 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
1982 subgroups::SSBOData::InitializeNonZero, // InputDataInitializeType initializeType;
1983 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
1988 subgroups::SSBOData::InitializeNone, // InputDataInitializeType initializeType;
1989 subgroups::SSBOData::LayoutPacked, // InputDataLayoutType layout;
1992 subgroups::SSBOData::BindingImage, // bool isImage;
1999 return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkComputeOrMeshSubgroupBarriers);
2001 return subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, nullptr, checkComputeOrMeshSubgroupBarriers);
2013 result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkComputeOrMeshSubgroupBarriers, size);
2015 result = subgroups::makeMeshTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, nullptr, checkComputeOrMeshSubgroupBarriers, size);
2029 if (!subgroups::isFragmentSSBOSupportedForDevice(context))
2034 const VkShaderStageFlags stages = subgroups::getPossibleGraphicsSubgroupStages(context, caseDef.shaderStage);
2047 subgroups::SSBOData inputData[inputCount];
2053 subgroups::SSBOData::InitializeZero, // InputDataInitializeType initializeType;
2054 subgroups::SSBOData::LayoutStd430, // InputDataLayoutType layout;
2057 subgroups::SSBOData::BindingSSBO, // bool isImage;
2063 return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, inputCount, DE_NULL, checkVertexPipelineStagesSubgroupElect, stages);
2068 subgroups::SSBOData inputDatas[inputDatasCount];
2075 inputDatas[index].layout = subgroups::SSBOData::LayoutStd430;
2077 inputDatas[index].initializeType = subgroups::SSBOData::InitializeNonZero;
2082 inputDatas[index + 1].layout = subgroups::SSBOData::LayoutStd430;
2084 inputDatas[index + 1].initializeType = subgroups::SSBOData::InitializeZero;
2089 inputDatas[index + 2].layout = subgroups::SSBOData::LayoutStd430;
2091 inputDatas[index + 2].initializeType = subgroups::SSBOData::InitializeNonZero;
2096 inputDatas[index + 3].layout = subgroups::SSBOData::LayoutStd430;
2098 inputDatas[index + 3].initializeType = subgroups::SSBOData::InitializeNone;
2099 inputDatas[index + 3].bindingType = subgroups::SSBOData::BindingImage;
2104 return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkVertexPipelineStagesSubgroupBarriers, stages);
2110 const VkShaderStageFlags stages = subgroups::getPossibleRayTracingSubgroupStages(context, caseDef.shaderStage);
2125 subgroups::SSBOData inputData[inputDataCount];
2130 inputData[ndx].layout = subgroups::SSBOData::LayoutStd430;
2132 inputData[ndx].initializeType = subgroups::SSBOData::InitializeZero;
2137 return subgroups::allRayTracingStages(context, VK_FORMAT_R32_UINT, inputData, inputDataCount, DE_NULL, checkVertexPipelineStagesSubgroupElect, stages);
2143 subgroups::SSBOData inputDatas[inputDatasCount];
2152 inputDatas[index + perStageNdx].layout = subgroups::SSBOData::LayoutStd430;
2154 inputDatas[index + perStageNdx].bindingType = subgroups::SSBOData::BindingSSBO;
2158 inputDatas[index + 0].initializeType = subgroups::SSBOData::InitializeNonZero;
2162 inputDatas[index + 1].initializeType = subgroups::SSBOData::InitializeZero;
2166 inputDatas[index + 2].initializeType = subgroups::SSBOData::InitializeNonZero;
2170 inputDatas[index + 3].initializeType = subgroups::SSBOData::InitializeNone;
2171 inputDatas[index + 3].bindingType = subgroups::SSBOData::BindingImage;
2175 return subgroups::allRayTracingStages(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkVertexPipelineStagesSubgroupBarriers, stages);
2186 namespace subgroups
2318 } // subgroups