[Mesa-dev] [PATCH] i965/blorp: Fix the register types on blorp's push constants.
Eric Anholt
eric at anholt.net
Sat Sep 21 16:59:01 PDT 2013
The UD values were getting set up as floats. This happened to work out
because they were used as the second argument where the first was a dword,
and gen6+ doesn't do source conversions. But it did trigger fulsim
warnings, and it meant if you used the push constant as the first operand
you would have been disappointed.
---
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 32 ++++++++++++++--------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
index f07d39f..c1880e3 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
@@ -899,22 +899,22 @@ void
brw_blorp_blit_program::alloc_push_const_regs(int base_reg)
{
#define CONST_LOC(name) offsetof(brw_blorp_wm_push_constants, name)
-#define ALLOC_REG(name) \
- this->name = \
- brw_vec1_reg(BRW_GENERAL_REGISTER_FILE, \
- base_reg + CONST_LOC(name) / 32, \
- (CONST_LOC(name) % 32) / 4)
-
- ALLOC_REG(dst_x0);
- ALLOC_REG(dst_x1);
- ALLOC_REG(dst_y0);
- ALLOC_REG(dst_y1);
- ALLOC_REG(rect_grid_x1);
- ALLOC_REG(rect_grid_y1);
- ALLOC_REG(x_transform.multiplier);
- ALLOC_REG(x_transform.offset);
- ALLOC_REG(y_transform.multiplier);
- ALLOC_REG(y_transform.offset);
+#define ALLOC_REG(name, type) \
+ this->name = \
+ retype(brw_vec1_reg(BRW_GENERAL_REGISTER_FILE, \
+ base_reg + CONST_LOC(name) / 32, \
+ (CONST_LOC(name) % 32) / 4), type)
+
+ ALLOC_REG(dst_x0, BRW_REGISTER_TYPE_UD);
+ ALLOC_REG(dst_x1, BRW_REGISTER_TYPE_UD);
+ ALLOC_REG(dst_y0, BRW_REGISTER_TYPE_UD);
+ ALLOC_REG(dst_y1, BRW_REGISTER_TYPE_UD);
+ ALLOC_REG(rect_grid_x1, BRW_REGISTER_TYPE_F);
+ ALLOC_REG(rect_grid_y1, BRW_REGISTER_TYPE_F);
+ ALLOC_REG(x_transform.multiplier, BRW_REGISTER_TYPE_F);
+ ALLOC_REG(x_transform.offset, BRW_REGISTER_TYPE_F);
+ ALLOC_REG(y_transform.multiplier, BRW_REGISTER_TYPE_F);
+ ALLOC_REG(y_transform.offset, BRW_REGISTER_TYPE_F);
#undef CONST_LOC
#undef ALLOC_REG
}
--
1.8.4.rc3
More information about the mesa-dev
mailing list