mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	vk_blit_screen: recreate swapchain images on guest format change
This commit is contained in:
		@@ -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
	
	Block a user