From: Jason Ekstrand Date: Wed, 10 Sep 2014 18:28:27 +0000 (-0700) Subject: i965/fs: Make null_reg_* const members of fs_visitor instead of globals X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1c89e098e8e644d6c33b36fabbba0b8d675d115d;p=mesa.git i965/fs: Make null_reg_* const members of fs_visitor instead of globals We also set the register width equal to the dispatch width. Right now, this is effectively a no-op since we don't do anything with it. However, it will be important once we add an actual width field to fs_reg. Signed-off-by: Jason Ekstrand Reviewed-by: Matt Turner --- diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index 108e5b34d9f..9c6b047d6ea 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -134,9 +134,6 @@ half(const fs_reg ®, unsigned idx) } static const fs_reg reg_undef; -static const fs_reg reg_null_f(retype(brw_null_reg(), BRW_REGISTER_TYPE_F)); -static const fs_reg reg_null_d(retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); -static const fs_reg reg_null_ud(retype(brw_null_reg(), BRW_REGISTER_TYPE_UD)); class ip_record : public exec_node { public: @@ -206,6 +203,9 @@ public: class fs_visitor : public backend_visitor { public: + const fs_reg reg_null_f; + const fs_reg reg_null_d; + const fs_reg reg_null_ud; fs_visitor(struct brw_context *brw, void *mem_ctx, diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index f25f439e1a4..ba9f6e1640d 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -3315,6 +3315,9 @@ fs_visitor::fs_visitor(struct brw_context *brw, unsigned dispatch_width) : backend_visitor(brw, shader_prog, &fp->Base, &prog_data->base, MESA_SHADER_FRAGMENT), + reg_null_f(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_F)), + reg_null_d(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_D)), + reg_null_ud(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_UD)), key(key), prog_data(&prog_data->base), dispatch_width(dispatch_width) { diff --git a/src/mesa/drivers/dri/i965/brw_reg.h b/src/mesa/drivers/dri/i965/brw_reg.h index 28d3d943327..9638c779f91 100644 --- a/src/mesa/drivers/dri/i965/brw_reg.h +++ b/src/mesa/drivers/dri/i965/brw_reg.h @@ -602,6 +602,12 @@ brw_null_reg(void) return brw_vec8_reg(BRW_ARCHITECTURE_REGISTER_FILE, BRW_ARF_NULL, 0); } +static inline struct brw_reg +brw_null_vec(unsigned width) +{ + return brw_vecn_reg(width, BRW_ARCHITECTURE_REGISTER_FILE, BRW_ARF_NULL, 0); +} + static inline struct brw_reg brw_address_reg(unsigned subnr) {