From fccd15524f4c5b863e2e6570c66dbf1c15fee404 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 11 Aug 2015 14:23:57 -0700 Subject: i965/fs: fix regs_written in LOAD_PAYLOAD for doubles v2: Account for the stride of the dst (Iago) Signed-off-by: Iago Toral Quiroga Reviewed-by: Kenneth Graunke Reviewed-by: Jordan Justen --- src/mesa/drivers/dri/i965/brw_fs_builder.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_fs_builder.h b/src/mesa/drivers/dri/i965/brw_fs_builder.h index 9a3cc3a50c2..268ecc6f4ac 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_builder.h +++ b/src/mesa/drivers/dri/i965/brw_fs_builder.h @@ -557,8 +557,12 @@ namespace brw { { instruction *inst = emit(SHADER_OPCODE_LOAD_PAYLOAD, dst, src, sources); inst->header_size = header_size; - inst->regs_written = header_size + - (sources - header_size) * (dispatch_width() / 8); + inst->regs_written = header_size; + for (unsigned i = header_size; i < sources; i++) { + inst->regs_written += + DIV_ROUND_UP(dispatch_width() * type_sz(src[i].type) * + dst.stride, REG_SIZE); + } return inst; } -- cgit v1.2.3