vc4: Add a little helper for clamping to [0,1].
authorEric Anholt <eric@anholt.net>
Sun, 11 Jan 2015 02:22:22 +0000 (15:22 +1300)
committerEric Anholt <eric@anholt.net>
Sun, 11 Jan 2015 04:17:20 +0000 (17:17 +1300)
src/gallium/drivers/vc4/vc4_program.c

index 2ab7da90dd78e36cd0bd6bdbc3680508069536dd..2b546eeb43346e141ee2b6b276a5f98249a9f453 100644 (file)
@@ -315,6 +315,14 @@ get_swizzled_channel(struct vc4_compile *c,
         }
 }
 
+static inline struct qreg
+qir_SAT(struct vc4_compile *c, struct qreg val)
+{
+        return qir_FMAX(c,
+                        qir_FMIN(c, val, qir_uniform_f(c, 1.0)),
+                        qir_uniform_f(c, 0.0));
+}
+
 static struct qreg
 tgsi_to_qir_alu(struct vc4_compile *c,
                 struct tgsi_full_instruction *tgsi_inst,
@@ -686,13 +694,11 @@ tgsi_to_qir_tex(struct vc4_compile *c,
         }
 
         if (c->key->tex[unit].wrap_s == PIPE_TEX_WRAP_CLAMP) {
-                s = qir_FMIN(c, qir_FMAX(c, s, qir_uniform_f(c, 0.0)),
-                             qir_uniform_f(c, 1.0));
+                s = qir_SAT(c, s);
         }
 
         if (c->key->tex[unit].wrap_t == PIPE_TEX_WRAP_CLAMP) {
-                t = qir_FMIN(c, qir_FMAX(c, t, qir_uniform_f(c, 0.0)),
-                             qir_uniform_f(c, 1.0));
+                t = qir_SAT(c, t);
         }
 
         qir_TEX_T(c, t, texture_u[next_texture_u++]);