Mesa (10.1): i965/vec4: Add non-mutating helper functions to modify src_reg::swizzle and :: negate.

Ian Romanick idr at kemper.freedesktop.org
Thu Feb 27 21:05:07 UTC 2014


Module: Mesa
Branch: 10.1
Commit: 3efb934deee37bc6203577f686c55d658ea4c7c3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3efb934deee37bc6203577f686c55d658ea4c7c3

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Feb 19 15:20:27 2014 +0100

i965/vec4: Add non-mutating helper functions to modify src_reg::swizzle and ::negate.

Reviewed-by: Paul Berry <stereotype441 at gmail.com>
(cherry picked from commit 98306e727b8291507ff4fd5dd5c4806f3fed9202)

---

 src/mesa/drivers/dri/i965/brw_vec4.h |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index e17b5cd..2a1d992 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -142,6 +142,30 @@ public:
    src_reg *reladdr;
 };
 
+/**
+ * Reswizzle a given source register.
+ * \sa brw_swizzle().
+ */
+static inline src_reg
+swizzle(src_reg reg, unsigned swizzle)
+{
+   assert(reg.file != HW_REG);
+   reg.swizzle = BRW_SWIZZLE4(
+      BRW_GET_SWZ(reg.swizzle, BRW_GET_SWZ(swizzle, 0)),
+      BRW_GET_SWZ(reg.swizzle, BRW_GET_SWZ(swizzle, 1)),
+      BRW_GET_SWZ(reg.swizzle, BRW_GET_SWZ(swizzle, 2)),
+      BRW_GET_SWZ(reg.swizzle, BRW_GET_SWZ(swizzle, 3)));
+   return reg;
+}
+
+static inline src_reg
+negate(src_reg reg)
+{
+   assert(reg.file != HW_REG && reg.file != IMM);
+   reg.negate = !reg.negate;
+   return reg;
+}
+
 class dst_reg : public reg
 {
 public:




More information about the mesa-commit mailing list