Lines Matching full:glu

56 static int getTypeSize(glu::DataType type)  in getTypeSize()
58 if (type == glu::TYPE_FLOAT) in getTypeSize()
60 else if (type == glu::TYPE_INT || type == glu::TYPE_UINT) in getTypeSize()
62 else if (type == glu::TYPE_BOOL) in getTypeSize()
69 static int getVarTypeSize(const glu::VarType &type) in getVarTypeSize()
72 return glu::getDataTypeScalarSize(type.getBasicType()) * in getVarTypeSize()
73 getTypeSize(glu::getDataTypeScalarType(type.getBasicType())); in getVarTypeSize()
83 if (type.getArraySize() == glu::VarType::UNSIZED_ARRAY) in getVarTypeSize()
162 static glu::ShaderType getShaderMaskFirstStage(uint32_t mask) in getShaderMaskFirstStage()
164 if (mask & (1u << glu::SHADERTYPE_COMPUTE)) in getShaderMaskFirstStage()
165 return glu::SHADERTYPE_COMPUTE; in getShaderMaskFirstStage()
167 if (mask & (1u << glu::SHADERTYPE_VERTEX)) in getShaderMaskFirstStage()
168 return glu::SHADERTYPE_VERTEX; in getShaderMaskFirstStage()
170 if (mask & (1u << glu::SHADERTYPE_TESSELLATION_CONTROL)) in getShaderMaskFirstStage()
171 return glu::SHADERTYPE_TESSELLATION_CONTROL; in getShaderMaskFirstStage()
173 if (mask & (1u << glu::SHADERTYPE_TESSELLATION_EVALUATION)) in getShaderMaskFirstStage()
174 return glu::SHADERTYPE_TESSELLATION_EVALUATION; in getShaderMaskFirstStage()
176 if (mask & (1u << glu::SHADERTYPE_GEOMETRY)) in getShaderMaskFirstStage()
177 return glu::SHADERTYPE_GEOMETRY; in getShaderMaskFirstStage()
179 if (mask & (1u << glu::SHADERTYPE_FRAGMENT)) in getShaderMaskFirstStage()
180 return glu::SHADERTYPE_FRAGMENT; in getShaderMaskFirstStage()
183 return glu::SHADERTYPE_LAST; in getShaderMaskFirstStage()
186 static glu::ShaderType getShaderMaskLastStage(uint32_t mask) in getShaderMaskLastStage()
188 if (mask & (1u << glu::SHADERTYPE_FRAGMENT)) in getShaderMaskLastStage()
189 return glu::SHADERTYPE_FRAGMENT; in getShaderMaskLastStage()
191 if (mask & (1u << glu::SHADERTYPE_GEOMETRY)) in getShaderMaskLastStage()
192 return glu::SHADERTYPE_GEOMETRY; in getShaderMaskLastStage()
194 if (mask & (1u << glu::SHADERTYPE_TESSELLATION_EVALUATION)) in getShaderMaskLastStage()
195 return glu::SHADERTYPE_TESSELLATION_EVALUATION; in getShaderMaskLastStage()
197 if (mask & (1u << glu::SHADERTYPE_TESSELLATION_CONTROL)) in getShaderMaskLastStage()
198 return glu::SHADERTYPE_TESSELLATION_CONTROL; in getShaderMaskLastStage()
200 if (mask & (1u << glu::SHADERTYPE_VERTEX)) in getShaderMaskLastStage()
201 return glu::SHADERTYPE_VERTEX; in getShaderMaskLastStage()
203 if (mask & (1u << glu::SHADERTYPE_COMPUTE)) in getShaderMaskLastStage()
204 return glu::SHADERTYPE_COMPUTE; in getShaderMaskLastStage()
207 return glu::SHADERTYPE_LAST; in getShaderMaskLastStage()
213 …return contextSupports(ctxType, glu::ApiType::es(3, 2)) || contextSupports(ctxType, glu::ApiType::… in checkSupport()
218 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(context.getRenderContext().get… in specializeShader()
221 specializationMap["GLSL_VERSION_DECL"] = glu::getGLSLVersionDeclaration(glslVersion); in specializeShader()
287 Shader(const SharedPtr &enclosingNode, glu::ShaderType type, glu::GLSLVersion version) in Shader()
293 DE_ASSERT(type < glu::SHADERTYPE_LAST); in Shader()
296 const glu::ShaderType m_type;
297 const glu::GLSLVersion m_version;
313 StorageQualifier(const SharedPtr &enclosing, glu::Storage storage) in StorageQualifier()
321 const glu::Storage m_storage;
327 …Variable(const SharedPtr &enclosing, glu::DataType dataType) : Node(TYPE_VARIABLE, enclosing), m_d… in Variable()
335 const glu::DataType m_dataType;
394 LayoutQualifier(const SharedPtr &enclosing, const glu::Layout &layout) in LayoutQualifier()
403 const glu::Layout m_layout;
409 InterpolationQualifier(const SharedPtr &enclosing, const glu::Interpolation &interpolation) in InterpolationQualifier()
418 const glu::Interpolation m_interpolation;
424 ShaderSet(const SharedPtr &enclosing, glu::GLSLVersion version);
425 ShaderSet(const SharedPtr &enclosing, glu::GLSLVersion version, uint32_t stagesPresentBits,
428 void setStage(glu::ShaderType type, bool referencing);
429 bool isStagePresent(glu::ShaderType stage) const;
430 bool isStageReferencing(glu::ShaderType stage) const;
434 const glu::GLSLVersion m_version;
437 bool m_stagePresent[glu::SHADERTYPE_LAST];
438 bool m_stageReferencing[glu::SHADERTYPE_LAST];
441 ShaderSet::ShaderSet(const SharedPtr &enclosing, glu::GLSLVersion version) in ShaderSet()
451 ShaderSet::ShaderSet(const SharedPtr &enclosing, glu::GLSLVersion version, uint32_t stagesPresentBi… in ShaderSet()
456 for (uint32_t stageNdx = 0; stageNdx < glu::SHADERTYPE_LAST; ++stageNdx) in ShaderSet()
469 void ShaderSet::setStage(glu::ShaderType type, bool referencing) in setStage()
471 DE_ASSERT(type < glu::SHADERTYPE_LAST); in setStage()
476 bool ShaderSet::isStagePresent(glu::ShaderType stage) const in isStagePresent()
478 DE_ASSERT(stage < glu::SHADERTYPE_LAST); in isStagePresent()
482 bool ShaderSet::isStageReferencing(glu::ShaderType stage) const in isStageReferencing()
484 DE_ASSERT(stage < glu::SHADERTYPE_LAST); in isStageReferencing()
491 for (uint32_t stage = 0; stage < glu::SHADERTYPE_LAST; ++stage) in getReferencingMask()
513 static glu::Precision getDataTypeDefaultPrecision(const glu::DataType &type) in getDataTypeDefaultPrecision()
515 if (glu::isDataTypeBoolOrBVec(type)) in getDataTypeDefaultPrecision()
516 return glu::PRECISION_LAST; in getDataTypeDefaultPrecision()
517 else if (glu::isDataTypeScalarOrVector(type) || glu::isDataTypeMatrix(type)) in getDataTypeDefaultPrecision()
518 return glu::PRECISION_HIGHP; in getDataTypeDefaultPrecision()
519 else if (glu::isDataTypeSampler(type)) in getDataTypeDefaultPrecision()
520 return glu::PRECISION_HIGHP; in getDataTypeDefaultPrecision()
521 else if (glu::isDataTypeImage(type)) in getDataTypeDefaultPrecision()
522 return glu::PRECISION_HIGHP; in getDataTypeDefaultPrecision()
523 else if (type == glu::TYPE_UINT_ATOMIC_COUNTER) in getDataTypeDefaultPrecision()
524 return glu::PRECISION_HIGHP; in getDataTypeDefaultPrecision()
527 return glu::PRECISION_LAST; in getDataTypeDefaultPrecision()
549 …const glu::DataType basicType = static_cast<const ResourceDefinition::Variable *>(resource)->m_dat… in generateProgramDefinitionFromResource()
551glu::VariableDeclaration variable(glu::VarType(basicType, getDataTypeDefaultPrecision(basicType)),… in generateProgramDefinitionFromResource()
552 glu::InterfaceBlock interfaceBlock; in generateProgramDefinitionFromResource()
558 if (glu::isDataTypeImage(basicType)) in generateProgramDefinitionFromResource()
560 variable.memoryAccessQualifierBits |= glu::MEMORYACCESSQUALIFIER_READONLY_BIT; in generateProgramDefinitionFromResource()
563 if (basicType >= glu::TYPE_IMAGE_2D && basicType <= glu::TYPE_IMAGE_3D) in generateProgramDefinitionFromResource()
564 variable.layout.format = glu::FORMATLAYOUT_RGBA8; in generateProgramDefinitionFromResource()
565 else if (basicType >= glu::TYPE_INT_IMAGE_2D && basicType <= glu::TYPE_INT_IMAGE_3D) in generateProgramDefinitionFromResource()
566 variable.layout.format = glu::FORMATLAYOUT_RGBA8I; in generateProgramDefinitionFromResource()
567 else if (basicType >= glu::TYPE_UINT_IMAGE_2D && basicType <= glu::TYPE_UINT_IMAGE_3D) in generateProgramDefinitionFromResource()
568 variable.layout.format = glu::FORMATLAYOUT_RGBA8UI; in generateProgramDefinitionFromResource()
574 if (basicType == glu::TYPE_UINT_ATOMIC_COUNTER) in generateProgramDefinitionFromResource()
588 DE_ASSERT(variable.storage == glu::STORAGE_LAST); in generateProgramDefinitionFromResource()
593 DE_ASSERT(interfaceBlock.storage == glu::STORAGE_LAST); in generateProgramDefinitionFromResource()
603 glu::Layout *targetLayout = DE_NULL; in generateProgramDefinitionFromResource()
623 if (qualifier->m_layout.format != glu::FORMATLAYOUT_LAST) in generateProgramDefinitionFromResource()
626 if (qualifier->m_layout.matrixOrder != glu::MATRIXORDER_LAST) in generateProgramDefinitionFromResource()
658 arraySize = glu::VarType::UNSIZED_ARRAY; in generateProgramDefinitionFromResource()
663 variable.varType = glu::VarType(variable.varType, arraySize); in generateProgramDefinitionFromResource()
678 DE_ASSERT(variable.interpolation == glu::INTERPOLATION_LAST); in generateProgramDefinitionFromResource()
679 DE_ASSERT(variable.layout == glu::Layout()); in generateProgramDefinitionFromResource()
681 DE_ASSERT(variable.storage == glu::STORAGE_LAST); in generateProgramDefinitionFromResource()
684 glu::StructType *structPtr = in generateProgramDefinitionFromResource()
685 new glu::StructType(("StructType" + de::toString(structNdx++)).c_str()); in generateProgramDefinitionFromResource()
688 variable = glu::VariableDeclaration(glu::VarType(structPtr), "target"); in generateProgramDefinitionFromResource()
741 for (int shaderType = 0; shaderType < glu::SHADERTYPE_LAST; ++shaderType) in generateProgramDefinitionFromResource()
743 if (shaderDef->isStagePresent((glu::ShaderType)shaderType)) in generateProgramDefinitionFromResource()
746 program->addShader((glu::ShaderType)shaderType, shaderDef->m_version); in generateProgramDefinitionFromResource()
748 if (shaderDef->isStageReferencing((glu::ShaderType)shaderType)) in generateProgramDefinitionFromResource()
823 for (int shaderType = 0; shaderType < glu::SHADERTYPE_LAST; ++shaderType) in generateProgramDefinitionFromResource()
824 if (shaderDef->isStagePresent((glu::ShaderType)shaderType)) in generateProgramDefinitionFromResource()
825 program->addShader((glu::ShaderType)shaderType, shaderDef->m_version); in generateProgramDefinitionFromResource()
863 if (program->hasStage(glu::SHADERTYPE_GEOMETRY)) in generateProgramDefinitionFromResource()
865 if (program->hasStage(glu::SHADERTYPE_TESSELLATION_CONTROL) || in generateProgramDefinitionFromResource()
866 program->hasStage(glu::SHADERTYPE_TESSELLATION_EVALUATION)) in generateProgramDefinitionFromResource()
872 static void checkAndLogProgram(const glu::ShaderProgram &program, in checkAndLogProgram()
940 if ((m_programDefinition->hasStage(glu::SHADERTYPE_TESSELLATION_CONTROL) || in init()
941 m_programDefinition->hasStage(glu::SHADERTYPE_TESSELLATION_EVALUATION)) && in init()
946 if (m_programDefinition->hasStage(glu::SHADERTYPE_GEOMETRY) && !supportsES32orGL45 && in init()
968 const glu::ShaderProgram program(m_context.getRenderContext(), in iterate()
1009 …m_testCtx.getLog() << tcu::TestLog::Message << "Querying " << glu::getProgramInterfaceName(program… in queryResourceList()
1242 …if (storageDef->m_storage == glu::STORAGE_PATCH_IN || storageDef->m_storage == glu::STORAGE_PATCH_… in genTestCaseName()
1303 const glu::ShaderType firstStage = getShaderMaskFirstStage(stageBits); in isArrayedInterface()
1304 return firstStage == glu::SHADERTYPE_TESSELLATION_CONTROL || in isArrayedInterface()
1305 … firstStage == glu::SHADERTYPE_TESSELLATION_EVALUATION || firstStage == glu::SHADERTYPE_GEOMETRY; in isArrayedInterface()
1309 const glu::ShaderType lastStage = getShaderMaskLastStage(stageBits); in isArrayedInterface()
1310 return lastStage == glu::SHADERTYPE_TESSELLATION_CONTROL; in isArrayedInterface()
1393 return convertGLTypeNameToTestName(glu::getDataTypeName(variable->m_dataType)); in genTestCaseName()
1420 uniformType = std::string(" ") + glu::getStorageName(storageDef->m_storage); in genMultilineDescription()
1421 … structureDescriptor << "\n\tdeclared as \"" << glu::getStorageName(storageDef->m_storage) << "\""; in genMultilineDescription()
1437 …buf << "Querying properties of " << glu::getDataTypeName(varDef->m_dataType) << uniformType << " v… in genMultilineDescription()
1439 << "\t" << glu::getDataTypeName(varDef->m_dataType) << structureDescriptor.str(); in genMultilineDescription()
1490 …const glu::ShaderProgram program(m_context.getRenderContext(), glu::ProgramSources() << glu::Compu… in iterate()
1620 …const glu::ShaderProgram program(m_context.getRenderContext(), glu::ProgramSources() << glu::Compu… in iterate()
1712 …InterfaceBlockBaseCase(Context &context, const char *name, const char *description, glu::Storage s…
1721 const glu::Storage m_storage;
1727 glu::Storage storage, CaseType caseType) in InterfaceBlockBaseCase()
1733 DE_ASSERT(storage == glu::STORAGE_UNIFORM || storage == glu::STORAGE_BUFFER); in InterfaceBlockBaseCase()
1743 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
1747 shader = m_program->addShader(glu::SHADERTYPE_COMPUTE, glslVersion); in init()
1751 glu::InterfaceBlock precedingInterfaceBlock; in init()
1759glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "precedingMembe… in init()
1762 if (m_storage == glu::STORAGE_BUFFER) in init()
1763 precedingInterfaceBlock.variables.push_back(glu::VariableDeclaration( in init()
1764glu::VarType(glu::VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), glu::VarType::UNSIZED_ARRAY), in init()
1767 precedingInterfaceBlock.variables.push_back(glu::VariableDeclaration( in init()
1768glu::VarType(glu::VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), 2), "precedingMemberArray")); in init()
1775 glu::InterfaceBlock targetInterfaceBlock; in init()
1792glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "blockMemberBas… in init()
1797 targetInterfaceBlock.variables.push_back(glu::VariableDeclaration( in init()
1798glu::VarType(glu::VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), 3), "blockMemberArray")); in init()
1803 glu::StructType *structPtr = new glu::StructType("StructType"); in init()
1804 …structPtr->addMember("structMemberBasic", glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP)… in init()
1806glu::VarType(glu::VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), 2)); in init()
1809glu::VariableDeclaration(glu::VarType(glu::VarType(structPtr), 2), "blockMemberStruct")); in init()
1813 if (m_storage == glu::STORAGE_BUFFER) in init()
1814 targetInterfaceBlock.variables.push_back(glu::VariableDeclaration( in init()
1815glu::VarType(glu::VarType(glu::TYPE_FLOAT, glu::PRECISION_HIGHP), glu::VarType::UNSIZED_ARRAY), in init()
1823 glu::InterfaceBlock trailingInterfaceBlock; in init()
1830glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "trailingMember… in init()
1848 glu::Storage storage, CaseType caseType);
1856glu::Storage storage, CaseType caseType) in InterfaceBlockActiveVariablesTestCase()
1864 (m_storage == glu::STORAGE_UNIFORM) ? (PROGRAMINTERFACE_UNIFORM_BLOCK) : in iterate()
1865 (m_storage == glu::STORAGE_BUFFER) ? (PROGRAMINTERFACE_SHADER_STORAGE_BLOCK) : in iterate()
1868 …const glw::GLenum programMemberInterfaceValue = (m_storage == glu::STORAGE_UNIFORM) ? (GL_UNIFORM)… in iterate()
1869 … (m_storage == glu::STORAGE_BUFFER) ? (GL_BUFFER_VARIABLE) : in iterate()
1872glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSources(m_… in iterate()
2058 glu::InterfaceBlock *block = DE_NULL; in iterate()
2059 const std::string blockName = glu::parseVariableName(blockNames[blockNdx].c_str()); in iterate()
2157 …InterfaceBlockDataSizeTestCase(Context &context, const char *name, const char *description, glu::S…
2163 int getBlockMinDataSize(const glu::InterfaceBlock &block) const;
2167 … const char *description, glu::Storage storage, in InterfaceBlockDataSizeTestCase()
2176 (m_storage == glu::STORAGE_UNIFORM) ? (PROGRAMINTERFACE_UNIFORM_BLOCK) : in iterate()
2177 (m_storage == glu::STORAGE_BUFFER) ? (PROGRAMINTERFACE_SHADER_STORAGE_BLOCK) : in iterate()
2181glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSources(m_… in iterate()
2238 const std::string blockName = glu::parseVariableName(blockFullName.c_str()); in getBlockMinDataSize()
2285glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().getType… in init()
2288 shader = m_program->addShader(glu::SHADERTYPE_COMPUTE, glslVersion); in init()
2291glu::VariableDeclaration decl(glu::VarType(glu::TYPE_UINT_ATOMIC_COUNTER, glu::PRECISION_LAST), in init()
2292 "binding1_counter1", glu::STORAGE_UNIFORM); in init()
2297glu::VariableDeclaration decl(glu::VarType(glu::TYPE_UINT_ATOMIC_COUNTER, glu::PRECISION_LAST), in init()
2298 "binding1_counter2", glu::STORAGE_UNIFORM); in init()
2305glu::VariableDeclaration decl(glu::VarType(glu::TYPE_UINT_ATOMIC_COUNTER, glu::PRECISION_LAST), in init()
2306 "binding2_counter1", glu::STORAGE_UNIFORM); in init()
2327 glu::isDataTypeAtomicCounter( in getNumAtomicCounterBuffers()
2345 glu::isDataTypeAtomicCounter( in getMaxNumActiveVariables()
2370 glu::isDataTypeAtomicCounter( in getBufferVariableCount()
2387 glu::isDataTypeAtomicCounter( in getBufferMinimumDataSize()
2420 …const glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSour… in iterate()
2472 …const glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSour… in iterate()
2717 …const glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSour… in iterate()
2776 …const glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSour… in iterate()
2870 const uint32_t geometryMask = (1 << glu::SHADERTYPE_GEOMETRY); in init()
2872 … (1 << glu::SHADERTYPE_TESSELLATION_CONTROL) | (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION); in init()
2873glu::VariableDeclaration atomicVar(glu::VarType(glu::TYPE_UINT_ATOMIC_COUNTER, glu::PRECISION_LAST… in init()
2874 "targetCounter", glu::STORAGE_UNIFORM); in init()
2875 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
2890 for (int shaderType = 0; shaderType < glu::SHADERTYPE_LAST; ++shaderType) in init()
2893 m_program->addShader((glu::ShaderType)shaderType, glslVersion) in init()
2897 m_program->addShader((glu::ShaderType)shaderType, glslVersion); in init()
2900 if (m_program->hasStage(glu::SHADERTYPE_GEOMETRY)) in init()
2902 if (m_program->hasStage(glu::SHADERTYPE_TESSELLATION_CONTROL) || in init()
2903 m_program->hasStage(glu::SHADERTYPE_TESSELLATION_EVALUATION)) in init()
2917 const glu::RenderContext &rc = m_context.getRenderContext(); in iterate()
2918 const bool isES32orGL45 = glu::contextSupports(rc.getType(), glu::ApiType::es(3, 2)) || in iterate()
2919 glu::contextSupports(rc.getType(), glu::ApiType::core(4, 5)); in iterate()
2924 glu::ShaderType shaderType; in iterate()
2927 {GL_REFERENCED_BY_VERTEX_SHADER, glu::SHADERTYPE_VERTEX, DE_NULL}, in iterate()
2928 {GL_REFERENCED_BY_FRAGMENT_SHADER, glu::SHADERTYPE_FRAGMENT, DE_NULL}, in iterate()
2929 {GL_REFERENCED_BY_COMPUTE_SHADER, glu::SHADERTYPE_COMPUTE, DE_NULL}, in iterate()
2930 {GL_REFERENCED_BY_TESS_CONTROL_SHADER, glu::SHADERTYPE_TESSELLATION_CONTROL, in iterate()
2932 {GL_REFERENCED_BY_TESS_EVALUATION_SHADER, glu::SHADERTYPE_TESSELLATION_EVALUATION, in iterate()
2934 {GL_REFERENCED_BY_GEOMETRY_SHADER, glu::SHADERTYPE_GEOMETRY, in iterate()
2939 const glu::ShaderProgram program(rc, generateProgramInterfaceProgramSources(m_program)); in iterate()
2956 …m_testCtx.getLog() << tcu::TestLog::Message << "Verifying " << glu::getProgramResourcePropertyName… in iterate()
2957 … << ", expecting " << glu::getBooleanName(expected) << tcu::TestLog::EndMessage; in iterate()
2971 … m_testCtx.getLog() << tcu::TestLog::Message << glu::getProgramResourcePropertyName(prop) << " = " in iterate()
2972 << glu::getBooleanStr(value) << tcu::TestLog::EndMessage; in iterate()
3006 glu::Storage targetStorage, CaseType caseType);
3015 const glu::Storage m_targetStorage;
3021glu::Storage targetStorage, CaseType caseType) in ProgramInputOutputReferencedByCase()
3052glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().getType… in init()
3059 …const bool isInputCase = (m_targetStorage == glu::STORAGE_IN || m_targetStorage == glu::STORAGE_PA… in init()
3061 (m_targetStorage == glu::STORAGE_PATCH_IN || m_targetStorage == glu::STORAGE_PATCH_OUT); in init()
3063 …const glu::VariableDeclaration targetDecl(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP)… in init()
3065 const glu::ShaderType shaderType = in init()
3066 (m_caseType == CASE_SEPARABLE_VERTEX) ? (glu::SHADERTYPE_VERTEX) : in init()
3067 (m_caseType == CASE_SEPARABLE_FRAGMENT) ? (glu::SHADERTYPE_FRAGMENT) : in init()
3068 (m_caseType == CASE_SEPARABLE_GEOMETRY) ? (glu::SHADERTYPE_GEOMETRY) : in init()
3069 (m_caseType == CASE_SEPARABLE_TESS_CTRL) ? (glu::SHADERTYPE_TESSELLATION_CONTROL) : in init()
3070 (m_caseType == CASE_SEPARABLE_TESS_EVAL) ? (glu::SHADERTYPE_TESSELLATION_EVALUATION) : in init()
3071 (glu::SHADERTYPE_LAST); in init()
3072 const bool arrayedInterface = (isInputCase) ? ((shaderType == glu::SHADERTYPE_GEOMETRY) || in init()
3073 … (shaderType == glu::SHADERTYPE_TESSELLATION_CONTROL) || in init()
3074 … (shaderType == glu::SHADERTYPE_TESSELLATION_EVALUATION)) : in init()
3075 … (shaderType == glu::SHADERTYPE_TESSELLATION_CONTROL); in init()
3081 …const glu::VariableDeclaration targetDeclArr(glu::VarType(targetDecl.varType, glu::VarType::UNSIZE… in init()
3093 …ProgramInterfaceDefinition::Shader *vertex = m_program->addShader(glu::SHADERTYPE_VERTEX, glslVe… in init()
3094 …ProgramInterfaceDefinition::Shader *fragment = m_program->addShader(glu::SHADERTYPE_FRAGMENT, glsl… in init()
3098 vertex->getDefaultBlock().variables.push_back(glu::VariableDeclaration( in init()
3099glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "shaderInput", glu::STORAGE_IN)); in init()
3101glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "shaderOutput", in init()
3102 glu::STORAGE_OUT, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3105glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "shaderOutput", in init()
3106 glu::STORAGE_OUT, glu::INTERPOLATION_LAST, glu::Layout(0))); in init()
3108glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "shaderInput", in init()
3109 glu::STORAGE_IN, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3114 m_program->addShader(glu::SHADERTYPE_TESSELLATION_CONTROL, glslVersion); in init()
3116 m_program->addShader(glu::SHADERTYPE_TESSELLATION_EVALUATION, glslVersion); in init()
3118 tessCtrl->getDefaultBlock().variables.push_back(glu::VariableDeclaration( in init()
3119glu::VarType(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), glu::VarType::UNSIZED_ARRAY… in init()
3120 "shaderInput", glu::STORAGE_IN, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3121 tessCtrl->getDefaultBlock().variables.push_back(glu::VariableDeclaration( in init()
3122glu::VarType(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), glu::VarType::UNSIZED_ARRAY… in init()
3123 "shaderOutput", glu::STORAGE_OUT, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3125 tessEval->getDefaultBlock().variables.push_back(glu::VariableDeclaration( in init()
3126glu::VarType(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), glu::VarType::UNSIZED_ARRAY… in init()
3127 "shaderInput", glu::STORAGE_IN, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3129glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "shaderOutput", in init()
3130glu::STORAGE_OUT, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3135 …ProgramInterfaceDefinition::Shader *geometry = m_program->addShader(glu::SHADERTYPE_GEOMETRY, glsl… in init()
3137 geometry->getDefaultBlock().variables.push_back(glu::VariableDeclaration( in init()
3138glu::VarType(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), glu::VarType::UNSIZED_ARRAY… in init()
3139 "shaderInput", glu::STORAGE_IN, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3141glu::VariableDeclaration(glu::VarType(glu::TYPE_FLOAT_VEC4, glu::PRECISION_HIGHP), "shaderOutput", in init()
3142glu::STORAGE_OUT, glu::INTERPOLATION_LAST, glu::Layout(1))); in init()
3148 if (m_program->hasStage(glu::SHADERTYPE_GEOMETRY)) in init()
3150 if (m_program->hasStage(glu::SHADERTYPE_TESSELLATION_CONTROL) || in init()
3151 m_program->hasStage(glu::SHADERTYPE_TESSELLATION_EVALUATION)) in init()
3168 glu::ShaderType shaderType; in iterate()
3171 {GL_REFERENCED_BY_VERTEX_SHADER, glu::SHADERTYPE_VERTEX, DE_NULL}, in iterate()
3172 {GL_REFERENCED_BY_FRAGMENT_SHADER, glu::SHADERTYPE_FRAGMENT, DE_NULL}, in iterate()
3173 {GL_REFERENCED_BY_COMPUTE_SHADER, glu::SHADERTYPE_COMPUTE, DE_NULL}, in iterate()
3174 …{GL_REFERENCED_BY_TESS_CONTROL_SHADER, glu::SHADERTYPE_TESSELLATION_CONTROL, "GL_EXT_tessellation_… in iterate()
3175 {GL_REFERENCED_BY_TESS_EVALUATION_SHADER, glu::SHADERTYPE_TESSELLATION_EVALUATION, in iterate()
3177 {GL_REFERENCED_BY_GEOMETRY_SHADER, glu::SHADERTYPE_GEOMETRY, "GL_EXT_geometry_shader"}, in iterate()
3180 …const bool isInputCase = (m_targetStorage == glu::STORAGE_IN || m_targetStorage == glu::STORAGE_… in iterate()
3182 …const glu::ShaderProgram program(m_context.getRenderContext(), generateProgramInterfaceProgramSour… in iterate()
3215 …m_testCtx.getLog() << tcu::TestLog::Message << "Verifying " << glu::getProgramResourcePropertyName… in iterate()
3231 … m_testCtx.getLog() << tcu::TestLog::Message << glu::getProgramResourcePropertyName(prop) << " = " in iterate()
3232 << glu::getBooleanStr(value) << tcu::TestLog::EndMessage; in iterate()
3272 const glu::ShaderProgram program(m_context.getRenderContext(), in iterate()
3319 int InterfaceBlockDataSizeTestCase::getBlockMinDataSize(const glu::InterfaceBlock &block) const in getBlockMinDataSize()
3329 static bool isDataTypeLayoutQualified(glu::DataType type) in isDataTypeLayoutQualified()
3331 return glu::isDataTypeImage(type) || glu::isDataTypeAtomicCounter(type); in isDataTypeLayoutQualified()
3342 glu::DataType dataType; in generateVariableCases()
3344 {0, glu::TYPE_FLOAT}, {1, glu::TYPE_INT}, {1, glu::TYPE_UINT}, in generateVariableCases()
3345 {1, glu::TYPE_BOOL}, in generateVariableCases()
3347 {3, glu::TYPE_FLOAT_VEC2}, {1, glu::TYPE_FLOAT_VEC3}, {1, glu::TYPE_FLOAT_VEC4}, in generateVariableCases()
3349 {3, glu::TYPE_INT_VEC2}, {2, glu::TYPE_INT_VEC3}, {3, glu::TYPE_INT_VEC4}, in generateVariableCases()
3351 {3, glu::TYPE_UINT_VEC2}, {2, glu::TYPE_UINT_VEC3}, {3, glu::TYPE_UINT_VEC4}, in generateVariableCases()
3353 {3, glu::TYPE_BOOL_VEC2}, {2, glu::TYPE_BOOL_VEC3}, {3, glu::TYPE_BOOL_VEC4}, in generateVariableCases()
3355 {2, glu::TYPE_FLOAT_MAT2}, {3, glu::TYPE_FLOAT_MAT2X3}, {3, glu::TYPE_FLOAT_MAT2X4}, in generateVariableCases()
3356 {2, glu::TYPE_FLOAT_MAT3X2}, {2, glu::TYPE_FLOAT_MAT3}, {3, glu::TYPE_FLOAT_MAT3X4}, in generateVariableCases()
3357 {2, glu::TYPE_FLOAT_MAT4X2}, {3, glu::TYPE_FLOAT_MAT4X3}, {2, glu::TYPE_FLOAT_MAT4}, in generateVariableCases()
3389 glu::DataType dataType; in generateOpaqueTypeCases()
3391 {0, glu::TYPE_SAMPLER_2D}, in generateOpaqueTypeCases()
3392 {2, glu::TYPE_SAMPLER_CUBE}, in generateOpaqueTypeCases()
3393 {1, glu::TYPE_SAMPLER_2D_ARRAY}, in generateOpaqueTypeCases()
3394 {1, glu::TYPE_SAMPLER_3D}, in generateOpaqueTypeCases()
3395 {2, glu::TYPE_SAMPLER_2D_SHADOW}, in generateOpaqueTypeCases()
3396 {3, glu::TYPE_SAMPLER_CUBE_SHADOW}, in generateOpaqueTypeCases()
3397 {3, glu::TYPE_SAMPLER_2D_ARRAY_SHADOW}, in generateOpaqueTypeCases()
3398 {1, glu::TYPE_INT_SAMPLER_2D}, in generateOpaqueTypeCases()
3399 {3, glu::TYPE_INT_SAMPLER_CUBE}, in generateOpaqueTypeCases()
3400 {3, glu::TYPE_INT_SAMPLER_2D_ARRAY}, in generateOpaqueTypeCases()
3401 {3, glu::TYPE_INT_SAMPLER_3D}, in generateOpaqueTypeCases()
3402 {2, glu::TYPE_UINT_SAMPLER_2D}, in generateOpaqueTypeCases()
3403 {3, glu::TYPE_UINT_SAMPLER_CUBE}, in generateOpaqueTypeCases()
3404 {3, glu::TYPE_UINT_SAMPLER_2D_ARRAY}, in generateOpaqueTypeCases()
3405 {3, glu::TYPE_UINT_SAMPLER_3D}, in generateOpaqueTypeCases()
3406 {2, glu::TYPE_SAMPLER_2D_MULTISAMPLE}, in generateOpaqueTypeCases()
3407 {2, glu::TYPE_INT_SAMPLER_2D_MULTISAMPLE}, in generateOpaqueTypeCases()
3408 {3, glu::TYPE_UINT_SAMPLER_2D_MULTISAMPLE}, in generateOpaqueTypeCases()
3409 {1, glu::TYPE_IMAGE_2D}, in generateOpaqueTypeCases()
3410 {3, glu::TYPE_IMAGE_CUBE}, in generateOpaqueTypeCases()
3411 {3, glu::TYPE_IMAGE_2D_ARRAY}, in generateOpaqueTypeCases()
3412 {3, glu::TYPE_IMAGE_3D}, in generateOpaqueTypeCases()
3413 {3, glu::TYPE_INT_IMAGE_2D}, in generateOpaqueTypeCases()
3414 {3, glu::TYPE_INT_IMAGE_CUBE}, in generateOpaqueTypeCases()
3415 {1, glu::TYPE_INT_IMAGE_2D_ARRAY}, in generateOpaqueTypeCases()
3416 {3, glu::TYPE_INT_IMAGE_3D}, in generateOpaqueTypeCases()
3417 {2, glu::TYPE_UINT_IMAGE_2D}, in generateOpaqueTypeCases()
3418 {3, glu::TYPE_UINT_IMAGE_CUBE}, in generateOpaqueTypeCases()
3419 {3, glu::TYPE_UINT_IMAGE_2D_ARRAY}, in generateOpaqueTypeCases()
3420 {3, glu::TYPE_UINT_IMAGE_3D}, in generateOpaqueTypeCases()
3421 {1, glu::TYPE_UINT_ATOMIC_COUNTER}, in generateOpaqueTypeCases()
3540 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_UNIFORM)); in generateUniformCaseBlocks()
3597 new ResourceDefinition::Variable(parentStructure, glu::TYPE_FLOAT_VEC4)); in generateBufferBackedResourceListBlockContentCases()
3620 … ProgramResourcePropFlags targetProp, glu::DataType dataType, in generateBufferBackedVariableAggregateTypeCases()
3683 … PROGRAMRESOURCEPROP_ARRAY_SIZE, glu::TYPE_FLOAT, "", 3); in generateUniformBlockArraySizeContents()
3690 … PROGRAMRESOURCEPROP_ARRAY_SIZE, glu::TYPE_FLOAT, "", 2); in generateUniformBlockArraySizeContents()
3696 const std::string &namePrefix, ProgramInterface interface, glu::DataType type, int expandLevel) in generateBufferBackedArrayStrideTypeAggregateSubCases()
3723 ProgramInterface interface, glu::DataType type, int expandLevel, bool includeBaseCase) in generateBufferBackedArrayStrideTypeAggregateCases()
3727 const std::string namePrefix = glu::getDataTypeName(type); in generateBufferBackedArrayStrideTypeAggregateCases()
3739 if (!glu::isDataTypeAtomicCounter(type)) in generateBufferBackedArrayStrideTypeAggregateCases()
3779 … context, parentStructure, blockGroup, queryTarget.interface, glu::TYPE_SAMPLER_2D, 1, false); in generateUniformBlockArrayStrideContents()
3785 new ResourceDefinition::LayoutQualifier(parentStructure, glu::Layout(-1, 0))); in generateUniformBlockArrayStrideContents()
3787glu::TYPE_UINT_ATOMIC_COUNTER, 1, false); in generateUniformBlockArrayStrideContents()
3792 … queryTarget.interface, glu::TYPE_FLOAT, 2, false); in generateUniformBlockArrayStrideContents()
3796 … queryTarget.interface, glu::TYPE_BOOL, 1, false); in generateUniformBlockArrayStrideContents()
3800 … queryTarget.interface, glu::TYPE_BOOL_VEC3, 2, false); in generateUniformBlockArrayStrideContents()
3804 … queryTarget.interface, glu::TYPE_FLOAT_VEC3, 2, false); in generateUniformBlockArrayStrideContents()
3808 … queryTarget.interface, glu::TYPE_INT_VEC3, 2, false); in generateUniformBlockArrayStrideContents()
3838 glu::GLSLVersion glslVersion) in generateUniformBlockBlockIndexContents()
3842 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateUniformBlockBlockIndexContents()
3845 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_UNIFORM)); in generateUniformBlockBlockIndexContents()
3847 new ResourceDefinition::LayoutQualifier(uniform, glu::Layout(-1, 0))); in generateUniformBlockBlockIndexContents()
3852 new ResourceDefinition::Variable(uniform, glu::TYPE_FLOAT_VEC4)); in generateUniformBlockBlockIndexContents()
3864 new ResourceDefinition::Variable(buffer, glu::TYPE_FLOAT_VEC4)); in generateUniformBlockBlockIndexContents()
3875 new ResourceDefinition::Variable(buffer, glu::TYPE_FLOAT_VEC4)); in generateUniformBlockBlockIndexContents()
3888 new ResourceDefinition::Variable(buffer, glu::TYPE_FLOAT_VEC4)); in generateUniformBlockBlockIndexContents()
3915 new ResourceDefinition::Variable(arrayElement, glu::TYPE_UINT_ATOMIC_COUNTER)); in generateUniformBlockAtomicCounterBufferIndexContents()
3917 new ResourceDefinition::Variable(arrayArrayElement, glu::TYPE_UINT_ATOMIC_COUNTER)); in generateUniformBlockAtomicCounterBufferIndexContents()
3941 … PROGRAMRESOURCEPROP_NAME_LENGTH, glu::TYPE_FLOAT, "", 2); in generateUniformBlockNameLengthContents()
3944 … PROGRAMRESOURCEPROP_NAME_LENGTH, glu::TYPE_FLOAT, "", 1); in generateUniformBlockNameLengthContents()
4010 … new ResourceDefinition::LayoutQualifier(parentStructure, glu::Layout(-1, -1, 4))); in generateUniformBlockOffsetContents()
4013 new ResourceDefinition::Variable(arrayElement, glu::TYPE_UINT_ATOMIC_COUNTER)); in generateUniformBlockOffsetContents()
4026 new ResourceDefinition::Variable(structMember, glu::TYPE_FLOAT)); in generateUniformBlockOffsetContents()
4028 new ResourceDefinition::Variable(arrayElement, glu::TYPE_FLOAT)); in generateUniformBlockOffsetContents()
4060 new ResourceDefinition::Variable(structMember, glu::TYPE_FLOAT)); in generateUniformBlockOffsetContents()
4062 new ResourceDefinition::Variable(arrayElement, glu::TYPE_FLOAT)); in generateUniformBlockOffsetContents()
4085 glu::DataType type; in generateMatrixVariableCases()
4087 {0, glu::TYPE_FLOAT_MAT2}, {1, glu::TYPE_FLOAT_MAT2X3}, {2, glu::TYPE_FLOAT_MAT2X4}, in generateMatrixVariableCases()
4088 {2, glu::TYPE_FLOAT_MAT3X2}, {1, glu::TYPE_FLOAT_MAT3}, {0, glu::TYPE_FLOAT_MAT3X4}, in generateMatrixVariableCases()
4089 {2, glu::TYPE_FLOAT_MAT4X2}, {1, glu::TYPE_FLOAT_MAT4X3}, {0, glu::TYPE_FLOAT_MAT4}, in generateMatrixVariableCases()
4171 glu::MatrixOrder order; in generateUniformMatrixOrderCaseBlockContentCases()
4173 {"no_qualifier", glu::MATRIXORDER_LAST}, in generateUniformMatrixOrderCaseBlockContentCases()
4174 {"row_major", glu::MATRIXORDER_ROW_MAJOR}, in generateUniformMatrixOrderCaseBlockContentCases()
4175 {"column_major", glu::MATRIXORDER_COLUMN_MAJOR}, in generateUniformMatrixOrderCaseBlockContentCases()
4183 if (qualifiers[qualifierNdx].order == glu::MATRIXORDER_LAST || in generateUniformMatrixOrderCaseBlockContentCases()
4192 if (qualifiers[qualifierNdx].order != glu::MATRIXORDER_LAST) in generateUniformMatrixOrderCaseBlockContentCases()
4194 glu::Layout layout; in generateUniformMatrixOrderCaseBlockContentCases()
4200 if (extendedBasicTypeCases && qualifiers[qualifierNdx].order == glu::MATRIXORDER_LAST) in generateUniformMatrixOrderCaseBlockContentCases()
4222 glu::TYPE_FLOAT_MAT3X2, "", 1); in generateUniformMatrixOrderCaseBlockContentCases()
4229 glu::TYPE_FLOAT_MAT3X2, "", 1); in generateUniformMatrixOrderCaseBlockContentCases()
4243 glu::MatrixOrder order; in generateUniformMatrixStrideCaseBlockContentCases()
4245 {"no_qualifier", glu::MATRIXORDER_LAST}, in generateUniformMatrixStrideCaseBlockContentCases()
4246 {"row_major", glu::MATRIXORDER_ROW_MAJOR}, in generateUniformMatrixStrideCaseBlockContentCases()
4247 {"column_major", glu::MATRIXORDER_COLUMN_MAJOR}, in generateUniformMatrixStrideCaseBlockContentCases()
4255 if (qualifiers[qualifierNdx].order == glu::MATRIXORDER_LAST || in generateUniformMatrixStrideCaseBlockContentCases()
4264 if (qualifiers[qualifierNdx].order != glu::MATRIXORDER_LAST) in generateUniformMatrixStrideCaseBlockContentCases()
4266 glu::Layout layout; in generateUniformMatrixStrideCaseBlockContentCases()
4276 if (qualifiers[qualifierNdx].order == glu::MATRIXORDER_LAST) in generateUniformMatrixStrideCaseBlockContentCases()
4298 glu::TYPE_FLOAT_MAT3X2, "", 1); in generateUniformMatrixStrideCaseBlockContentCases()
4304 glu::TYPE_FLOAT_MAT3X2, "", 1); in generateUniformMatrixStrideCaseBlockContentCases()
4323 glu::MatrixOrder order; in generateUniformMatrixCaseBlocks()
4325 {"default_block", "Default block", false, true, true, glu::MATRIXORDER_LAST}, in generateUniformMatrixCaseBlocks()
4326 {"named_block", "Named uniform block", true, true, true, glu::MATRIXORDER_LAST}, in generateUniformMatrixCaseBlocks()
4327 … {"named_block_row_major", "Named uniform block", true, true, false, glu::MATRIXORDER_ROW_MAJOR}, in generateUniformMatrixCaseBlocks()
4328 …{"named_block_col_major", "Named uniform block", true, true, false, glu::MATRIXORDER_COLUMN_MAJOR}, in generateUniformMatrixCaseBlocks()
4329 {"unnamed_block", "Unnamed uniform block", true, false, false, glu::MATRIXORDER_LAST}, in generateUniformMatrixCaseBlocks()
4330 …{"unnamed_block_row_major", "Unnamed uniform block", true, false, false, glu::MATRIXORDER_ROW_MAJO… in generateUniformMatrixCaseBlocks()
4331 …{"unnamed_block_col_major", "Unnamed uniform block", true, false, false, glu::MATRIXORDER_COLUMN_M… in generateUniformMatrixCaseBlocks()
4336 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_UNIFORM)); in generateUniformMatrixCaseBlocks()
4347 if (children[childNdx].order != glu::MATRIXORDER_LAST) in generateUniformMatrixCaseBlocks()
4349 glu::Layout layout; in generateUniformMatrixCaseBlocks()
4375 new ResourceDefinition::Variable(parentStructure, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4379 new ResourceDefinition::Variable(arrayElement, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4381 new ResourceDefinition::Variable(structMember, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4394 new ResourceDefinition::LayoutQualifier(parentStructure, glu::Layout(-1, 0))); in generateBufferReferencedByShaderInterfaceBlockCases()
4396 new ResourceDefinition::Variable(layout, glu::TYPE_SAMPLER_2D)); in generateBufferReferencedByShaderInterfaceBlockCases()
4400 new ResourceDefinition::Variable(arrayElement, glu::TYPE_SAMPLER_2D)); in generateBufferReferencedByShaderInterfaceBlockCases()
4402 new ResourceDefinition::Variable(structMember, glu::TYPE_SAMPLER_2D)); in generateBufferReferencedByShaderInterfaceBlockCases()
4414 new ResourceDefinition::LayoutQualifier(parentStructure, glu::Layout(-1, 0))); in generateBufferReferencedByShaderInterfaceBlockCases()
4416 new ResourceDefinition::Variable(layout, glu::TYPE_UINT_ATOMIC_COUNTER)); in generateBufferReferencedByShaderInterfaceBlockCases()
4419 new ResourceDefinition::Variable(arrayElement, glu::TYPE_UINT_ATOMIC_COUNTER)); in generateBufferReferencedByShaderInterfaceBlockCases()
4433 new ResourceDefinition::Variable(arrayElement, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4446 new ResourceDefinition::Variable(arrayStructMember, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4459 new ResourceDefinition::Variable(subArrayElement, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4471 new ResourceDefinition::Variable(subStructMember, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4485 new ResourceDefinition::Variable(arrayElement, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4495 new ResourceDefinition::Variable(structMember, glu::TYPE_FLOAT)); in generateBufferReferencedByShaderInterfaceBlockCases()
4512 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_UNIFORM)); in generateUniformReferencedByShaderSingleBlockContentCases()
4559 Context &context, tcu::TestCaseGroup *const targetGroup, glu::GLSLVersion glslVersion, in generateReferencedByShaderCaseBlocks()
4566 glu::ShaderType stage; in generateReferencedByShaderCaseBlocks()
4569 {"compute", glu::SHADERTYPE_COMPUTE, 3}, in generateReferencedByShaderCaseBlocks()
4570 {"separable_vertex", glu::SHADERTYPE_VERTEX, 2}, in generateReferencedByShaderCaseBlocks()
4571 {"separable_fragment", glu::SHADERTYPE_FRAGMENT, 2}, in generateReferencedByShaderCaseBlocks()
4572 {"separable_tess_ctrl", glu::SHADERTYPE_TESSELLATION_CONTROL, 2}, in generateReferencedByShaderCaseBlocks()
4573 {"separable_tess_eval", glu::SHADERTYPE_TESSELLATION_EVALUATION, 2}, in generateReferencedByShaderCaseBlocks()
4574 {"separable_geometry", glu::SHADERTYPE_GEOMETRY, 2}, in generateReferencedByShaderCaseBlocks()
4585 (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT), in generateReferencedByShaderCaseBlocks()
4591 (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | in generateReferencedByShaderCaseBlocks()
4592 … (1 << glu::SHADERTYPE_TESSELLATION_CONTROL) | (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION), in generateReferencedByShaderCaseBlocks()
4598 … (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | (1 << glu::SHADERTYPE_GEOMETRY), in generateReferencedByShaderCaseBlocks()
4604 (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | in generateReferencedByShaderCaseBlocks()
4605 … (1 << glu::SHADERTYPE_TESSELLATION_CONTROL) | (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION) | in generateReferencedByShaderCaseBlocks()
4606 (1 << glu::SHADERTYPE_GEOMETRY), in generateReferencedByShaderCaseBlocks()
4615 const bool programSeparable = (singleStageCases[ndx].stage != glu::SHADERTYPE_COMPUTE); in generateReferencedByShaderCaseBlocks()
4642 for (int selectedStageBit = 0; selectedStageBit < glu::SHADERTYPE_LAST; ++selectedStageBit) in generateReferencedByShaderCaseBlocks()
4649 … const char *stageName = (selectedStageBit == glu::SHADERTYPE_VERTEX) ? ("vertex") : in generateReferencedByShaderCaseBlocks()
4650 … (selectedStageBit == glu::SHADERTYPE_FRAGMENT) ? ("fragment") : in generateReferencedByShaderCaseBlocks()
4651 … (selectedStageBit == glu::SHADERTYPE_GEOMETRY) ? ("geo") : in generateReferencedByShaderCaseBlocks()
4652 … (selectedStageBit == glu::SHADERTYPE_TESSELLATION_CONTROL) ? ("tess_ctrl") : in generateReferencedByShaderCaseBlocks()
4653 … (selectedStageBit == glu::SHADERTYPE_TESSELLATION_EVALUATION) ? ("tess_eval") : in generateReferencedByShaderCaseBlocks()
4666 static glu::DataType generateRandomDataType(de::Random &rnd, bool excludeOpaqueTypes) in generateRandomDataType()
4668 static const glu::DataType s_types[] = {glu::TYPE_FLOAT, in generateRandomDataType()
4669 glu::TYPE_INT, in generateRandomDataType()
4670 glu::TYPE_UINT, in generateRandomDataType()
4671 glu::TYPE_BOOL, in generateRandomDataType()
4672 glu::TYPE_FLOAT_VEC2, in generateRandomDataType()
4673 glu::TYPE_FLOAT_VEC3, in generateRandomDataType()
4674 glu::TYPE_FLOAT_VEC4, in generateRandomDataType()
4675 glu::TYPE_INT_VEC2, in generateRandomDataType()
4676 glu::TYPE_INT_VEC3, in generateRandomDataType()
4677 glu::TYPE_INT_VEC4, in generateRandomDataType()
4678 glu::TYPE_UINT_VEC2, in generateRandomDataType()
4679 glu::TYPE_UINT_VEC3, in generateRandomDataType()
4680 glu::TYPE_UINT_VEC4, in generateRandomDataType()
4681 glu::TYPE_BOOL_VEC2, in generateRandomDataType()
4682 glu::TYPE_BOOL_VEC3, in generateRandomDataType()
4683 glu::TYPE_BOOL_VEC4, in generateRandomDataType()
4684 glu::TYPE_FLOAT_MAT2, in generateRandomDataType()
4685 glu::TYPE_FLOAT_MAT2X3, in generateRandomDataType()
4686 glu::TYPE_FLOAT_MAT2X4, in generateRandomDataType()
4687 glu::TYPE_FLOAT_MAT3X2, in generateRandomDataType()
4688 glu::TYPE_FLOAT_MAT3, in generateRandomDataType()
4689 glu::TYPE_FLOAT_MAT3X4, in generateRandomDataType()
4690 glu::TYPE_FLOAT_MAT4X2, in generateRandomDataType()
4691 glu::TYPE_FLOAT_MAT4X3, in generateRandomDataType()
4692 glu::TYPE_FLOAT_MAT4, in generateRandomDataType()
4694 glu::TYPE_SAMPLER_2D, in generateRandomDataType()
4695 glu::TYPE_SAMPLER_CUBE, in generateRandomDataType()
4696 glu::TYPE_SAMPLER_2D_ARRAY, in generateRandomDataType()
4697 glu::TYPE_SAMPLER_3D, in generateRandomDataType()
4698 glu::TYPE_SAMPLER_2D_SHADOW, in generateRandomDataType()
4699 glu::TYPE_SAMPLER_CUBE_SHADOW, in generateRandomDataType()
4700 glu::TYPE_SAMPLER_2D_ARRAY_SHADOW, in generateRandomDataType()
4701 glu::TYPE_INT_SAMPLER_2D, in generateRandomDataType()
4702 glu::TYPE_INT_SAMPLER_CUBE, in generateRandomDataType()
4703 glu::TYPE_INT_SAMPLER_2D_ARRAY, in generateRandomDataType()
4704 glu::TYPE_INT_SAMPLER_3D, in generateRandomDataType()
4705 glu::TYPE_UINT_SAMPLER_2D, in generateRandomDataType()
4706 glu::TYPE_UINT_SAMPLER_CUBE, in generateRandomDataType()
4707 glu::TYPE_UINT_SAMPLER_2D_ARRAY, in generateRandomDataType()
4708 glu::TYPE_UINT_SAMPLER_3D, in generateRandomDataType()
4709 glu::TYPE_SAMPLER_2D_MULTISAMPLE, in generateRandomDataType()
4710 glu::TYPE_INT_SAMPLER_2D_MULTISAMPLE, in generateRandomDataType()
4711 glu::TYPE_UINT_SAMPLER_2D_MULTISAMPLE, in generateRandomDataType()
4712 glu::TYPE_IMAGE_2D, in generateRandomDataType()
4713 glu::TYPE_IMAGE_CUBE, in generateRandomDataType()
4714 glu::TYPE_IMAGE_2D_ARRAY, in generateRandomDataType()
4715 glu::TYPE_IMAGE_3D, in generateRandomDataType()
4716 glu::TYPE_INT_IMAGE_2D, in generateRandomDataType()
4717 glu::TYPE_INT_IMAGE_CUBE, in generateRandomDataType()
4718 glu::TYPE_INT_IMAGE_2D_ARRAY, in generateRandomDataType()
4719 glu::TYPE_INT_IMAGE_3D, in generateRandomDataType()
4720 glu::TYPE_UINT_IMAGE_2D, in generateRandomDataType()
4721 glu::TYPE_UINT_IMAGE_CUBE, in generateRandomDataType()
4722 glu::TYPE_UINT_IMAGE_2D_ARRAY, in generateRandomDataType()
4723 glu::TYPE_UINT_IMAGE_3D, in generateRandomDataType()
4724 glu::TYPE_UINT_ATOMIC_COUNTER}; in generateRandomDataType()
4728 const glu::DataType type = s_types[rnd.getInt(0, DE_LENGTH_OF_ARRAY(s_types) - 1)]; in generateRandomDataType()
4730 … if (!excludeOpaqueTypes || glu::isDataTypeScalarOrVector(type) || glu::isDataTypeMatrix(type)) in generateRandomDataType()
4736 …de::Random &rnd, const ResourceDefinition::Node::SharedPtr &parentStructure, glu::DataType baseTyp… in generateRandomVariableDefinition()
4737 const glu::Layout &layout, bool allowUnsized) in generateRandomVariableDefinition()
4761 static ResourceDefinition::Node::SharedPtr generateRandomCoreShaderSet(de::Random &rnd, glu::GLSLVe… in generateRandomCoreShaderSet()
4768 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateRandomCoreShaderSet()
4778 shaderSet->setStage(glu::SHADERTYPE_VERTEX, true); in generateRandomCoreShaderSet()
4779 shaderSet->setStage(glu::SHADERTYPE_FRAGMENT, rnd.getBool()); in generateRandomCoreShaderSet()
4783 shaderSet->setStage(glu::SHADERTYPE_VERTEX, rnd.getBool()); in generateRandomCoreShaderSet()
4784 shaderSet->setStage(glu::SHADERTYPE_FRAGMENT, true); in generateRandomCoreShaderSet()
4793 …const glu::ShaderType shaderType = (rnd.getBool()) ? (glu::SHADERTYPE_VERTEX) : (glu::SHADERTYPE_F… in generateRandomCoreShaderSet()
4799 static ResourceDefinition::Node::SharedPtr generateRandomExtShaderSet(de::Random &rnd, glu::GLSLVer… in generateRandomExtShaderSet()
4807 shaderSet->setStage(glu::SHADERTYPE_VERTEX, rnd.getBool()); in generateRandomExtShaderSet()
4808 shaderSet->setStage(glu::SHADERTYPE_FRAGMENT, rnd.getBool()); in generateRandomExtShaderSet()
4814 shaderSet->setStage(glu::SHADERTYPE_GEOMETRY, true); in generateRandomExtShaderSet()
4818 shaderSet->setStage(glu::SHADERTYPE_TESSELLATION_CONTROL, rnd.getBool()); in generateRandomExtShaderSet()
4819 shaderSet->setStage(glu::SHADERTYPE_TESSELLATION_EVALUATION, rnd.getBool()); in generateRandomExtShaderSet()
4824 shaderSet->setStage(glu::SHADERTYPE_GEOMETRY, rnd.getBool()); in generateRandomExtShaderSet()
4828 shaderSet->setStage(glu::SHADERTYPE_TESSELLATION_CONTROL, true); in generateRandomExtShaderSet()
4829 shaderSet->setStage(glu::SHADERTYPE_TESSELLATION_EVALUATION, rnd.getBool()); in generateRandomExtShaderSet()
4833 shaderSet->setStage(glu::SHADERTYPE_TESSELLATION_CONTROL, rnd.getBool()); in generateRandomExtShaderSet()
4834 shaderSet->setStage(glu::SHADERTYPE_TESSELLATION_EVALUATION, true); in generateRandomExtShaderSet()
4845 const glu::ShaderType shaderType = (selector == 0) ? (glu::SHADERTYPE_GEOMETRY) : in generateRandomExtShaderSet()
4846 … (selector == 1) ? (glu::SHADERTYPE_TESSELLATION_CONTROL) : in generateRandomExtShaderSet()
4847 … (selector == 2) ? (glu::SHADERTYPE_TESSELLATION_EVALUATION) : in generateRandomExtShaderSet()
4848 (glu::SHADERTYPE_LAST); in generateRandomExtShaderSet()
4854 static ResourceDefinition::Node::SharedPtr generateRandomShaderSet(de::Random &rnd, glu::GLSLVersio… in generateRandomShaderSet()
4863 static glu::Layout generateRandomUniformBlockLayout(de::Random &rnd) in generateRandomUniformBlockLayout()
4865 glu::Layout layout; in generateRandomUniformBlockLayout()
4871 …layout.matrixOrder = (rnd.getBool()) ? (glu::MATRIXORDER_COLUMN_MAJOR) : (glu::MATRIXORDER_ROW_MAJ… in generateRandomUniformBlockLayout()
4876 static glu::Layout generateRandomBufferBlockLayout(de::Random &rnd) in generateRandomBufferBlockLayout()
4881 static glu::Layout generateRandomVariableLayout(de::Random &rnd, glu::DataType type, bool interface… in generateRandomVariableLayout()
4883 glu::Layout layout; in generateRandomVariableLayout()
4885 …if ((glu::isDataTypeAtomicCounter(type) || glu::isDataTypeImage(type) || glu::isDataTypeSampler(ty… in generateRandomVariableLayout()
4889 if (glu::isDataTypeAtomicCounter(type) && rnd.getBool()) in generateRandomVariableLayout()
4892 if (glu::isDataTypeMatrix(type) && interfaceBlockMember && rnd.getBool()) in generateRandomVariableLayout()
4893 …layout.matrixOrder = (rnd.getBool()) ? (glu::MATRIXORDER_COLUMN_MAJOR) : (glu::MATRIXORDER_ROW_MAJ… in generateRandomVariableLayout()
4899glu::GLSLVersion glslVersion, int index, bool onlyExtensionStages) in generateUniformRandomCase()
4904 const glu::DataType type = generateRandomDataType(rnd, interfaceBlock); in generateUniformRandomCase()
4905 …const glu::Layout layout = generateRandomVariableLayout(rnd, type, interfa… in generateUniformRandomCase()
4908 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_UNIFORM)); in generateUniformRandomCase()
4937 glu::GLSLVersion glslVersion) in generateUniformCaseRandomCases()
4962glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().getType… in init()
4965 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in init()
5094 …Context &context, tcu::TestCaseGroup *targetGroup, glu::GLSLVersion glslVersion, glu::Storage stor… in generateBufferBackedInterfaceResourceBasicBlockTypes()
5100 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateBufferBackedInterfaceResourceBasicBlockTypes()
5105 new ResourceDefinition::LayoutQualifier(storageQualifier, glu::Layout(-1, 1))); in generateBufferBackedInterfaceResourceBasicBlockTypes()
5107 …(storage == glu::STORAGE_UNIFORM) ? (PROGRAMINTERFACE_UNIFORM_BLOCK) : (PROGRAMINTERFACE_SHADER_ST… in generateBufferBackedInterfaceResourceBasicBlockTypes()
5113 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBasicBlockTypes()
5122 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBasicBlockTypes()
5132 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBasicBlockTypes()
5142 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBasicBlockTypes()
5149glu::GLSLVersion glslVersion, glu::Storage storage) in generateBufferBackedInterfaceResourceBufferBindingCases()
5153 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateBufferBackedInterfaceResourceBufferBindingCases()
5164 new ResourceDefinition::LayoutQualifier(storageQualifier, glu::Layout(-1, bindingNdx))); in generateBufferBackedInterfaceResourceBufferBindingCases()
5165 const ProgramInterface programInterface = (storage == glu::STORAGE_UNIFORM) ? in generateBufferBackedInterfaceResourceBufferBindingCases()
5173 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBufferBindingCases()
5185 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBufferBindingCases()
5198 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBackedInterfaceResourceBufferBindingCases()
5208 template <glu::Storage Storage>
5214 (Storage == glu::STORAGE_UNIFORM) ? (PROGRAMINTERFACE_UNIFORM_BLOCK) : in generateBufferBlockReferencedByShaderSingleBlockContentCases()
5215 (Storage == glu::STORAGE_BUFFER) ? (PROGRAMINTERFACE_SHADER_STORAGE_BLOCK) : in generateBufferBlockReferencedByShaderSingleBlockContentCases()
5228 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBlockReferencedByShaderSingleBlockContentCases()
5239 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBlockReferencedByShaderSingleBlockContentCases()
5252 new ResourceDefinition::Variable(block, glu::TYPE_BOOL_VEC3)); in generateBufferBlockReferencedByShaderSingleBlockContentCases()
5261 glu::Storage storage) in generateBufferBackedInterfaceResourceActiveVariablesCase()
5272 glu::Storage storage) in generateBufferBackedInterfaceResourceBufferDataSizeCases()
5285 BufferBackedBlockInterfaceTestGroup(Context &context, glu::Storage interfaceBlockStorage);
5289 static const char *getGroupName(glu::Storage storage);
5290 static const char *getGroupDescription(glu::Storage storage);
5292 const glu::Storage m_storage;
5295 BufferBackedBlockInterfaceTestGroup::BufferBackedBlockInterfaceTestGroup(Context &context, glu::Sto… in BufferBackedBlockInterfaceTestGroup()
5299 DE_ASSERT(storage == glu::STORAGE_BUFFER || storage == glu::STORAGE_UNIFORM); in BufferBackedBlockInterfaceTestGroup()
5304 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
5351 if (m_storage == glu::STORAGE_UNIFORM) in init()
5354 generateBufferBlockReferencedByShaderSingleBlockContentCases<glu::STORAGE_UNIFORM>); in init()
5355 else if (m_storage == glu::STORAGE_BUFFER) in init()
5358 generateBufferBlockReferencedByShaderSingleBlockContentCases<glu::STORAGE_BUFFER>); in init()
5364 const char *BufferBackedBlockInterfaceTestGroup::getGroupName(glu::Storage storage) in getGroupName()
5368 case glu::STORAGE_UNIFORM: in getGroupName()
5370 case glu::STORAGE_BUFFER: in getGroupName()
5378 const char *BufferBackedBlockInterfaceTestGroup::getGroupDescription(glu::Storage storage) in getGroupDescription()
5382 case glu::STORAGE_UNIFORM: in getGroupDescription()
5384 case glu::STORAGE_BUFFER: in getGroupDescription()
5411 {"vertex_fragment", (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT)}, in init()
5412 {"vertex_tess_fragment", (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | in init()
5413 (1 << glu::SHADERTYPE_TESSELLATION_CONTROL) | in init()
5414 (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION)}, in init()
5416 …(1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | (1 << glu::SHADERTYPE_GEOMETRY)}, in init()
5419 (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | in init()
5420 … (1 << glu::SHADERTYPE_TESSELLATION_CONTROL) | (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION) | in init()
5421 (1 << glu::SHADERTYPE_GEOMETRY), in init()
5439 … (1 << glu::SHADERTYPE_COMPUTE), (1 << glu::SHADERTYPE_COMPUTE))); in init()
5441 … (1 << glu::SHADERTYPE_VERTEX), (1 << glu::SHADERTYPE_VERTEX))); in init()
5443 … (1 << glu::SHADERTYPE_FRAGMENT), (1 << glu::SHADERTYPE_FRAGMENT))); in init()
5445 … (1 << glu::SHADERTYPE_GEOMETRY), (1 << glu::SHADERTYPE_GEOMETRY))); in init()
5447 (1 << glu::SHADERTYPE_TESSELLATION_CONTROL), in init()
5448 (1 << glu::SHADERTYPE_TESSELLATION_CONTROL))); in init()
5450 (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION), in init()
5451 (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION))); in init()
5459 for (uint32_t stageNdx = 0; stageNdx < glu::SHADERTYPE_LAST; ++stageNdx) in init()
5466 … const char *stageName = (stageNdx == glu::SHADERTYPE_VERTEX) ? ("vertex") : in init()
5467 … (stageNdx == glu::SHADERTYPE_FRAGMENT) ? ("fragment") : in init()
5468 … (stageNdx == glu::SHADERTYPE_GEOMETRY) ? ("geo") : in init()
5469 … (stageNdx == glu::SHADERTYPE_TESSELLATION_CONTROL) ? ("tess_ctrl") : in init()
5470 … (stageNdx == glu::SHADERTYPE_TESSELLATION_EVALUATION) ? ("tess_eval") : in init()
5483 …Context &context, tcu::TestCaseGroup *targetGroup, glu::GLSLVersion glslVersion, bool withCompute,… in generateProgramInputOutputShaderCaseBlocks()
5491 glu::ShaderType stage; in generateProgramInputOutputShaderCaseBlocks()
5493 {"separable_vertex", glu::SHADERTYPE_VERTEX}, in generateProgramInputOutputShaderCaseBlocks()
5494 {"separable_fragment", glu::SHADERTYPE_FRAGMENT}, in generateProgramInputOutputShaderCaseBlocks()
5495 {"separable_tess_ctrl", glu::SHADERTYPE_TESSELLATION_CONTROL}, in generateProgramInputOutputShaderCaseBlocks()
5496 {"separable_tess_eval", glu::SHADERTYPE_TESSELLATION_EVALUATION}, in generateProgramInputOutputShaderCaseBlocks()
5497 {"separable_geometry", glu::SHADERTYPE_GEOMETRY}, in generateProgramInputOutputShaderCaseBlocks()
5508 shaderSetPtr->setStage(glu::SHADERTYPE_VERTEX, inputCase); in generateProgramInputOutputShaderCaseBlocks()
5509 shaderSetPtr->setStage(glu::SHADERTYPE_FRAGMENT, !inputCase); in generateProgramInputOutputShaderCaseBlocks()
5514 … (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT), isGL45); in generateProgramInputOutputShaderCaseBlocks()
5536 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateProgramInputOutputShaderCaseBlocks()
5541 … blockContentGenerator(context, defaultBlock, blockGroup, (1 << glu::SHADERTYPE_COMPUTE), isGL45); in generateProgramInputOutputShaderCaseBlocks()
5549 glu::ShaderType inputStage; in generateProgramInputOutputShaderCaseBlocks()
5550 glu::Storage inputStorage; in generateProgramInputOutputShaderCaseBlocks()
5552 glu::ShaderType outputStage; in generateProgramInputOutputShaderCaseBlocks()
5553 glu::Storage outputStorage; in generateProgramInputOutputShaderCaseBlocks()
5557 glu::SHADERTYPE_FRAGMENT, in generateProgramInputOutputShaderCaseBlocks()
5558 glu::STORAGE_IN, in generateProgramInputOutputShaderCaseBlocks()
5560 glu::SHADERTYPE_VERTEX, in generateProgramInputOutputShaderCaseBlocks()
5561 glu::STORAGE_OUT, in generateProgramInputOutputShaderCaseBlocks()
5565 glu::SHADERTYPE_TESSELLATION_EVALUATION, in generateProgramInputOutputShaderCaseBlocks()
5566 glu::STORAGE_PATCH_IN, in generateProgramInputOutputShaderCaseBlocks()
5568 glu::SHADERTYPE_TESSELLATION_CONTROL, in generateProgramInputOutputShaderCaseBlocks()
5569 glu::STORAGE_PATCH_OUT, in generateProgramInputOutputShaderCaseBlocks()
5582 const glu::ShaderType shaderType = in generateProgramInputOutputShaderCaseBlocks()
5584 const glu::Storage storageType = in generateProgramInputOutputShaderCaseBlocks()
5609 new ResourceDefinition::LayoutQualifier(storage, glu::Layout(3))); in generateProgramInputOutputShaderCaseBlocks()
5654 … new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_IN))) : in generateProgramInputBlockContents()
5656 const glu::ShaderType firstStage = getShaderMaskFirstStage(presentShadersMask); in generateProgramInputBlockContents()
5662 if (firstStage == glu::SHADERTYPE_VERTEX) in generateProgramInputBlockContents()
5666 new ResourceDefinition::Variable(input, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5669 else if (firstStage == glu::SHADERTYPE_FRAGMENT || !inDefaultBlock) in generateProgramInputBlockContents()
5674 new ResourceDefinition::Variable(input, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5681 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5688 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5692 …else if (firstStage == glu::SHADERTYPE_TESSELLATION_CONTROL || firstStage == glu::SHADERTYPE_GEOME… in generateProgramInputBlockContents()
5701 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5707 else if (firstStage == glu::SHADERTYPE_TESSELLATION_EVALUATION) in generateProgramInputBlockContents()
5711 new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_PATCH_IN)); in generateProgramInputBlockContents()
5718 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5727 new ResourceDefinition::Variable(patchInput, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5734 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5741 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputBlockContents()
5745 else if (firstStage == glu::SHADERTYPE_COMPUTE) in generateProgramInputBlockContents()
5762 … new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_OUT))) : in generateProgramOutputBlockContents()
5764 const glu::ShaderType lastStage = getShaderMaskLastStage(presentShadersMask); in generateProgramOutputBlockContents()
5770 if (lastStage == glu::SHADERTYPE_VERTEX || lastStage == glu::SHADERTYPE_GEOMETRY || in generateProgramOutputBlockContents()
5771 lastStage == glu::SHADERTYPE_TESSELLATION_EVALUATION || !inDefaultBlock) in generateProgramOutputBlockContents()
5776 new ResourceDefinition::Variable(output, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5783 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5790 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5794 else if (lastStage == glu::SHADERTYPE_FRAGMENT) in generateProgramOutputBlockContents()
5799 new ResourceDefinition::Variable(output, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5806 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5810 else if (lastStage == glu::SHADERTYPE_TESSELLATION_CONTROL) in generateProgramOutputBlockContents()
5814 new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_PATCH_OUT)); in generateProgramOutputBlockContents()
5821 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5830 new ResourceDefinition::Variable(patchOutput, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5837 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5844 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputBlockContents()
5848 else if (lastStage == glu::SHADERTYPE_COMPUTE) in generateProgramOutputBlockContents()
5930 … new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_IN))) : in generateProgramInputLocationBlockContents()
5932 const glu::ShaderType firstStage = getShaderMaskFirstStage(presentShadersMask); in generateProgramInputLocationBlockContents()
5936 if (firstStage == glu::SHADERTYPE_VERTEX) in generateProgramInputLocationBlockContents()
5941 new ResourceDefinition::Variable(input, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
5949 new ResourceDefinition::LayoutQualifier(input, glu::Layout(2))); in generateProgramInputLocationBlockContents()
5951 new ResourceDefinition::Variable(layout, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
5958 else if (firstStage == glu::SHADERTYPE_FRAGMENT || !inDefaultBlock) in generateProgramInputLocationBlockContents()
5963 new ResourceDefinition::Variable(input, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
5972 new ResourceDefinition::LayoutQualifier(input, glu::Layout(2))); in generateProgramInputLocationBlockContents()
5974 new ResourceDefinition::Variable(layout, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
5984 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
5994 new ResourceDefinition::LayoutQualifier(input, glu::Layout(2))); in generateProgramInputLocationBlockContents()
5997 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6007 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6017 new ResourceDefinition::LayoutQualifier(input, glu::Layout(2))); in generateProgramInputLocationBlockContents()
6020 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6027 …else if (firstStage == glu::SHADERTYPE_TESSELLATION_CONTROL || firstStage == glu::SHADERTYPE_GEOME… in generateProgramInputLocationBlockContents()
6036 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6044 new ResourceDefinition::LayoutQualifier(input, glu::Layout(2))); in generateProgramInputLocationBlockContents()
6048 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6057 else if (firstStage == glu::SHADERTYPE_TESSELLATION_EVALUATION) in generateProgramInputLocationBlockContents()
6061 new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_PATCH_IN)); in generateProgramInputLocationBlockContents()
6068 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6076 new ResourceDefinition::LayoutQualifier(input, glu::Layout(2))); in generateProgramInputLocationBlockContents()
6080 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6092 new ResourceDefinition::Variable(patchInput, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6101 new ResourceDefinition::LayoutQualifier(patchInput, glu::Layout(2))); in generateProgramInputLocationBlockContents()
6103 new ResourceDefinition::Variable(layout, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6113 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6122 new ResourceDefinition::LayoutQualifier(patchInput, glu::Layout(2))); in generateProgramInputLocationBlockContents()
6125 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6135 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6144 new ResourceDefinition::LayoutQualifier(patchInput, glu::Layout(2))); in generateProgramInputLocationBlockContents()
6147 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramInputLocationBlockContents()
6154 else if (firstStage == glu::SHADERTYPE_COMPUTE) in generateProgramInputLocationBlockContents()
6171 … new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_OUT))) : in generateProgramOutputLocationBlockContents()
6173 const glu::ShaderType lastStage = getShaderMaskLastStage(presentShadersMask); in generateProgramOutputLocationBlockContents()
6177 if (lastStage == glu::SHADERTYPE_VERTEX || lastStage == glu::SHADERTYPE_GEOMETRY || in generateProgramOutputLocationBlockContents()
6178 lastStage == glu::SHADERTYPE_TESSELLATION_EVALUATION || !inDefaultBlock) in generateProgramOutputLocationBlockContents()
6183 new ResourceDefinition::Variable(output, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6192 new ResourceDefinition::LayoutQualifier(output, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6194 new ResourceDefinition::Variable(layout, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6204 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6214 new ResourceDefinition::LayoutQualifier(output, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6217 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6227 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6237 new ResourceDefinition::LayoutQualifier(output, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6240 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6247 else if (lastStage == glu::SHADERTYPE_FRAGMENT) in generateProgramOutputLocationBlockContents()
6252 new ResourceDefinition::Variable(output, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6261 new ResourceDefinition::LayoutQualifier(output, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6263 new ResourceDefinition::Variable(layout, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6273 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6283 new ResourceDefinition::LayoutQualifier(output, glu::Layout(1))); in generateProgramOutputLocationBlockContents()
6286 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6293 else if (lastStage == glu::SHADERTYPE_TESSELLATION_CONTROL) in generateProgramOutputLocationBlockContents()
6297 new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_PATCH_OUT)); in generateProgramOutputLocationBlockContents()
6304 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6312 new ResourceDefinition::LayoutQualifier(output, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6316 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6328 new ResourceDefinition::Variable(patchOutput, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6337 new ResourceDefinition::LayoutQualifier(patchOutput, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6339 new ResourceDefinition::Variable(layout, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6349 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6358 new ResourceDefinition::LayoutQualifier(patchOutput, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6361 new ResourceDefinition::Variable(structMbr, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6371 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6380 new ResourceDefinition::LayoutQualifier(patchOutput, glu::Layout(2))); in generateProgramOutputLocationBlockContents()
6383 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateProgramOutputLocationBlockContents()
6390 else if (lastStage == glu::SHADERTYPE_COMPUTE) in generateProgramOutputLocationBlockContents()
6399 glu::Storage storage) in generateProgramInputOutputReferencedByCases()
6433 if (storage == glu::STORAGE_IN) in generateProgramInputOutputReferencedByCases()
6435 context, "referenced_by_separable_tess_eval_patch_in", "", glu::STORAGE_PATCH_IN, in generateProgramInputOutputReferencedByCases()
6437 else if (storage == glu::STORAGE_OUT) in generateProgramInputOutputReferencedByCases()
6439 context, "referenced_by_separable_tess_ctrl_patch_out", "", glu::STORAGE_PATCH_OUT, in generateProgramInputOutputReferencedByCases()
6453 glu::DataType type; in generateProgramInputOutputTypeBasicTypeCases()
6457 … {glu::TYPE_FLOAT, false, 0}, {glu::TYPE_INT, false, 1}, {glu::TYPE_UINT, false, 1}, in generateProgramInputOutputTypeBasicTypeCases()
6458 …{glu::TYPE_FLOAT_VEC2, false, 2}, {glu::TYPE_FLOAT_VEC3, false, 1}, {glu::TYPE_FLOAT_VEC4, false… in generateProgramInputOutputTypeBasicTypeCases()
6459 …{glu::TYPE_INT_VEC2, false, 0}, {glu::TYPE_INT_VEC3, false, 2}, {glu::TYPE_INT_VEC4, false, … in generateProgramInputOutputTypeBasicTypeCases()
6460 …{glu::TYPE_UINT_VEC2, false, 2}, {glu::TYPE_UINT_VEC3, false, 2}, {glu::TYPE_UINT_VEC4, false,… in generateProgramInputOutputTypeBasicTypeCases()
6461 …{glu::TYPE_FLOAT_MAT2, true, 2}, {glu::TYPE_FLOAT_MAT2X3, true, 2}, {glu::TYPE_FLOAT_MAT2X4, tru… in generateProgramInputOutputTypeBasicTypeCases()
6462 …{glu::TYPE_FLOAT_MAT3X2, true, 0}, {glu::TYPE_FLOAT_MAT3, true, 2}, {glu::TYPE_FLOAT_MAT3X4, tru… in generateProgramInputOutputTypeBasicTypeCases()
6463 …{glu::TYPE_FLOAT_MAT4X2, true, 2}, {glu::TYPE_FLOAT_MAT4X3, true, 2}, {glu::TYPE_FLOAT_MAT4, true,… in generateProgramInputOutputTypeBasicTypeCases()
6490 … new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_IN))) : in generateProgramInputTypeBlockContents()
6492 const glu::ShaderType firstStage = getShaderMaskFirstStage(presentShadersMask); in generateProgramInputTypeBlockContents()
6496 if (firstStage == glu::SHADERTYPE_VERTEX) in generateProgramInputTypeBlockContents()
6502 else if (firstStage == glu::SHADERTYPE_FRAGMENT || !inDefaultBlock) in generateProgramInputTypeBlockContents()
6505 new ResourceDefinition::InterpolationQualifier(input, glu::INTERPOLATION_FLAT)); in generateProgramInputTypeBlockContents()
6531 …else if (firstStage == glu::SHADERTYPE_TESSELLATION_CONTROL || firstStage == glu::SHADERTYPE_GEOME… in generateProgramInputTypeBlockContents()
6541 else if (firstStage == glu::SHADERTYPE_TESSELLATION_EVALUATION) in generateProgramInputTypeBlockContents()
6545 new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_PATCH_IN)); in generateProgramInputTypeBlockContents()
6589 else if (firstStage == glu::SHADERTYPE_COMPUTE) in generateProgramInputTypeBlockContents()
6606 … new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_OUT))) : in generateProgramOutputTypeBlockContents()
6608 const glu::ShaderType lastStage = getShaderMaskLastStage(presentShadersMask); in generateProgramOutputTypeBlockContents()
6612 if (lastStage == glu::SHADERTYPE_VERTEX || lastStage == glu::SHADERTYPE_GEOMETRY || in generateProgramOutputTypeBlockContents()
6613 lastStage == glu::SHADERTYPE_TESSELLATION_EVALUATION || !inDefaultBlock) in generateProgramOutputTypeBlockContents()
6616 new ResourceDefinition::InterpolationQualifier(output, glu::INTERPOLATION_FLAT)); in generateProgramOutputTypeBlockContents()
6629 … (lastStage != glu::SHADERTYPE_VERTEX) ? (1) : (0); // lesser expansions on other stages in generateProgramOutputTypeBlockContents()
6640 … (lastStage != glu::SHADERTYPE_VERTEX) ? (1) : (0); // lesser expansions on other stages in generateProgramOutputTypeBlockContents()
6648 else if (lastStage == glu::SHADERTYPE_FRAGMENT) in generateProgramOutputTypeBlockContents()
6666 else if (lastStage == glu::SHADERTYPE_TESSELLATION_CONTROL) in generateProgramOutputTypeBlockContents()
6670 new ResourceDefinition::StorageQualifier(parentStructure, glu::STORAGE_PATCH_OUT)); in generateProgramOutputTypeBlockContents()
6714 else if (lastStage == glu::SHADERTYPE_COMPUTE) in generateProgramOutputTypeBlockContents()
6740 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
6781 generateProgramInputOutputReferencedByCases(m_context, blockGroup, glu::STORAGE_IN); in init()
6820 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
6861 generateProgramInputOutputReferencedByCases(m_context, blockGroup, glu::STORAGE_OUT); in init()
6883 Context &context, tcu::TestCaseGroup *targetGroup, glu::GLSLVersion glslVersion, in generateTransformFeedbackShaderCaseBlocks()
6893 {"vertex_fragment", (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT), in generateTransformFeedbackShaderCaseBlocks()
6894 (1 << glu::SHADERTYPE_VERTEX), false}, in generateTransformFeedbackShaderCaseBlocks()
6896 …(1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | (1 << glu::SHADERTYPE_TESSELLATI… in generateTransformFeedbackShaderCaseBlocks()
6897 (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION), in generateTransformFeedbackShaderCaseBlocks()
6898 (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION), true}, in generateTransformFeedbackShaderCaseBlocks()
6900 … (1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | (1 << glu::SHADERTYPE_GEOMETRY), in generateTransformFeedbackShaderCaseBlocks()
6901 (1 << glu::SHADERTYPE_GEOMETRY), true}, in generateTransformFeedbackShaderCaseBlocks()
6903 …(1 << glu::SHADERTYPE_VERTEX) | (1 << glu::SHADERTYPE_FRAGMENT) | (1 << glu::SHADERTYPE_TESSELLATI… in generateTransformFeedbackShaderCaseBlocks()
6904 (1 << glu::SHADERTYPE_TESSELLATION_EVALUATION) | (1 << glu::SHADERTYPE_GEOMETRY), in generateTransformFeedbackShaderCaseBlocks()
6905 (1 << glu::SHADERTYPE_GEOMETRY), true}, in generateTransformFeedbackShaderCaseBlocks()
6910 glu::ShaderType stage; in generateTransformFeedbackShaderCaseBlocks()
6913 {"separable_vertex", glu::SHADERTYPE_VERTEX, false}, in generateTransformFeedbackShaderCaseBlocks()
6914 {"separable_tess_eval", glu::SHADERTYPE_TESSELLATION_EVALUATION, true}, in generateTransformFeedbackShaderCaseBlocks()
6915 {"separable_geometry", glu::SHADERTYPE_GEOMETRY, true}, in generateTransformFeedbackShaderCaseBlocks()
6949 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_OUT)); in generateTransformFeedbackResourceListBlockContents()
6963 new ResourceDefinition::Variable(xfbTarget, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackResourceListBlockContents()
6971 new ResourceDefinition::Variable(xfbTarget, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackResourceListBlockContents()
6979 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackResourceListBlockContents()
6987 new ResourceDefinition::Variable(xfbTarget, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackResourceListBlockContents()
6999 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_OUT)); in generateTransformFeedbackVariableBlockContents()
7015 new ResourceDefinition::Variable(xfbTarget, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackVariableBlockContents()
7025 new ResourceDefinition::Variable(xfbTarget, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackVariableBlockContents()
7035 new ResourceDefinition::Variable(arrayElem, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackVariableBlockContents()
7045 new ResourceDefinition::Variable(xfbTarget, glu::TYPE_FLOAT_VEC4)); in generateTransformFeedbackVariableBlockContents()
7058 glu::DataType type; in generateTransformFeedbackVariableBasicTypeCases()
7061 {glu::TYPE_FLOAT, true}, {glu::TYPE_INT, true}, {glu::TYPE_UINT, true}, in generateTransformFeedbackVariableBasicTypeCases()
7063 … {glu::TYPE_FLOAT_VEC2, false}, {glu::TYPE_FLOAT_VEC3, true}, {glu::TYPE_FLOAT_VEC4, false}, in generateTransformFeedbackVariableBasicTypeCases()
7065 … {glu::TYPE_INT_VEC2, false}, {glu::TYPE_INT_VEC3, true}, {glu::TYPE_INT_VEC4, false}, in generateTransformFeedbackVariableBasicTypeCases()
7067 … {glu::TYPE_UINT_VEC2, true}, {glu::TYPE_UINT_VEC3, false}, {glu::TYPE_UINT_VEC4, false}, in generateTransformFeedbackVariableBasicTypeCases()
7069 … {glu::TYPE_FLOAT_MAT2, false}, {glu::TYPE_FLOAT_MAT2X3, false}, {glu::TYPE_FLOAT_MAT2X4, false}, in generateTransformFeedbackVariableBasicTypeCases()
7070 … {glu::TYPE_FLOAT_MAT3X2, false}, {glu::TYPE_FLOAT_MAT3, false}, {glu::TYPE_FLOAT_MAT3X4, true}, in generateTransformFeedbackVariableBasicTypeCases()
7071 … {glu::TYPE_FLOAT_MAT4X2, false}, {glu::TYPE_FLOAT_MAT4X3, false}, {glu::TYPE_FLOAT_MAT4, false}, in generateTransformFeedbackVariableBasicTypeCases()
7093 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_OUT)); in generateTransformFeedbackVariableTypeBlockContents()
7095 new ResourceDefinition::InterpolationQualifier(output, glu::INTERPOLATION_FLAT)); in generateTransformFeedbackVariableTypeBlockContents()
7160 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
7198 Context &context, tcu::TestCaseGroup *targetGroup, glu::GLSLVersion glslVersion, in generateBufferVariableBufferCaseBlocks()
7203 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateBufferVariableBufferCaseBlocks()
7206 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_BUFFER)); in generateBufferVariableBufferCaseBlocks()
7208 new ResourceDefinition::LayoutQualifier(bufferStorage, glu::Layout(-1, 0))); in generateBufferVariableBufferCaseBlocks()
7278glu::TYPE_FLOAT, (extendedCases && sizedArray) ? (2) : (1), in generateBufferVariableArraySizeSubCases()
7283glu::TYPE_BOOL, (extendedCases && sizedArray) ? (1) : (0), in generateBufferVariableArraySizeSubCases()
7288glu::TYPE_BOOL_VEC3, (extendedCases && sizedArray) ? (2) : (1), in generateBufferVariableArraySizeSubCases()
7293glu::TYPE_FLOAT_VEC4, (extendedCases && sizedArray) ? (2) : (1), in generateBufferVariableArraySizeSubCases()
7298glu::TYPE_INT_VEC2, (extendedCases && sizedArray) ? (2) : (1), in generateBufferVariableArraySizeSubCases()
7341 static void generateBufferVariableBlockIndexCases(Context &context, glu::GLSLVersion glslVersion, in generateBufferVariableBlockIndexCases()
7346 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateBufferVariableBlockIndexCases()
7349 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_BUFFER)); in generateBufferVariableBlockIndexCases()
7351 new ResourceDefinition::LayoutQualifier(bufferStorage, glu::Layout(-1, 0))); in generateBufferVariableBlockIndexCases()
7357 new ResourceDefinition::Variable(buffer, glu::TYPE_FLOAT_VEC4)); in generateBufferVariableBlockIndexCases()
7369 new ResourceDefinition::Variable(buffer, glu::TYPE_FLOAT_VEC4)); in generateBufferVariableBlockIndexCases()
7382 new ResourceDefinition::Variable(buffer, glu::TYPE_FLOAT_VEC4)); in generateBufferVariableBlockIndexCases()
7392 Context &context, tcu::TestCaseGroup *const targetGroup, glu::GLSLVersion glslVersion, in generateBufferVariableMatrixCaseBlocks()
7401 glu::MatrixOrder order; in generateBufferVariableMatrixCaseBlocks()
7403 {"named_block", "Named uniform block", true, true, glu::MATRIXORDER_LAST}, in generateBufferVariableMatrixCaseBlocks()
7404 {"named_block_row_major", "Named uniform block", true, false, glu::MATRIXORDER_ROW_MAJOR}, in generateBufferVariableMatrixCaseBlocks()
7405 … {"named_block_col_major", "Named uniform block", true, false, glu::MATRIXORDER_COLUMN_MAJOR}, in generateBufferVariableMatrixCaseBlocks()
7406 {"unnamed_block", "Unnamed uniform block", false, false, glu::MATRIXORDER_LAST}, in generateBufferVariableMatrixCaseBlocks()
7407 … {"unnamed_block_row_major", "Unnamed uniform block", false, false, glu::MATRIXORDER_ROW_MAJOR}, in generateBufferVariableMatrixCaseBlocks()
7408 … {"unnamed_block_col_major", "Unnamed uniform block", false, false, glu::MATRIXORDER_COLUMN_MAJOR}, in generateBufferVariableMatrixCaseBlocks()
7413 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateBufferVariableMatrixCaseBlocks()
7416 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_BUFFER)); in generateBufferVariableMatrixCaseBlocks()
7426 if (children[childNdx].order != glu::MATRIXORDER_LAST) in generateBufferVariableMatrixCaseBlocks()
7428 glu::Layout layout; in generateBufferVariableMatrixCaseBlocks()
7447 static const glu::DataType variableTypes[] = { in generateBufferVariableMatrixVariableBasicTypeCases()
7448glu::TYPE_FLOAT, glu::TYPE_INT_VEC3, glu::TYPE_FLOAT_MAT2, glu::TYPE_FLOAT_MAT2X3, in generateBufferVariableMatrixVariableBasicTypeCases()
7449glu::TYPE_FLOAT_MAT2X4, glu::TYPE_FLOAT_MAT3X2, glu::TYPE_FLOAT_MAT3, glu::TYPE_FLOAT_MAT3X4, in generateBufferVariableMatrixVariableBasicTypeCases()
7450 glu::TYPE_FLOAT_MAT4X2, glu::TYPE_FLOAT_MAT4X3, glu::TYPE_FLOAT_MAT4, in generateBufferVariableMatrixVariableBasicTypeCases()
7469 … PROGRAMINTERFACE_BUFFER_VARIABLE, targetProp, glu::TYPE_FLOAT_MAT3X2, in generateBufferVariableMatrixVariableCases()
7477 new ResourceDefinition::Variable(unsized, glu::TYPE_FLOAT_MAT3X2)); in generateBufferVariableMatrixVariableCases()
7508 … parentStructure, glu::Layout(-1, -1, -1, glu::FORMATLAYOUT_LAST, glu::MATRIXORDER_COLUMN_MAJOR))); in generateBufferVariableMatrixCases()
7518 … parentStructure, glu::Layout(-1, -1, -1, glu::FORMATLAYOUT_LAST, glu::MATRIXORDER_ROW_MAJOR))); in generateBufferVariableMatrixCases()
7537 … PROGRAMRESOURCEPROP_NAME_LENGTH, glu::TYPE_FLOAT, "", 3); in generateBufferVariableNameLengthCases()
7548 … PROGRAMRESOURCEPROP_NAME_LENGTH, glu::TYPE_FLOAT, "", 2); in generateBufferVariableNameLengthCases()
7563 glu::TYPE_FLOAT, "", 3); in generateBufferVariableOffsetCases()
7574 … PROGRAMRESOURCEPROP_OFFSET, glu::TYPE_FLOAT, "", 2); in generateBufferVariableOffsetCases()
7588 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_BUFFER)); in generateBufferVariableReferencedByBlockContents()
7630 … PROGRAMINTERFACE_BUFFER_VARIABLE, TargetProp, glu::TYPE_FLOAT_VEC4, in generateBufferVariableTopLevelCases()
7639 … TargetProp, glu::TYPE_FLOAT_VEC4, "_unsized_array", 2); in generateBufferVariableTopLevelCases()
7650 glu::DataType dataType; in generateBufferVariableTypeBasicTypeCases()
7652 {0, glu::TYPE_FLOAT}, {1, glu::TYPE_INT}, {1, glu::TYPE_UINT}, in generateBufferVariableTypeBasicTypeCases()
7653 {1, glu::TYPE_BOOL}, in generateBufferVariableTypeBasicTypeCases()
7655 {3, glu::TYPE_FLOAT_VEC2}, {1, glu::TYPE_FLOAT_VEC3}, {1, glu::TYPE_FLOAT_VEC4}, in generateBufferVariableTypeBasicTypeCases()
7657 {3, glu::TYPE_INT_VEC2}, {2, glu::TYPE_INT_VEC3}, {3, glu::TYPE_INT_VEC4}, in generateBufferVariableTypeBasicTypeCases()
7659 {3, glu::TYPE_UINT_VEC2}, {2, glu::TYPE_UINT_VEC3}, {3, glu::TYPE_UINT_VEC4}, in generateBufferVariableTypeBasicTypeCases()
7661 {3, glu::TYPE_BOOL_VEC2}, {2, glu::TYPE_BOOL_VEC3}, {3, glu::TYPE_BOOL_VEC4}, in generateBufferVariableTypeBasicTypeCases()
7663 {2, glu::TYPE_FLOAT_MAT2}, {3, glu::TYPE_FLOAT_MAT2X3}, {3, glu::TYPE_FLOAT_MAT2X4}, in generateBufferVariableTypeBasicTypeCases()
7664 {2, glu::TYPE_FLOAT_MAT3X2}, {2, glu::TYPE_FLOAT_MAT3}, {3, glu::TYPE_FLOAT_MAT3X4}, in generateBufferVariableTypeBasicTypeCases()
7665 {2, glu::TYPE_FLOAT_MAT4X2}, {3, glu::TYPE_FLOAT_MAT4X3}, {2, glu::TYPE_FLOAT_MAT4}, in generateBufferVariableTypeBasicTypeCases()
7720 glu::GLSLVersion glslVersion) in generateBufferVariableTypeBlock()
7724 new ResourceDefinition::Shader(program, glu::SHADERTYPE_COMPUTE, glslVersion)); in generateBufferVariableTypeBlock()
7727 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_BUFFER)); in generateBufferVariableTypeBlock()
7734glu::GLSLVersion glslVersion, int index, bool onlyExtensionStages) in generateBufferVariableRandomCase()
7738 const glu::DataType type = generateRandomDataType(rnd, true); in generateBufferVariableRandomCase()
7739 … const glu::Layout layout = generateRandomVariableLayout(rnd, type, true); in generateBufferVariableRandomCase()
7743 new ResourceDefinition::StorageQualifier(defaultBlock, glu::STORAGE_BUFFER)); in generateBufferVariableRandomCase()
7763 glu::GLSLVersion glslVersion) in generateBufferVariableRandomCases()
7788 …const glu::GLSLVersion glslVersion = glu::getContextTypeGLSLVersion(m_context.getRenderContext().g… in init()
7930 addChild(new BufferBackedBlockInterfaceTestGroup(m_context, glu::STORAGE_UNIFORM)); in init()
7948 addChild(new BufferBackedBlockInterfaceTestGroup(m_context, glu::STORAGE_BUFFER)); in init()