diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2015-11-23 16:01:44 -0800 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2015-12-07 21:51:23 -0800 |
commit | e3e70698c3cfa7e9acccd6eddfb37516c45d5ac2 (patch) | |
tree | b4aef58b682600a51b4ee0339ef1b7723bb79efb /src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | |
parent | 6ef8149bcd1f11c7e4b6e9191bfd9ba6d31170e1 (diff) | |
download | external_mesa3d-e3e70698c3cfa7e9acccd6eddfb37516c45d5ac2.zip external_mesa3d-e3e70698c3cfa7e9acccd6eddfb37516c45d5ac2.tar.gz external_mesa3d-e3e70698c3cfa7e9acccd6eddfb37516c45d5ac2.tar.bz2 |
i965/vec4: Use byte offsets for UBO pulls on Sandy Bridge
Previously, the VS_OPCODE_PULL_CONSTANT_LOAD opcode operated on
vec4-aligned byte offsets on Iron Lake and below and worked in terms of
vec4 offsets on Sandy Bridge. On Ivy Bridge, we add a new *LOAD_GEN7
variant which works in terms of vec4s. We're about to change the GEN7
version to work in terms of bytes, so this is a nice unification.
Cc: "11.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index b1e5398..36b8933 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -1474,10 +1474,10 @@ vec4_visitor::get_pull_constant_offset(bblock_t * block, vec4_instruction *inst, emit_before(block, inst, ADD(dst_reg(index), *reladdr, brw_imm_d(reg_offset))); - /* Pre-gen6, the message header uses byte offsets instead of vec4 + /* Pre-gen7, the message header uses byte offsets instead of vec4 * (16-byte) offset units. */ - if (devinfo->gen < 6) { + if (devinfo->gen < 7) { emit_before(block, inst, MUL(dst_reg(index), index, brw_imm_d(16))); } @@ -1488,7 +1488,7 @@ vec4_visitor::get_pull_constant_offset(bblock_t * block, vec4_instruction *inst, emit_before(block, inst, MOV(dst_reg(offset), brw_imm_d(reg_offset))); return offset; } else { - int message_header_scale = devinfo->gen < 6 ? 16 : 1; + int message_header_scale = devinfo->gen < 7 ? 16 : 1; return brw_imm_d(reg_offset * message_header_scale); } } |