[Mesa-dev] [PATCH] i965/blorp: Fix the register types on blorp's push constants.
Paul Berry
stereotype441 at gmail.com
Mon Oct 7 15:29:34 PDT 2013
On 21 September 2013 16:59, Eric Anholt <eric at anholt.net> wrote:
> 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(-)
>
Reviewed-by: Paul Berry <stereotype441 at gmail.com>
>
> 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
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131007/eba79099/attachment.html>
More information about the mesa-dev
mailing list