aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2013-08-21 22:06:15 -0700
committerKenneth Graunke <[email protected]>2013-08-26 11:21:10 -0700
commita149f744d9dfc116860c04ce30256f7bed96e323 (patch)
tree206384ba9848681d0880e4cf63feea6c6f458737 /src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
parent7aaaa8bc8fb851a4783292a5e1ffdfeda2451dae (diff)
i965/vs: Move base_reg_count computation to brw_alloc_reg_set().
We're soon going to be calling brw_alloc_reg_set() from outside of the visitor, where we don't have the precomputed "max_grf" variable handy. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
index 091d5c1a153..fbd79d03a6a 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
@@ -97,8 +97,10 @@ vec4_visitor::reg_allocate_trivial()
}
static void
-brw_alloc_reg_set(struct brw_context *brw, int base_reg_count)
+brw_alloc_reg_set(struct brw_context *brw)
{
+ int base_reg_count = brw->gen >= 7 ? GEN7_MRF_HACK_START : BRW_MAX_GRF;
+
/* After running split_virtual_grfs(), almost all VGRFs will be of size 1.
* SEND-from-GRF sources cannot be split, so we also need classes for each
* potential message length.
@@ -177,7 +179,6 @@ vec4_visitor::reg_allocate()
{
unsigned int hw_reg_mapping[virtual_grf_count];
int payload_reg_count = this->first_non_payload_grf;
- int base_reg_count = max_grf;
/* Using the trivial allocator can be useful in debugging undefined
* register access as a result of broken optimization passes.
@@ -187,7 +188,7 @@ vec4_visitor::reg_allocate()
calculate_live_intervals();
- brw_alloc_reg_set(brw, base_reg_count);
+ brw_alloc_reg_set(brw);
int node_count = virtual_grf_count;
int first_payload_node = node_count;