mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 19:00:13 +01:00
mesa: Do a draw time check for TES && !TCS in ES 3.x.
ES 3.x requires both TCS and TES to be present. We already checked the TCS && !TES case above, so we just have to check !TCS && TES here. Note that this is allowed in OpenGL, just not ES. This fixes a subcase of: dEQP-GLES31.functional.debug.negative_coverage.*.tessellation.single_tessellation_stage Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
This commit is contained in:
parent
05a56893aa
commit
365afbdaef
1 changed files with 14 additions and 0 deletions
|
|
@ -264,6 +264,20 @@ check_valid_to_render(struct gl_context *ctx, const char *function)
|
|||
|
||||
switch (ctx->API) {
|
||||
case API_OPENGLES2:
|
||||
/* Section 11.2 (Tessellation) of the ES 3.2 spec says:
|
||||
*
|
||||
* "An INVALID_OPERATION error is generated by any command that
|
||||
* transfers vertices to the GL if the current program state has
|
||||
* one but not both of a tessellation control shader and tessellation
|
||||
* evaluation shader."
|
||||
*/
|
||||
if (_mesa_is_gles3(ctx) &&
|
||||
ctx->TessEvalProgram._Current && !ctx->TessCtrlProgram._Current) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"%s(tess ctrl shader is missing)", function);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* For ES2, we can draw if we have a vertex program/shader). */
|
||||
return ctx->VertexProgram._Current != NULL;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue