Mesa (master): i965/fs: Fix lower_load_payload() to take into account non-zero reg_offset.
Francisco Jerez
currojerez at kemper.freedesktop.org
Mon Feb 23 18:55:50 UTC 2015
Module: Mesa
Branch: master
Commit: ea7b4d25c8da352f4ca0dcaefa4fadb9e202636e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea7b4d25c8da352f4ca0dcaefa4fadb9e202636e
Author: Francisco Jerez <currojerez at riseup.net>
Date: Fri Feb 6 15:06:05 2015 +0200
i965/fs: Fix lower_load_payload() to take into account non-zero reg_offset.
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.
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
---
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 e396fbc..4fa6790 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -3127,7 +3127,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 &&
@@ -3176,7 +3176,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;
More information about the mesa-commit
mailing list