On 12/07/2015 08:12 AM, Tapani Pälli wrote:
Does this fix something in the remaining OpenGL ES 3.1 CTS failures? If

Oops, yes it does. Looks like we need this now, let's try to optimize it a bit more light-weight later. One thing that will make it tiny bit faster is when resource list will be separated as multiple lists according to type, this is something I'm working on.

Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>


not I think we should think about this more, how can we move this (maybe
just partially) to happen already during UseProgramStages, it feels too
expensive for draw time.

FYI I'm working on to fix remaining SSO CTS failure(s), let me know if
you are working on this as well. I have a partial fix here which I'm
trying to rewrite to be cheaper (this is a bit similar case, too
expensive):

http://cgit.freedesktop.org/~tpalli/mesa/log/?h=fix_sso


On 12/06/2015 06:33 AM, Timothy Arceri wrote:
This allows validation to be done on rendering calls also.

Fixes 3 dEQP-GLES31.functional.separate tests.

Cc: "11.1" <mesa-sta...@lists.freedesktop.org>
Cc: Tapani Pälli <tapani.pa...@intel.com>
Cc: Kenneth Graunke <kenn...@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to