Section 7.3 of the OpenGL ES 3.2 specification says:
"Linking can fail for [...] any of the following reasons:
* program contains an object to form a tessellation control
shader [...] and [...] the program is not separable and
contains no object to form a tessellation evaluation shader"
Since the test is trying to check for a draw time error, it should use
a separable program - otherwise we may hit a link error.
Fixes a bug in:
dEQP-GLES31.functional.debug.negative_coverage.*.tessellation.single_tessellation_stage
Change-Id: Ida906e21c3e3534fd2a8c7bac0334083881bdb19
makeTessPipelineSources(tcu::StringTemplate(vertexShaderSource).specialize(args),
tcu::StringTemplate(fragmentShaderSource).specialize(args),
tcu::StringTemplate(tessControlShaderSource).specialize(args),
- "")); // missing tessEvalShaderSource
+ "") // missing tessEvalShaderSource
+ << glu::ProgramSeparable(true));
tcu::TestLog& log = ctx.getLog();
log << program;
+ if (!program.isOk())
+ TCU_THROW(TestError, "failed to build program");
+
ctx.glUseProgram(program.getProgram());
ctx.expectError(GL_NO_ERROR);