mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 23:11:25 +12:00
rsx: Fix section base offset calculation for blit_dst targets which affects confirmed memory range
- Fixes flushes only writing partially to target memory
This commit is contained in:
parent
4e3ec162e2
commit
ec9aa74008
1 changed files with 12 additions and 3 deletions
|
@ -2888,9 +2888,19 @@ namespace rsx
|
||||||
typeless_info.dst_context = texture_upload_context::blit_engine_dst;
|
typeless_info.dst_context = texture_upload_context::blit_engine_dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
verify(HERE), cached_dest || dst_is_render_target;
|
||||||
|
|
||||||
// Calculate number of bytes actually modified
|
// Calculate number of bytes actually modified
|
||||||
u32 mem_length;
|
u32 mem_base, mem_length;
|
||||||
const u32 mem_base = dst_address - dst.rsx_address;
|
if (dst_is_render_target)
|
||||||
|
{
|
||||||
|
mem_base = dst_address - dst_subres.base_address;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mem_base = dst_address - cached_dest->get_section_base();
|
||||||
|
}
|
||||||
|
|
||||||
if (dst.clip_height == 1)
|
if (dst.clip_height == 1)
|
||||||
{
|
{
|
||||||
mem_length = dst.clip_width * dst_bpp;
|
mem_length = dst.clip_width * dst_bpp;
|
||||||
|
@ -2916,7 +2926,6 @@ namespace rsx
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
verify(HERE), dst_is_render_target;
|
|
||||||
dst_subres.surface->on_write();
|
dst_subres.surface->on_write();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue