summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_emit.cpp3
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp5
2 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
index 350d544..27160fb 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
@@ -561,6 +561,9 @@ vec4_visitor::run()
setup_payload();
reg_allocate();
+ if (failed)
+ return false;
+
brw_set_access_mode(p, BRW_ALIGN_16);
generate_code();
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 1bfd84d..d5fd21d 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
@@ -39,7 +39,6 @@ assign(int *reg_hw_locations, reg *reg)
void
vec4_visitor::reg_allocate_trivial()
{
- int last_grf = 0;
int hw_reg_mapping[this->virtual_grf_count];
bool virtual_grf_used[this->virtual_grf_count];
int i;
@@ -84,9 +83,9 @@ vec4_visitor::reg_allocate_trivial()
assign(hw_reg_mapping, &inst->src[2]);
}
- if (last_grf >= BRW_MAX_GRF) {
+ if (prog_data->total_grf > BRW_MAX_GRF) {
fail("Ran out of regs on trivial allocator (%d/%d)\n",
- last_grf, BRW_MAX_GRF);
+ prog_data->total_grf, BRW_MAX_GRF);
}
}