Mesa (glsl2): glsl2: Fix the type of (1.0 - arg2) for mix(gen, gen, float).

Eric Anholt anholt at kemper.freedesktop.org
Thu Jul 22 21:27:19 UTC 2010


Module: Mesa
Branch: glsl2
Commit: e65dfa89eef86be127d788ecd5bd23c35c8fbbe4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e65dfa89eef86be127d788ecd5bd23c35c8fbbe4

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 22 14:25:26 2010 -0700

glsl2: Fix the type of (1.0 - arg2) for mix(gen, gen, float).

Previously, we'd constant-fold up a value of vec4(1.0 - arg2, 0, 0, 0).

Fixes:
glsl1-mix(vec4) function

---

 src/glsl/builtin_function.cpp |    6 +++---
 src/glsl/builtins/110/mix     |    6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/glsl/builtin_function.cpp b/src/glsl/builtin_function.cpp
index 10e59e4..ae0eabc 100644
--- a/src/glsl/builtin_function.cpp
+++ b/src/glsl/builtin_function.cpp
@@ -1320,21 +1320,21 @@ static const char *builtins_110_mix = {
    "       (declare (in) vec2 arg0)\n"
    "       (declare (in) vec2 arg1)\n"
    "       (declare (in) float arg2))\n"
-   "     ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
+   "     ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
    "\n"
    "   (signature vec3\n"
    "     (parameters\n"
    "       (declare (in) vec3 arg0)\n"
    "       (declare (in) vec3 arg1)\n"
    "       (declare (in) float arg2))\n"
-   "     ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
+   "     ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
    "\n"
    "   (signature vec4\n"
    "     (parameters\n"
    "       (declare (in) vec4 arg0)\n"
    "       (declare (in) vec4 arg1)\n"
    "       (declare (in) float arg2))\n"
-   "     ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
+   "     ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
    "))\n"
 };
 
diff --git a/src/glsl/builtins/110/mix b/src/glsl/builtins/110/mix
index 032f29e..8638d06 100644
--- a/src/glsl/builtins/110/mix
+++ b/src/glsl/builtins/110/mix
@@ -32,19 +32,19 @@
        (declare (in) vec2 arg0)
        (declare (in) vec2 arg1)
        (declare (in) float arg2))
-     ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))
+     ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))
 
    (signature vec3
      (parameters
        (declare (in) vec3 arg0)
        (declare (in) vec3 arg1)
        (declare (in) float arg2))
-     ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))
+     ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))
 
    (signature vec4
      (parameters
        (declare (in) vec4 arg0)
        (declare (in) vec4 arg1)
        (declare (in) float arg2))
-     ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))
+     ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))
 ))




More information about the mesa-commit mailing list