From: Francisco Jerez Date: Fri, 2 Sep 2016 02:36:23 +0000 (-0700) Subject: i965/fs: Stop using fs_reg::in_range() in favor of regions_overlap(). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c057278c065747c1f53579504bf109cafb7cb390;p=mesa.git i965/fs: Stop using fs_reg::in_range() in favor of regions_overlap(). Its only use left in the FS back-end should be using regions_overlap() instead to avoid getting a false negative result in cases where source and destination overlap but the former starts before the latter in the VGRF file. v2: Put back lost components factor (Iago). Reviewed-by: Iago Toral Quiroga --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 42ed131854e..a5679a138ec 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -4820,7 +4820,9 @@ shuffle_64bit_data_for_32bit_write(const fs_builder &bld, assert(type_sz(src.type) == 8); assert(type_sz(dst.type) == 4); - assert(!src.in_range(dst, 2 * components * bld.dispatch_width() / 8)); + assert(!regions_overlap( + dst, 2 * components * dst.component_size(bld.dispatch_width()), + src, components * src.component_size(bld.dispatch_width()))); for (unsigned i = 0; i < components; i++) { const fs_reg component_i = offset(src, bld, i);