Browse Source
Merge pull request #9154 from liamwhite/new-fb
vk_blit_screen: recreate swapchain images on guest format change
pull/15/merge
Fernando S
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
10 additions and
1 deletions
-
src/video_core/renderer_vulkan/vk_blit_screen.cpp
-
src/video_core/renderer_vulkan/vk_blit_screen.h
|
|
|
@ -480,11 +480,15 @@ void BlitScreen::RefreshResources(const Tegra::FramebufferConfig& framebuffer) { |
|
|
|
fsr.reset(); |
|
|
|
} |
|
|
|
|
|
|
|
if (framebuffer.width == raw_width && framebuffer.height == raw_height && !raw_images.empty()) { |
|
|
|
if (framebuffer.width == raw_width && framebuffer.height == raw_height && |
|
|
|
framebuffer.pixel_format == pixel_format && !raw_images.empty()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
raw_width = framebuffer.width; |
|
|
|
raw_height = framebuffer.height; |
|
|
|
pixel_format = framebuffer.pixel_format; |
|
|
|
|
|
|
|
ReleaseRawImages(); |
|
|
|
|
|
|
|
CreateStagingBuffer(framebuffer); |
|
|
|
|
|
|
|
@ -28,6 +28,10 @@ namespace VideoCore { |
|
|
|
class RasterizerInterface; |
|
|
|
} |
|
|
|
|
|
|
|
namespace Service::android { |
|
|
|
enum class PixelFormat : u32; |
|
|
|
} |
|
|
|
|
|
|
|
namespace Vulkan { |
|
|
|
|
|
|
|
struct ScreenInfo; |
|
|
|
@ -156,6 +160,7 @@ private: |
|
|
|
|
|
|
|
u32 raw_width = 0; |
|
|
|
u32 raw_height = 0; |
|
|
|
Service::android::PixelFormat pixel_format{}; |
|
|
|
|
|
|
|
std::unique_ptr<FSR> fsr; |
|
|
|
}; |
|
|
|
|