[Mesa-dev] [PATCH shader-db 2/2] run: Mark shaders with only one stage as separable.

Kenneth Graunke kenneth at whitecape.org
Mon Jul 25 23:54:01 UTC 2016


There are a couple cases where a single shader might happen:

- compute shaders
  (only one stage, no inputs and outputs; separable shouldn't matter)
- vertex shaders with transform feedback
  (we want to retain outputs, but transform feedback varyings are
   specified via the API, not the shader - setting SSO fixes this)
- old shader_test files captured before we started adding "SSO ENABLED".

In any case, it seems harmless or beneficial to enable SSO for all
.shader_test files containing a single shader.

Based on a patch by Marek.
---
 run.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/run.c b/run.c
index 024c8e9..f6ce1bf 100644
--- a/run.c
+++ b/run.c
@@ -633,6 +633,12 @@ main(int argc, char **argv)
             }
             ctx_is_core = type == TYPE_CORE;
 
+            /* If there's only one shader, mark it separable so inputs
+             * and outputs aren't eliminated.
+             */
+            if (num_shaders == 1)
+                use_separate_shader_objects = true;
+
             if (type == TYPE_CORE || type == TYPE_COMPAT) {
                 GLuint prog = glCreateProgram();
 
-- 
2.9.0



More information about the mesa-dev mailing list