diff options
| author | 2021-07-20 07:40:05 +0200 | |
|---|---|---|
| committer | 2021-11-16 22:11:27 +0100 | |
| commit | 84f2aea8962146be899131b032fcdf9b4e1f6ddf (patch) | |
| tree | d6db3d9be0e24c045ef39fe0f53b8b6f6da0cfef /src/video_core/renderer_vulkan | |
| parent | gl_texture_cache: WIP texture rescale (diff) | |
| download | yuzu-84f2aea8962146be899131b032fcdf9b4e1f6ddf.tar.gz yuzu-84f2aea8962146be899131b032fcdf9b4e1f6ddf.tar.xz yuzu-84f2aea8962146be899131b032fcdf9b4e1f6ddf.zip | |
Texture Cache: More rescaling fixes.
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 668554d1e..5fd190825 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -1078,6 +1078,10 @@ bool Image::ScaleUp(bool save_as_backup) { | |||
| 1078 | MemoryCommit new_commit( | 1078 | MemoryCommit new_commit( |
| 1079 | runtime->memory_allocator.Commit(rescaled_image, MemoryUsage::DeviceLocal)); | 1079 | runtime->memory_allocator.Commit(rescaled_image, MemoryUsage::DeviceLocal)); |
| 1080 | 1080 | ||
| 1081 | if (aspect_mask == 0) { | ||
| 1082 | aspect_mask = ImageAspectMask(info.format); | ||
| 1083 | } | ||
| 1084 | |||
| 1081 | const auto scale_up = [&](u32 value) { | 1085 | const auto scale_up = [&](u32 value) { |
| 1082 | return (value * resolution.up_scale) >> resolution.down_shift; | 1086 | return (value * resolution.up_scale) >> resolution.down_shift; |
| 1083 | }; | 1087 | }; |
| @@ -1170,6 +1174,10 @@ bool Image::ScaleDown(bool save_as_backup) { | |||
| 1170 | return (value * resolution.up_scale) >> resolution.down_shift; | 1174 | return (value * resolution.up_scale) >> resolution.down_shift; |
| 1171 | }; | 1175 | }; |
| 1172 | 1176 | ||
| 1177 | if (aspect_mask == 0) { | ||
| 1178 | aspect_mask = ImageAspectMask(info.format); | ||
| 1179 | } | ||
| 1180 | |||
| 1173 | const bool is_2d = info.type == ImageType::e2D; | 1181 | const bool is_2d = info.type == ImageType::e2D; |
| 1174 | boost::container::small_vector<VkImageBlit, 4> vkRegions(info.resources.levels); | 1182 | boost::container::small_vector<VkImageBlit, 4> vkRegions(info.resources.levels); |
| 1175 | for (s32 level = 0; level < info.resources.levels; level++) { | 1183 | for (s32 level = 0; level < info.resources.levels; level++) { |