rsx: Bounds check on local resource for atlas merge.

- Local resources can also have padded pitch dimensions and false-positives on range overlap tests
This commit is contained in:
kd-11 2019-04-29 18:41:02 +03:00 committed by kd-11
parent 63f9b8e0c6
commit 48cb265c2c
1 changed files with 8 additions and 0 deletions

View File

@ -1753,6 +1753,14 @@ namespace rsx
const auto clipped = rsx::intersect_region(address, slice_w, slice_h, bpp,
section->get_section_base(), normalized_width, section->get_height(), section_bpp, pitch);
// Rect intersection test
// TODO: Make the intersection code cleaner with proper 2D regions
if (std::get<0>(clipped).x >= section->get_width())
{
// Overlap lies outside the image area!
return;
}
const auto slice_begin = u32(slice * src_slice_h);
const auto slice_end = u32(slice_begin + slice_h);