Lines Matching defs:program

188 void drawWithProgram (glu::RenderContext& renderCtx, deUint32 program)
201 gl.useProgram(program);
208 glu::draw(renderCtx, program, DE_LENGTH_OF_ARRAY(vertexArrays), &vertexArrays[0], glu::pr::Triangles(DE_LENGTH_OF_ARRAY(quadIndices), &quadIndices[0]));
348 void logProgram (TestLog& log, glu::RenderContext& renderCtx, glu::Program& program, ShaderAllocator& shaders)
350 log << TestLog::ShaderProgram(program.getLinkStatus(), program.getInfoLog());
363 void logVertexFragmentProgram (TestLog& log, glu::RenderContext& renderCtx, glu::Program& program, glu::Shader& vertShader, glu::Shader& fragShader)
367 log << TestLog::ShaderProgram(program.getLinkStatus(), program.getInfoLog());
440 // Base class for simple program API tests
482 const GLuint program = glCreateProgram();
484 TCU_CHECK(program != 0);
486 glAttachShader(program, m_vertShader);
487 glAttachShader(program, m_fragShader);
490 glLinkProgram(program);
492 m_program = program;
768 glu::Program program (renderCtx);
773 program.attachShader(shader.getShader());
774 program.attachShader(supportShader.getShader());
776 program.link();
779 logVertexFragmentProgram(log, renderCtx, program, shader, supportShader);
781 logVertexFragmentProgram(log, renderCtx, program, supportShader, shader);
815 // Base class for program state persistence cases
823 void buildProgram (glu::Program& program, ShaderAllocator& shaders);
824 void verify (glu::Program& program, const glu::ProgramInfo& reference);
828 virtual void executeForProgram (glu::Program& program, ShaderAllocator& shaders) = 0;
843 void ProgramStateCase::buildProgram (glu::Program& program, ShaderAllocator& shaders)
853 program.attachShader(vertShader.getShader());
854 program.attachShader(fragShader.getShader());
855 program.link();
857 logProgram(log, m_context.getRenderContext(), program, shaders);
860 void ProgramStateCase::verify (glu::Program& program, const glu::ProgramInfo& reference)
863 const glu::ProgramInfo& programInfo = program.getInfo();
867 log << TestLog::Message << "Fail, link status may only change as a result of linking or loading a program binary." << TestLog::EndMessage;
879 log << TestLog::Message << "Fail, program infolog changed." << TestLog::EndMessage;
892 glu::Program program (renderCtx);
894 buildProgram(program, shaders);
896 if (program.getLinkStatus())
898 glu::ProgramInfo programInfo = program.getInfo();
900 executeForProgram(program, shaders);
902 verify(program, programInfo);
904 logProgram(log, renderCtx, program, shaders);
908 log << TestLog::Message << "Fail, couldn't link program." << TestLog::EndMessage;
927 const std::string caseDesc = "Build program, " + desc + ", for " + shaderTypeName + " shader.";
935 // Specialized program state cases
949 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
955 program.detachShader(caseShader.getShader());
971 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
977 program.detachShader(caseShader.getShader());
978 program.attachShader(caseShader.getShader());
994 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1000 program.detachShader(caseShader.getShader());
1017 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1023 program.detachShader(caseShader.getShader());
1025 program.attachShader(shaders.createShader(m_shaderType).getShader());
1041 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1048 DE_UNREF(program);
1064 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1072 DE_UNREF(program);
1097 // Base class for program binary cases
1108 void getProgramBinary (ProgramBinary& out, GLuint program);
1109 void loadProgramBinary (ProgramBinary& binary, GLuint program);
1152 void ProgramBinaryCase::getProgramBinary (ProgramBinary& out, GLuint program)
1155 glGetProgramiv(program, GL_PROGRAM_BINARY_LENGTH, &binaryLength);
1165 GLU_CHECK_CALL(glGetProgramBinary(program, (GLsizei)out.data.size(), &actualLength, &format, &(out.data[0])));
1173 void ProgramBinaryCase::loadProgramBinary (ProgramBinary& binary, GLuint program)
1175 glProgramBinary(program, binary.format, &binary.data[0], (GLsizei)binary.data.size());
1176 GLU_CHECK_MSG("Failed to load program binary.");
1202 log << TestLog::Message << "No program binary formats are supported." << TestLog::EndMessage;
1217 // Simple program binary case
1238 glu::ShaderProgram program (m_context.getRenderContext(), sources);
1240 if (program.isOk())
1244 getProgramBinary(binary, program.getProgram());
1294 void setUniformsRandom (glu::ShaderProgram& program)
1297 const deUint32 glProg = program.getProgram();
1317 void verifyUniformInt (glu::ShaderProgram& program, const std::string& name)
1319 const GLint intLoc = glGetUniformLocation(program.getProgram(), name.c_str());
1322 glGetUniformiv(program.getProgram(), intLoc, &intVar);
1331 void verifyUniformFloat (glu::ShaderProgram& program, const std::string& name)
1333 const GLint floatLoc = glGetUniformLocation(program.getProgram(), name.c_str());
1336 glGetUniformfv(program.getProgram(), floatLoc, &floatVar);
1345 void verifyUniformsReset (glu::ShaderProgram& program)
1349 verifyUniformInt (program, "u_boolVar");
1350 verifyUniformInt (program, "u_intVar");
1351 verifyUniformFloat (program, "u_floatVar");
1363 glu::ShaderProgram program (m_context.getRenderContext(), sources);
1365 log << program;
1367 TCU_CHECK_MSG(program.isOk(), "Couldn't build program");
1372 getProgramBinary(binary, program.getProgram());
1375 setUniformsRandom(program);
1379 drawWithProgram(m_context.getRenderContext(), program.getProgram());
1380 loadProgramBinary(binary, program.getProgram());
1382 verifyUniformsReset(program);
1389 // Base class for program state persistence cases
1397 void buildProgram (glu::Program& program, ShaderAllocator& shaders);
1401 virtual void executeForProgram (glu::Program& program, ShaderAllocator& shaders) = 0;
1402 virtual void verify (glu::Program& program, const ProgramBinary& binary);
1417 void ProgramBinaryPersistenceCase::buildProgram (glu::Program& program, ShaderAllocator& shaders)
1427 program.attachShader(vertShader.getShader());
1428 program.attachShader(fragShader.getShader());
1429 program.link();
1431 logProgram(log, m_context.getRenderContext(), program, shaders);
1434 void ProgramBinaryPersistenceCase::verify (glu::Program& program, const ProgramBinary& binary)
1439 getProgramBinary(currentBinary, program.getProgram());
1443 log << TestLog::Message << "Fail, program binary may only change as a result of linking or loading." << TestLog::EndMessage;
1456 glu::Program program (renderCtx);
1458 buildProgram(program, shaders);
1460 if (program.getLinkStatus())
1463 getProgramBinary(binary, program.getProgram());
1465 executeForProgram(program, shaders);
1467 verify(program, binary);
1469 logProgram(log, renderCtx, program, shaders);
1473 log << TestLog::Message << "Fail, couldn't link program." << TestLog::EndMessage;
1492 const std::string caseDesc = "Build program, " + desc + ", for " + shaderTypeName + " shader.";
1500 // Specialized program state cases
1514 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1520 program.detachShader(caseShader.getShader());
1536 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1542 program.detachShader(caseShader.getShader());
1543 program.attachShader(caseShader.getShader());
1559 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1565 program.detachShader(caseShader.getShader());
1582 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1588 program.detachShader(caseShader.getShader());
1590 program.attachShader(shaders.createShader(m_shaderType).getShader());
1606 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1613 DE_UNREF(program);
1629 void executeForProgram (glu::Program& program, ShaderAllocator& shaders)
1637 DE_UNREF(program);
1734 // program binary
1743 simpleCaseGroup->addChild(new ProgramBinarySimpleCase (m_context, "get_program_binary_vertex_fragment", "Get vertex and fragment shader program binary"));
1744 simpleCaseGroup->addChild(new ProgramBinaryUniformResetCase (m_context, "uniform_reset_on_binary_load", "Verify uniform reset on successful load of program binary"));