mesa: do not validate io of non-compute and compute stage
authorTapani Pälli <tapani.palli@intel.com>
Mon, 4 Jan 2016 07:55:52 +0000 (09:55 +0200)
committerTapani Pälli <tapani.palli@intel.com>
Wed, 13 Jan 2016 05:31:57 +0000 (07:31 +0200)
Fixes regression on SSO tests that have both non-compute and
compute programs in a program pipeline.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93532
Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
src/mesa/main/shader_query.cpp

index 014977b28ca061c3313c2b43cea2700d4fd41bf3..a18b860022d4d8b0e1fe0c0a74d8a46cd15aa2d1 100644 (file)
@@ -1500,6 +1500,13 @@ _mesa_validate_pipeline_io(struct gl_pipeline_object *pipeline)
 
    for (idx = prev + 1; idx < ARRAY_SIZE(pipeline->CurrentProgram); idx++) {
       if (shProg[idx]) {
+         /* Pipeline might include both non-compute and a compute program, do
+          * not attempt to validate varyings between non-compute and compute
+          * stage.
+          */
+         if (shProg[idx]->_LinkedShaders[idx]->Stage == MESA_SHADER_COMPUTE)
+            break;
+
          if (!validate_io(shProg[prev]->_LinkedShaders[prev],
                           shProg[idx]->_LinkedShaders[idx],
                           shProg[prev]->IsES || shProg[idx]->IsES))