mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-01-29 00:33:01 +00:00
rsx: Fix incomplete blit operations getting used as texture inputs
- Raise passing 'score' from 50% to 90% to filter out very incomplete merge operations. - Catch unfit sections passing the match test; possible for blit_dst data but will likely be always harmless. Disabled in release builds by default.
This commit is contained in:
parent
331c1a394a
commit
7a275eaa3a
@ -221,8 +221,8 @@ namespace rsx
|
||||
u16 min_x = external_subresource_desc.width, min_y = external_subresource_desc.height,
|
||||
max_x = 0, max_y = 0;
|
||||
|
||||
// Require at least 50% coverage
|
||||
const u32 target_area = (min_x * min_y) / 2;
|
||||
// Require at least 90% coverage
|
||||
const u32 target_area = ((min_x * min_y) * 90u) / 100u;
|
||||
|
||||
for (const auto §ion : external_subresource_desc.sections_to_copy)
|
||||
{
|
||||
@ -1553,6 +1553,14 @@ namespace rsx
|
||||
{
|
||||
if (cached_texture->matches(attr.address, attr.gcm_format, attr.width, attr.height, attr.depth, 0))
|
||||
{
|
||||
#ifdef TEXTURE_CACHE_DEBUG
|
||||
if (!memory_range.inside(cached_texture->get_confirmed_range()))
|
||||
{
|
||||
// TODO. This is easily possible for blit_dst textures if the blit is incomplete in Y
|
||||
// The possibility that a texture will be split into parts on the CPU like this is very rare
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
return{ cached_texture->get_view(encoded_remap, remap), cached_texture->get_context(), cached_texture->get_format_type(), scale, cached_texture->get_image_type() };
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user