diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_builder.h | 8 |
1 files changed, 6 insertions, 2 deletions
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; } |