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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev