Iago Toral <ito...@igalia.com> writes: > On Wed, 2016-09-07 at 18:48 -0700, Francisco Jerez wrote: >> 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. >> --- >> src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp >> b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp >> index 42ed131..b06606b 100644 >> --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp >> +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp >> @@ -4820,7 +4820,8 @@ 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 * >> dst.component_size(bld.dispatch_width()), >> + src, >> src.component_size(bld.dispatch_width()))); > > I think you need to multiply the sizes of the regions for dst and src > by the number of components being shuffled, like in the original > assert, otherwise we would only be testing if there is overlap for the > first component. > Good point, thanks!
>> for (unsigned i = 0; i < components; i++) { >> const fs_reg component_i = offset(src, bld, i);
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev