Mesa (master): i965/vec4: Add non-mutating helper functions to modify src_reg::swizzle and :: negate.
Francisco Jerez
currojerez at kemper.freedesktop.org
Wed Feb 19 15:57:29 UTC 2014
Module: Mesa
Branch: master
Commit: 98306e727b8291507ff4fd5dd5c4806f3fed9202
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=98306e727b8291507ff4fd5dd5c4806f3fed9202
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>
---
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 3be17d8..a592af2 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -148,6 +148,30 @@ offset(src_reg reg, unsigned delta)
return reg;
}
+/**
+ * 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