summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/pipelineobj.c
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2015-12-06 15:17:15 +1100
committerTimothy Arceri <[email protected]>2015-12-07 21:41:05 +1100
commit4dd096d74178e66334089fb0ed01cbf2d6117fac (patch)
tree919344cf8b8bc6975b46085a0c3f23b0628f5296 /src/mesa/main/pipelineobj.c
parentda1a01361b0b4b9c727aa9a5a2ebe270a6fa81b7 (diff)
mesa: move pipeline input/output validation inside _mesa_validate_program_pipeline()
This allows validation to be done on rendering calls also. Fixes 3 dEQP-GLES31.functional.separate tests. Cc: "11.1" <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Cc: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/main/pipelineobj.c')
-rw-r--r--src/mesa/main/pipelineobj.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c
index 6710d0d40a4..d8c9ded93dc 100644
--- a/src/mesa/main/pipelineobj.c
+++ b/src/mesa/main/pipelineobj.c
@@ -898,6 +898,21 @@ _mesa_validate_program_pipeline(struct gl_context* ctx,
if (!_mesa_sampler_uniforms_pipeline_are_valid(pipe))
goto err;
+ /* Validate inputs against outputs, this cannot be done during linking
+ * since programs have been linked separately from each other.
+ *
+ * From OpenGL 4.5 Core spec:
+ * "Separable program objects may have validation failures that cannot be
+ * detected without the complete program pipeline. Mismatched interfaces,
+ * improper usage of program objects together, and the same
+ * state-dependent failures can result in validation errors for such
+ * program objects."
+ *
+ * OpenGL ES 3.1 specification has the same text.
+ */
+ if (!_mesa_validate_pipeline_io(pipe))
+ goto err;
+
pipe->Validated = GL_TRUE;
return GL_TRUE;
@@ -933,21 +948,6 @@ _mesa_ValidateProgramPipeline(GLuint pipeline)
* 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.
- *
- * From OpenGL 4.5 Core spec:
- * "Separable program objects may have validation failures that cannot be
- * detected without the complete program pipeline. Mismatched interfaces,
- * improper usage of program objects together, and the same
- * state-dependent failures can result in validation errors for such
- * program objects."
- *
- * OpenGL ES 3.1 specification has the same text.
- */
- if (!_mesa_validate_pipeline_io(pipe))
- pipe->Validated = GL_FALSE;
}
void GLAPIENTRY