--- src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp b/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp index d7966d2..a4abb88 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp @@ -182,6 +182,7 @@ fs_visitor::register_coalesce() src_size = virtual_grf_sizes[inst->src[0].reg]; assert(src_size <= MAX_SAMPLER_MESSAGE_SIZE); + assert(inst->src[0].width % 8 == 0); channels_remaining = src_size; memset(mov, 0, sizeof(mov)); @@ -196,12 +197,14 @@ fs_visitor::register_coalesce() reg_to_offset[i] = i; } mov[0] = inst; - channels_remaining -= inst->sources; + channels_remaining -= inst->regs_written; } else { const int offset = inst->src[0].reg_offset; reg_to_offset[offset] = inst->dst.reg_offset; + if (inst->src[0].width == 16) + reg_to_offset[offset + 1] = inst->dst.reg_offset + 1; mov[offset] = inst; - channels_remaining--; + channels_remaining -= inst->regs_written; } if (channels_remaining) -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev