Fixes metadata guess when instructions in the program specify a destination register with non-zero reg_offset and when the payload of a LOAD_PAYLOAD spans several registers. --- src/mesa/drivers/dri/i965/brw_fs.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index eccae06..163aa41 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -3070,7 +3070,7 @@ fs_visitor::lower_load_payload() foreach_block_and_inst_safe (block, fs_inst, inst, cfg) { if (inst->dst.file == GRF) { - const int dst_reg = vgrf_to_reg[inst->dst.reg]; + const int dst_reg = vgrf_to_reg[inst->dst.reg] + inst->dst.reg_offset; bool force_sechalf = inst->force_sechalf && !inst->force_writemask_all; bool toggle_sechalf = inst->dst.width == 16 && @@ -3119,7 +3119,7 @@ fs_visitor::lower_load_payload() } if (dst.file == GRF) { - const int dst_reg = vgrf_to_reg[dst.reg]; + const int dst_reg = vgrf_to_reg[dst.reg] + dst.reg_offset; const bool force_writemask = mov->force_writemask_all; metadata[dst_reg].force_writemask_all = force_writemask; metadata[dst_reg].force_sechalf = mov->force_sechalf; -- 2.1.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev