[Mesa-dev] [PATCH 1/2] mesa: move pipeline input/output validation inside _mesa_validate_program_pipeline()

Timothy Arceri timothy.arceri at collabora.com
Sat Dec 5 20:33:57 PST 2015


This allows validation to be done on rendering calls also.

Fixes 3 dEQP-GLES31.functional.separate tests.

Cc: "11.1" <mesa-stable at lists.freedesktop.org>
Cc: Tapani Pälli <tapani.palli at intel.com>
Cc: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/main/pipelineobj.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c
index 6710d0d..d8c9ded 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
-- 
2.4.3



More information about the mesa-dev mailing list