vk_blit_screen: recreate swapchain images on guest format change
This commit is contained in:
parent
e09756b2df
commit
808e22984f
|
@ -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;
|
||||
};
|
||||
|
|
Reference in New Issue