Revert "i965: fix problem with constant out of bounds access (v2)"
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 30 May 2013 06:27:45 +0000 (23:27 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 30 May 2013 06:31:09 +0000 (23:31 -0700)
This reverts commit 98dfd59a0445666060c97b0dccaf0e9f030b547a.

The patch was clearly not Piglit tested, as it caused at least 225
tests to start crashing with assertion failures.  That was before my
desktop tanked and the test run died completely.

src/mesa/drivers/dri/i965/brw_fs.cpp

index 9efdfc8e4859cd5ee7d91a0c2e609e0269ba6e18..baaa25c13473171ae963b150c021cd92f908653b 100644 (file)
@@ -1504,13 +1504,7 @@ fs_visitor::remove_dead_constants()
            if (inst->src[i].file != UNIFORM)
               continue;
 
-           /* if we get a negative constant nr or one greater than we can
-            * handle, this can cause an overflow, we can't just refuse to
-            * build, so just go undefined and alias everyone to constant 0.
-            */
-           if (constant_nr < 0 || constant_nr >= (int)c->prog_data.nr_params) {
-              constant_nr = 0;
-           }
+           assert(constant_nr < (int)c->prog_data.nr_params);
 
            /* For now, set this to non-negative.  We'll give it the
             * actual new number in a moment, in order to keep the
@@ -1558,10 +1552,6 @@ fs_visitor::remove_dead_constants()
         if (inst->src[i].file != UNIFORM)
            continue;
 
-         /* as above alias to 0 */
-        if (constant_nr < 0 || constant_nr >= (int)c->prog_data.nr_params) {
-           constant_nr = 0;
-        }
         assert(this->params_remap[constant_nr] != -1);
         inst->src[i].reg = this->params_remap[constant_nr];
         inst->src[i].reg_offset = 0;