aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2015-11-26 21:32:48 +1100
committerTimothy Arceri <[email protected]>2015-11-27 08:44:37 +1100
commitc3ec12ec3c1ddbc72e50df1f5632fe0547a89f7e (patch)
tree07f5c6eda4cc013f5dbfab90b476dd5026e3e357 /src/mesa/main
parent57fc0dd8d5610a0a25cece53b172b0c992421db0 (diff)
glsl: don't generate extra errors in ValidateProgramPipeline
From Section 11.1.3.11 (Validation) of the GLES 3.1 spec: "An INVALID_OPERATION error is generated by any command that trans- fers vertices to the GL or launches compute work if the current set of active program objects cannot be executed, for reasons including:" It then goes on to list the rules we validate in the _mesa_validate_program_pipeline() function. For ValidateProgramPipeline the only mention of generating an error is: "An INVALID_OPERATION error is generated if pipeline is not a name re- turned from a previous call to GenProgramPipelines or if such a name has since been deleted by DeleteProgramPipelines," Which we handle separately. This fixes: ES31-CTS.sepshaderobjs.PipelineApi No regressions on the eEQP 3.1 tests. Cc: Gregory Hainaut <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/pipelineobj.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c
index 04391293919..6710d0d40a4 100644
--- a/src/mesa/main/pipelineobj.c
+++ b/src/mesa/main/pipelineobj.c
@@ -928,8 +928,11 @@ _mesa_ValidateProgramPipeline(GLuint pipeline)
return;
}
- _mesa_validate_program_pipeline(ctx, pipe,
- (ctx->_Shader->Name == pipe->Name));
+ /* ValidateProgramPipeline should not throw errors when pipeline validation
+ * fails and should instead only update the validation status. We pass
+ * false for IsBound to avoid an error being thrown.
+ */
+ _mesa_validate_program_pipeline(ctx, pipe, false);
/* Validate inputs against outputs, this cannot be done during linking
* since programs have been linked separately from each other.