|
|
|
@ -739,8 +739,7 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, VKScheduler& sch |
|
|
|
: device{device_}, scheduler{scheduler_}, memory_allocator{memory_allocator_}, |
|
|
|
staging_buffer_pool{staging_buffer_pool_}, blit_image_helper{blit_image_helper_}, |
|
|
|
astc_decoder_pass{astc_decoder_pass_}, render_pass_cache{render_pass_cache_}, |
|
|
|
resolution{Settings::values.resolution_info}, |
|
|
|
is_rescaling_on(resolution.up_scale != 1 || resolution.down_shift != 0) {} |
|
|
|
resolution{Settings::values.resolution_info} {} |
|
|
|
|
|
|
|
void TextureCacheRuntime::Finish() { |
|
|
|
scheduler.Finish(); |
|
|
|
@ -1141,11 +1140,11 @@ bool Image::ScaleUp(bool save_as_backup) { |
|
|
|
ASSERT(info.type != ImageType::Linear); |
|
|
|
scaling_count++; |
|
|
|
flags |= ImageFlagBits::Rescaled; |
|
|
|
if (!runtime->is_rescaling_on) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
vk::Image rescaled_image = |
|
|
|
has_backup ? std::move(backup_image) |
|
|
|
: MakeImage(runtime->device, info, resolution.up_scale, resolution.down_shift); |
|
|
|
@ -1188,7 +1187,7 @@ bool Image::ScaleUp(bool save_as_backup) { |
|
|
|
} |
|
|
|
|
|
|
|
void Image::SwapBackup() { |
|
|
|
if (!runtime->is_rescaling_on) { |
|
|
|
if (!runtime->resolution.active) { |
|
|
|
return; |
|
|
|
} |
|
|
|
ASSERT(has_backup); |
|
|
|
@ -1206,17 +1205,16 @@ bool Image::ScaleDown(bool save_as_backup) { |
|
|
|
ASSERT(info.type != ImageType::Linear); |
|
|
|
flags &= ~ImageFlagBits::Rescaled; |
|
|
|
scaling_count++; |
|
|
|
if (!runtime->is_rescaling_on) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
vk::Image downscaled_image = |
|
|
|
has_backup ? std::move(backup_image) : MakeImage(runtime->device, info); |
|
|
|
MemoryCommit new_commit = has_backup ? std::move(backup_commit) |
|
|
|
: MemoryCommit(runtime->memory_allocator.Commit( |
|
|
|
downscaled_image, MemoryUsage::DeviceLocal)); |
|
|
|
|
|
|
|
has_backup = false; |
|
|
|
if (aspect_mask == 0) { |
|
|
|
aspect_mask = ImageAspectMask(info.format); |
|
|
|
|