diff options
| author | MrPurple666 <antoniosacramento666usa@gmail.com> | 2025-04-12 03:57:08 -0300 |
|---|---|---|
| committer | MrPurple666 <antoniosacramento666usa@gmail.com> | 2025-04-12 22:54:32 -0300 |
| commit | ce1a1912aee2061d62219e9c66a2e3730c3f98d7 (patch) | |
| tree | b1afdba69e3fe986dd9d8b916b007e1e7d11730b /src/video_core/renderer_vulkan/renderer_vulkan.cpp | |
| parent | 2a793d610d2a245fec7d3e4a6a100e0b26418cc1 (diff) | |
RenderVulkan Experiments: DO-NOT-MERGE: Only recreate when necessary and NEAREST
Diffstat (limited to 'src/video_core/renderer_vulkan/renderer_vulkan.cpp')
| -rw-r--r-- | src/video_core/renderer_vulkan/renderer_vulkan.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index d5058fdd89..4bd4917fdf 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp @@ -184,11 +184,17 @@ class BooleanSetting { }; // Check if we need to recreate the destination frame - bool needs_recreation = true; - if (interpolated_frame->image_view) { - // Get image extent from framebuffer layout since we can't query it directly - needs_recreation = (framebuffer_layout.width / 2 != dst_extent.width) || - (framebuffer_layout.height / 2 != dst_extent.height); + bool needs_recreation = false; // Only recreate when necessary + if (!interpolated_frame->image_view) { + needs_recreation = true; // Need to create initially + } else { + // Check if dimensions have changed + if (interpolated_frame->framebuffer) { + needs_recreation = (framebuffer_layout.width / 2 != dst_extent.width) || + (framebuffer_layout.height / 2 != dst_extent.height); + } else { + needs_recreation = true; + } } if (needs_recreation) { @@ -227,7 +233,7 @@ class BooleanSetting { cmdbuf.BlitImage( *prev_frame->image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *interpolated_frame->image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - blit_region, VK_FILTER_LINEAR + blit_region, VK_FILTER_NEAREST ); // Transition back to general layout |
