rsx: Allow blit engine to preserve resolution scaling

- Since we're using the surface cache for storage, might as well enable resolution scaling on blit resources.
This commit is contained in:
kd-11 2026-07-09 22:50:40 +03:00
parent 451f503975
commit 633e53674c
2 changed files with 10 additions and 2 deletions

View File

@ -1073,6 +1073,7 @@ namespace rsx
surface_type create_surface_from_rsx_section(
command_list_type command_list,
const rsx::image_section_attributes_t& attributes,
const rsx::surface_scaling_config_t& scaling_config,
Args&&... extra_params)
{
cache_tag = rsx::get_shared_tag();
@ -1087,7 +1088,7 @@ namespace rsx
attributes.width,
attributes.height,
attributes.pitch,
{},
scaling_config,
std::forward<Args>(extra_params)...);
}

View File

@ -1538,7 +1538,7 @@ namespace rsx
dst_area.y2 += dst_offset.y;
// We have to create the surface in the surface cache
rsx::image_section_attributes_t section_attr
const rsx::image_section_attributes_t section_attr
{
.address = rsx_range.start,
.gcm_format = preferred_dst_format,
@ -1553,9 +1553,16 @@ namespace rsx
.edge_clamped = false
};
const surface_scaling_config_t scaling_config =
{
.scale_percent = static_cast<u16>(g_cfg.video.resolution_scale_percent),
.min_scalable_dimension = static_cast<u16>(g_cfg.video.min_scalable_dimension),
};
auto dst_surface = m_rtts.create_surface_from_rsx_section(
cmd,
section_attr,
scaling_config,
std::forward<Args>(extras)...);
ensure(dst_surface, "Failed to create target surface");