mirror of https://github.com/RPCS3/rpcs3.git
rsx: Add missing format check for the RTV<->DSV transfer case
- TODO: Rewrite resource handling routines
This commit is contained in:
parent
4a0e1c79ed
commit
9dab0575fa
|
@ -2586,6 +2586,34 @@ namespace rsx
|
||||||
// Need to lock the affected memory range and actually attach this subres to a locked_region
|
// Need to lock the affected memory range and actually attach this subres to a locked_region
|
||||||
dst_subres.surface->on_write_copy(rsx::get_shared_tag());
|
dst_subres.surface->on_write_copy(rsx::get_shared_tag());
|
||||||
m_rtts.notify_memory_structure_changed();
|
m_rtts.notify_memory_structure_changed();
|
||||||
|
|
||||||
|
if (src_is_render_target)
|
||||||
|
{
|
||||||
|
if (helpers::is_gcm_depth_format(typeless_info.src_gcm_format) !=
|
||||||
|
helpers::is_gcm_depth_format(typeless_info.dst_gcm_format))
|
||||||
|
{
|
||||||
|
verify(HERE), !typeless_info.dst_is_typeless || !typeless_info.src_is_typeless;
|
||||||
|
verify(HERE), src_is_argb8 == dst_is_argb8;
|
||||||
|
|
||||||
|
if (typeless_info.src_is_typeless == typeless_info.dst_is_typeless)
|
||||||
|
{
|
||||||
|
// None are typeless. Cast src
|
||||||
|
typeless_info.src_is_typeless = true;
|
||||||
|
typeless_info.src_gcm_format = helpers::get_sized_blit_format(src_is_argb8, dst_subres.is_depth);
|
||||||
|
}
|
||||||
|
else if (typeless_info.src_is_typeless)
|
||||||
|
{
|
||||||
|
// Src is already getting cast
|
||||||
|
typeless_info.src_gcm_format = typeless_info.dst_gcm_format;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Dst is already getting cast
|
||||||
|
verify(HERE), typeless_info.dst_is_typeless;
|
||||||
|
typeless_info.dst_gcm_format = typeless_info.src_gcm_format;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rsx::get_resolution_scale_percent() != 100)
|
if (rsx::get_resolution_scale_percent() != 100)
|
||||||
|
|
Loading…
Reference in New Issue