Lines Matching refs:program
128 bool programContainsIOBlocks (const ProgramInterfaceDefinition::Program* program)
130 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
132 if (shaderContainsIOBlocks(program->getShaders()[shaderNdx]))
155 glu::ShaderType getProgramTransformFeedbackStage (const ProgramInterfaceDefinition::Program* program)
157 if (program->hasStage(glu::SHADERTYPE_GEOMETRY))
160 if (program->hasStage(glu::SHADERTYPE_TESSELLATION_EVALUATION))
163 if (program->hasStage(glu::SHADERTYPE_VERTEX))
245 static std::string getShaderTypeDeclarations (const ProgramInterfaceDefinition::Program* program, const ProgramInterfaceDefinition::Shader* shader)
264 "layout(points, max_vertices=" << program->getGeometryNumOutputVertices() << ") out;\n";
276 buf << "layout(vertices=" << program->getTessellationNumOutputPatchVertices() << ") out;\n";
421 const ProgramInterfaceDefinition::Program* program,
455 program,
468 program,
479 program,
494 program,
505 program,
511 DE_ASSERT(program->getTessellationNumOutputPatchVertices() > 0);
512 for (int ndx = 0; ndx < (int)program->getTessellationNumOutputPatchVertices(); ++ndx)
519 program,
535 const ProgramInterfaceDefinition::Program* program)
548 program,
573 program,
590 const ProgramInterfaceDefinition::Program* program,
614 program,
627 program,
638 program,
653 program,
668 const ProgramInterfaceDefinition::Program* program)
681 program,
706 program,
827 static bool traverseProgramVariablePath (std::vector<VariablePathComponent>& typePath, const ProgramInterfaceDefinition::Program* program, const std::string& path, const VariableSearchFilter& filter)
829 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
831 const ProgramInterfaceDefinition::Shader* shader = program->getShaders()[shaderNdx];
1217 static int getNumFeedbackVaryingComponents (const ProgramInterfaceDefinition::Program* program, const std::string& name)
1226 if (!traverseProgramVariablePath(path, program, name, VariableSearchFilter::createShaderTypeStorageFilter(getProgramTransformFeedbackStage(program), glu::STORAGE_OUT)))
1232 static int getNumXFBComponents (const ProgramInterfaceDefinition::Program* program)
1236 for (int ndx = 0; ndx < (int)program->getTransformFeedbackVaryings().size(); ++ndx)
1237 numComponents += getNumFeedbackVaryingComponents(program, program->getTransformFeedbackVaryings()[ndx]);
1242 static int getNumMaxXFBOutputComponents (const ProgramInterfaceDefinition::Program* program)
1246 for (int ndx = 0; ndx < (int)program->getTransformFeedbackVaryings().size(); ++ndx)
1247 numComponents = de::max(numComponents, getNumFeedbackVaryingComponents(program, program->getTransformFeedbackVaryings()[ndx]));
1301 std::vector<std::string> getProgramInterfaceResourceList (const ProgramInterfaceDefinition::Program* program, ProgramInterface interface)
1317 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
1319 const ProgramInterfaceDefinition::Shader* shader = program->getShaders()[shaderNdx];
1346 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
1348 const ProgramInterfaceDefinition::Shader* shader = program->getShaders()[shaderNdx];
1384 const glu::ShaderType shaderType = (interface == PROGRAMINTERFACE_PROGRAM_INPUT) ? (program->getFirstStage()) : (program->getLastStage());
1386 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
1388 const ProgramInterfaceDefinition::Shader* shader = program->getShaders()[shaderNdx];
1456 const glu::ShaderType xfbStage = getProgramTransformFeedbackStage(program);
1458 for (int varyingNdx = 0; varyingNdx < (int)program->getTransformFeedbackVaryings().size(); ++varyingNdx)
1460 const std::string& varyingName = program->getTransformFeedbackVaryings()[varyingNdx];
1468 if (!traverseProgramVariablePath(path, program, varyingName, VariableSearchFilter::createShaderTypeStorageFilter(xfbStage, glu::STORAGE_OUT)))
1510 * prevent various program resources from being eliminated by the GLSL
1520 glu::ProgramSources generateProgramInterfaceProgramSources (const ProgramInterfaceDefinition::Program* program)
1524 DE_ASSERT(program->isValid());
1526 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
1528 const ProgramInterfaceDefinition::Shader* shader = program->getShaders()[shaderNdx];
1536 << getShaderTypeDeclarations(program, shader)
1576 program,
1591 program);
1651 program,
1662 writeInterfaceWriteExpression(usageBuf, "unusedValue", interface, shader->getType(), program);
1714 if (program->isSeparable())
1717 for (int ndx = 0; ndx < (int)program->getTransformFeedbackVaryings().size(); ++ndx)
1718 sources << glu::TransformFeedbackVarying(program->getTransformFeedbackVaryings()[ndx]);
1720 if (program->getTransformFeedbackMode())
1721 sources << glu::TransformFeedbackMode(program->getTransformFeedbackMode());
1726 bool findProgramVariablePathByPathName (std::vector<VariablePathComponent>& typePath, const ProgramInterfaceDefinition::Program* program, const std::string& pathName, const VariableSearchFilter& filter)
1730 if (!traverseProgramVariablePath(modifiedPath, program, pathName, filter))
1738 ProgramInterfaceDefinition::ShaderResourceUsage getShaderResourceUsage (const ProgramInterfaceDefinition::Program* program, const ProgramInterfaceDefinition::Shader* shader)
1791 retVal.numInputs += 1 * program->getTessellationNumOutputPatchVertices();
1792 retVal.numInputVectors += 1 * program->getTessellationNumOutputPatchVertices();
1793 retVal.numInputComponents += 4 * program->getTessellationNumOutputPatchVertices();
1796 retVal.numOutputs += 1 * program->getTessellationNumOutputPatchVertices();
1797 retVal.numOutputVectors += 1 * program->getTessellationNumOutputPatchVertices();
1798 retVal.numOutputComponents += 4 * program->getTessellationNumOutputPatchVertices();
1803 retVal.numInputs += 1 * program->getTessellationNumOutputPatchVertices();
1804 retVal.numInputVectors += 1 * program->getTessellationNumOutputPatchVertices();
1805 retVal.numInputComponents += 4 * program->getTessellationNumOutputPatchVertices();
1824 ProgramInterfaceDefinition::ProgramResourceUsage getCombinedProgramResourceUsage (const ProgramInterfaceDefinition::Program* program)
1858 for (int shaderNdx = 0; shaderNdx < (int)program->getShaders().size(); ++shaderNdx)
1860 const ProgramInterfaceDefinition::Shader* const shader = program->getShaders()[shaderNdx];
1910 if (program->getTransformFeedbackMode() == GL_INTERLEAVED_ATTRIBS)
1911 retVal.numXFBInterleavedComponents = getNumXFBComponents(program);
1912 else if (program->getTransformFeedbackMode() == GL_SEPARATE_ATTRIBS)
1914 retVal.numXFBSeparateAttribs = (int)program->getTransformFeedbackVaryings().size();
1915 retVal.numXFBSeparateComponents = getNumMaxXFBOutputComponents(program);