summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vec4.h
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2015-11-25 09:36:34 -0800
committerJason Ekstrand <jason.ekstrand@intel.com>2016-04-14 15:59:33 -0700
commit056849772f66582fd7e8a181c3fb16955f84243b (patch)
tree336ddd4e9437b21f68b7a3a2395c7e85c97d7bc0 /src/mesa/drivers/dri/i965/brw_vec4.h
parent479e38ad63ab1421afe4f25d36f434ac2e12e817 (diff)
downloadexternal_mesa3d-056849772f66582fd7e8a181c3fb16955f84243b.zip
external_mesa3d-056849772f66582fd7e8a181c3fb16955f84243b.tar.gz
external_mesa3d-056849772f66582fd7e8a181c3fb16955f84243b.tar.bz2
i965/vec4: Use MOV_INDIRECT instead of reladdr for indirect push constants
This commit moves us to an instruction based model rather than a register-based model for indirects. This is more accurate anyway as we have to emit instructions to resolve the reladdr. It's also a lot simpler because it gets rid of the recursive reladdr problem by design. One side-effect of this is that we need a whole new algorithm in move_uniform_array_access_to_pull_constants. This new algorithm is much more straightforward than the old one and is fairly similar to what we're already doing in the FS backend. Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4.h')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index 9c40ed7..1a98430 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -287,7 +287,8 @@ public:
void emit_pull_constant_load(bblock_t *block, vec4_instruction *inst,
dst_reg dst,
src_reg orig_src,
- int base_offset);
+ int base_offset,
+ src_reg indirect);
void emit_pull_constant_load_reg(dst_reg dst,
src_reg surf_index,
src_reg offset,