diff options
author | Francisco Jerez <[email protected]> | 2016-09-01 19:36:23 -0700 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2016-09-14 14:50:55 -0700 |
commit | c057278c065747c1f53579504bf109cafb7cb390 (patch) | |
tree | d640dbc40550a1dcd2e039ee4acf52e56af71aa2 /src/mesa | |
parent | b42c13a5b8ac7d643bbf4c1592607811a81b4ebb (diff) |
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 <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
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); |