blob: 34932c278afedf1439ee07f35b43da32bdb143f6 [file] [log] [blame]
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 56cb447..a86c9bd 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1121,7 +1121,12 @@ fs_visitor::remove_dead_constants()
if (inst->src[i].file != UNIFORM)
continue;
- assert(constant_nr < (int)c->prog_data.nr_params);
+ if (constant_nr >= (int)c->prog_data.nr_params) {
+ ralloc_free(this->params_remap);
+ this->params_remap = NULL;
+ fail("accessed non-existent uniform");
+ return false;
+ }
/* For now, set this to non-negative. We'll give it the
* actual new number in a moment, in order to keep the
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 2dd212a..0593a1f 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -2270,6 +2270,8 @@ fs_visitor::fs_visitor(struct brw_wm_compile *c, struct gl_shader_program *prog,
this->virtual_grf_use = NULL;
this->live_intervals_valid = false;
+ this->params_remap = NULL;
+
this->force_uncompressed_stack = 0;
this->force_sechalf_stack = 0;
}