Fix blendfunc auditing for texture blending shaders.
authorRudolf Polzer <divVerent@xonotic.org>
Thu, 14 Jan 2016 21:57:29 +0000 (22:57 +0100)
committerRudolf Polzer <divVerent@xonotic.org>
Thu, 14 Jan 2016 21:57:29 +0000 (22:57 +0100)
scripts/shader-audit.sh

index 8aab433ebc783ec62d8c26977e6877f9f39e63b4..61c81c234fc4029c1cc1000426539b1e2a130d38 100755 (executable)
@@ -342,12 +342,16 @@ parse_shaderstage_post()
                        mainalphagen=$ss_alphagen
                elif [ x"$ss_alphagen" = x"vertex" ] && ! $textureblending; then
                        case "$mainblendfunc:$mainalphafunc:$ss_blendfunc:$ss_alphafunc" in
-                               # TODO check against dp
+                               # none, blend
+                               none:none:blend:none) textureblending=true ;;
                                none:none:"gl_src_alpha gl_one_minus_src_alpha":none) textureblending=true ;;
-                               none:none:filter:none) textureblending=true ;;
+                               "gl_one gl_zero":none:blend:none) textureblending=true ;;
+                               "gl_one zl_zero":none:"gl_src_alpha gl_one_minus_src_alpha":none) textureblending=true ;;
+                               # none, alphafunc
                                none:none:none:g*) textureblending=true ;;
-                               "gl_one gl_zero":none:filter:none) textureblending=true ;;
+                               none:none:"gl_one gl_zero":g*) textureblending=true ;;
                                "gl_one gl_zero":none:none:g*) textureblending=true ;;
+                               "gl_one gl_zero":none:"gl_one gl_zero":g*) textureblending=true ;;
                                *)
                                        err "$parsing_shader uses texture blending, but that requires first stage to have no blendfunc/alphatest, and requires second stage to be blendfunc filter"
                                        ;;