OpenMiInk/third_party/krita-deps-management/ext_googleangle/02-patches_krita/0016-Reduce-flickering-when-resizing-window.patch
Hellings b8c8ff98e2 Hi
2026-10-16 09:05:56 -04:00

46 lines
2.3 KiB
Diff

From fdd6f9cd842a57529be1452eaaa0153c68a5c82a Mon Sep 17 00:00:00 2001
From: Alvin Wong <alvinhochun@gmail.com>
Date: Thu, 17 Mar 2022 16:12:08 +0800
Subject: [PATCH 16/17] Reduce flickering when resizing window
* Do not swap buffers when resizing swapchain, because it may cause
visual artifacts when resizing the window.
* Do not stretch buffer with DXGI 1.2 swap chain. This stops the window
content from being stretched when resizing the window.
---
src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 5 -----
.../renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp | 2 +-
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
index c69d84eb5..2fe62a162 100644
--- a/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
@@ -375,11 +375,6 @@ EGLint SwapChain11::resetOffscreenColorBuffer(DisplayD3D *displayD3D,
const int yoffset = std::max(backbufferHeight - previousHeight, 0);
deviceContext->CopySubresourceRegion(mOffscreenTexture.get(), 0, 0, yoffset, 0,
previousOffscreenTexture.get(), 0, &sourceBox);
-
- if (mSwapChain)
- {
- swapRect(displayD3D, 0, 0, backbufferWidth, backbufferHeight);
- }
}
return EGL_SUCCESS;
diff --git a/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp b/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
index 10462a970..d30f888d3 100644
--- a/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
@@ -163,7 +163,7 @@ HRESULT NativeWindow11Win32::createSwapChain(ID3D11Device *device,
swapChainDesc.BufferUsage =
DXGI_USAGE_RENDER_TARGET_OUTPUT | DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_BACK_BUFFER;
swapChainDesc.BufferCount = 2;
- swapChainDesc.Scaling = DXGI_SCALING_STRETCH;
+ swapChainDesc.Scaling = DXGI_SCALING_NONE;
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED;
swapChainDesc.Flags = 0;
--
2.24.1.windows.2