Mesa (master): i965/vs: Fix incorrect subscript when resetting copy propagation records.

Kenneth Graunke kwg at kemper.freedesktop.org
Tue Dec 27 22:33:29 UTC 2011


Module: Mesa
Branch: master
Commit: 443c8d1ab7ddad9392046e041e4e9a4fda7cd6e7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=443c8d1ab7ddad9392046e041e4e9a4fda7cd6e7

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Dec 23 19:57:08 2011 -0800

i965/vs: Fix incorrect subscript when resetting copy propagation records.

In this code, 'i' loops over the number of virtual GRFs, while 'j' loops
over the number of vector components (0 <= j <= 3).

It can't possibly be correct to see if bit 'i' is set in the destination
writemask, as it will have values much larger than 3.  Clearly this is
supposed to be 'j'.

Found by inspection.

Tested-by: Matt Turner <mattst88 at gmail.com>
Tested-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

---

 .../drivers/dri/i965/brw_vec4_copy_propagation.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
index 93ae3d6..95aa306 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
@@ -323,7 +323,7 @@ vec4_visitor::opt_copy_propagation()
 
 	    for (int i = 0; i < virtual_grf_reg_count; i++) {
 	       for (int j = 0; j < 4; j++) {
-		  if (inst->dst.writemask & (1 << i) &&
+		  if (inst->dst.writemask & (1 << j) &&
 		      cur_value[i][j] &&
 		      cur_value[i][j]->file == GRF &&
 		      cur_value[i][j]->reg == inst->dst.reg &&




More information about the mesa-commit mailing list