rsx: Fix upscaled image reconstruction

- Base the upscaling on the real source and not the "attr" parameter.
- In case of reconstruction, the source is much larger than the subslice in "attr"
This commit is contained in:
kd-11 2020-11-29 19:30:55 +03:00 committed by kd-11
parent 67f48ce21c
commit 2aa5c437e8
4 changed files with 31 additions and 63 deletions

View file

@ -1484,8 +1484,8 @@ namespace rsx
framebuffer_status_valid = true;
}
std::tie(region.x1, region.y1) = rsx::apply_resolution_scale<false>(x1, y1);
std::tie(region.x2, region.y2) = rsx::apply_resolution_scale<true>(x2, y2);
std::tie(region.x1, region.y1) = rsx::apply_resolution_scale<false>(x1, y1, m_framebuffer_layout.width, m_framebuffer_layout.height);
std::tie(region.x2, region.y2) = rsx::apply_resolution_scale<true>(x2, y2, m_framebuffer_layout.width, m_framebuffer_layout.height);
return true;
}
@ -1767,8 +1767,6 @@ namespace rsx
result.texcoord_control_mask |= u32(method_registers.point_sprite_control_mask()) << 16;
}
const auto resolution_scale = rsx::get_resolution_scale();
for (u32 i = 0; i < rsx::limits::fragment_textures_count; ++i)
{
auto &tex = rsx::method_registers.fragment_textures[i];