diff options
author | Kenneth Graunke <[email protected]> | 2011-12-23 19:57:08 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2011-12-27 14:33:37 -0800 |
commit | 443c8d1ab7ddad9392046e041e4e9a4fda7cd6e7 (patch) | |
tree | 3e656dbcb2afafa113567175884195c256b84440 /src/mesa | |
parent | 7420c9dab4aaf87e6b840410226c296c4668a48f (diff) |
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 <[email protected]>
Tested-by: Christopher James Halse Rogers <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Signed-off-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/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 93ae3d61cac..95aa30614b1 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 && |