diff options
| author | 2021-09-20 22:18:15 +0200 | |
|---|---|---|
| committer | 2021-11-16 22:11:30 +0100 | |
| commit | ea82bd4b7e4c4f23a40f8a35858d8b74950fc347 (patch) | |
| tree | d1ff5b2aae66e1f95d36bc9393086a5eb10015f1 /src/video_core/renderer_vulkan | |
| parent | TextureCache: Base fixes on rescaling. (diff) | |
| download | yuzu-ea82bd4b7e4c4f23a40f8a35858d8b74950fc347.tar.gz yuzu-ea82bd4b7e4c4f23a40f8a35858d8b74950fc347.tar.xz yuzu-ea82bd4b7e4c4f23a40f8a35858d8b74950fc347.zip | |
Texture Cache: Fix Rescaling on Multisample
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 5b4f51a31..4f0bab274 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -860,9 +860,10 @@ void TextureCacheRuntime::BlitImage(Framebuffer* dst_framebuffer, ImageView& dst | |||
| 860 | cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, | 860 | cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, |
| 861 | 0, nullptr, nullptr, read_barriers); | 861 | 0, nullptr, nullptr, read_barriers); |
| 862 | if (is_resolve) { | 862 | if (is_resolve) { |
| 863 | VkImageResolve resolve_info = | ||
| 864 | MakeImageResolve(dst_region, src_region, dst_layers, src_layers); | ||
| 863 | cmdbuf.ResolveImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, | 865 | cmdbuf.ResolveImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, |
| 864 | VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, | 866 | VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, resolve_info); |
| 865 | MakeImageResolve(dst_region, src_region, dst_layers, src_layers)); | ||
| 866 | } else { | 867 | } else { |
| 867 | const bool is_linear = filter == Fermi2D::Filter::Bilinear; | 868 | const bool is_linear = filter == Fermi2D::Filter::Bilinear; |
| 868 | const VkFilter vk_filter = is_linear ? VK_FILTER_LINEAR : VK_FILTER_NEAREST; | 869 | const VkFilter vk_filter = is_linear ? VK_FILTER_LINEAR : VK_FILTER_NEAREST; |
| @@ -1149,6 +1150,9 @@ bool Image::ScaleUp() { | |||
| 1149 | if (aspect_mask == 0) { | 1150 | if (aspect_mask == 0) { |
| 1150 | aspect_mask = ImageAspectMask(info.format); | 1151 | aspect_mask = ImageAspectMask(info.format); |
| 1151 | } | 1152 | } |
| 1153 | if (info.num_samples > 1) { | ||
| 1154 | return true; | ||
| 1155 | } | ||
| 1152 | const PixelFormat format = StorageFormat(info.format); | 1156 | const PixelFormat format = StorageFormat(info.format); |
| 1153 | const auto format_info = MaxwellToVK::SurfaceFormat(device, FormatType::Optimal, false, format); | 1157 | const auto format_info = MaxwellToVK::SurfaceFormat(device, FormatType::Optimal, false, format); |
| 1154 | const auto similar = device.GetSupportedFormat( | 1158 | const auto similar = device.GetSupportedFormat( |