diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index ece6c2d..5475729 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -54,7 +54,6 @@
 #include "core/fxcrt/autorestorer.h"
 #include "core/fxcrt/data_vector.h"
 #include "core/fxcrt/fx_2d_size.h"
-#include "core/fxcrt/fx_memory.h"
 #include "core/fxcrt/fx_safe_types.h"
 #include "core/fxcrt/fx_system.h"
 #include "core/fxcrt/span_util.h"
@@ -161,28 +160,6 @@
   return pChar && (!pChar->colored() || MissingStrokeColor(pColorState));
 }
 
-#ifdef _SKIA_SUPPORT_
-class ScopedSkiaDeviceFlush {
- public:
-  FX_STACK_ALLOCATED();
-
-  explicit ScopedSkiaDeviceFlush(CFX_RenderDevice* pDevice)
-      : m_pDevice(pDevice) {}
-
-  ScopedSkiaDeviceFlush(const ScopedSkiaDeviceFlush&) = delete;
-  ScopedSkiaDeviceFlush& operator=(const ScopedSkiaDeviceFlush&) = delete;
-
-  ~ScopedSkiaDeviceFlush() {
-    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-      m_pDevice->Flush(/*release=*/false);
-    }
-  }
-
- private:
-  UnownedPtr<CFX_RenderDevice> const m_pDevice;
-};
-#endif
-
 }  // namespace
 
 CPDF_RenderStatus::CPDF_RenderStatus(CPDF_RenderContext* pContext,
@@ -716,7 +693,6 @@
   bitmap_render.ProcessObjectNoClip(pPageObj, new_matrix);
 #ifdef _SKIA_SUPPORT_
   if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-    bitmap_device.Flush(true);
     bitmap->UnPreMultiply();
   }
 #endif  // _SKIA_SUPPORT_
@@ -1193,9 +1169,6 @@
     return;
 
   CFX_RenderDevice::StateRestorer restorer(m_pDevice);
-#ifdef _SKIA_SUPPORT_
-  ScopedSkiaDeviceFlush scoped_skia_device_flush(m_pDevice);
-#endif
   if (!ClipPattern(pPageObj, mtObj2Device, stroke))
     return;
 
@@ -1440,11 +1413,6 @@
   status.SetDropObjects(m_bDropObjects);
   status.Initialize(nullptr, nullptr);
   status.RenderObjectList(&form, matrix);
-#ifdef _SKIA_SUPPORT_
-  if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-    bitmap_device.Flush(/*release=*/true);
-  }
-#endif  // _SKIA_SUPPORT_
 
   auto pMask = pdfium::MakeRetain<CFX_DIBitmap>();
   if (!pMask->Create(width, height, FXDIB_Format::k8bppMask))
diff --git a/core/fxge/cfx_defaultrenderdevice.cpp b/core/fxge/cfx_defaultrenderdevice.cpp
index fc61b58..27bae45 100644
--- a/core/fxge/cfx_defaultrenderdevice.cpp
+++ b/core/fxge/cfx_defaultrenderdevice.cpp
@@ -37,12 +37,7 @@
 
 CFX_DefaultRenderDevice::CFX_DefaultRenderDevice() = default;
 
-CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() {
-#ifdef _SKIA_SUPPORT_
-  if (SkiaIsDefaultRenderer())
-    Flush(true);
-#endif
-}
+CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() = default;
 
 bool CFX_DefaultRenderDevice::Attach(RetainPtr<CFX_DIBitmap> pBitmap) {
   return AttachWithRgbByteOrder(std::move(pBitmap), false);
diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp
index d96021c..59fc820 100644
--- a/core/fxge/cfx_renderdevice.cpp
+++ b/core/fxge/cfx_renderdevice.cpp
@@ -487,10 +487,6 @@
 
 CFX_RenderDevice::~CFX_RenderDevice() {
   RestoreState(false);
-#ifdef _SKIA_SUPPORT_
-  if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
-    Flush(true);
-#endif
 }
 
 // static
@@ -501,15 +497,6 @@
   return CFX_Matrix(width, 0, 0, -height, left, top + height);
 }
 
-#ifdef _SKIA_SUPPORT_
-void CFX_RenderDevice::Flush(bool release) {
-  if (release)
-    m_pDeviceDriver.reset();
-  else
-    m_pDeviceDriver->Flush();
-}
-#endif
-
 void CFX_RenderDevice::SetDeviceDriver(
     std::unique_ptr<RenderDeviceDriverIface> pDriver) {
   DCHECK(pDriver);
@@ -801,10 +788,6 @@
                                                  fill_options, blend_type)) {
     return false;
   }
-#ifdef _SKIA_SUPPORT_
-  if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
-    bitmap_device.GetDeviceDriver()->Flush();
-#endif
   FX_RECT src_rect(0, 0, rect.Width(), rect.Height());
   return m_pDeviceDriver->SetDIBits(bitmap, 0, src_rect, rect.left, rect.top,
                                     BlendMode::kNormal);
diff --git a/core/fxge/cfx_renderdevice.h b/core/fxge/cfx_renderdevice.h
index 909cbb2..39c0272 100644
--- a/core/fxge/cfx_renderdevice.h
+++ b/core/fxge/cfx_renderdevice.h
@@ -217,9 +217,6 @@
                                int bitmap_alpha,
                                BlendMode blend_type);
 #endif
-#ifdef _SKIA_SUPPORT_
-  void Flush(bool release);
-#endif
 
  protected:
   CFX_RenderDevice();
diff --git a/core/fxge/renderdevicedriver_iface.cpp b/core/fxge/renderdevicedriver_iface.cpp
index 26911a6..b549ea2 100644
--- a/core/fxge/renderdevicedriver_iface.cpp
+++ b/core/fxge/renderdevicedriver_iface.cpp
@@ -84,7 +84,3 @@
 
 void RenderDeviceDriverIface::SetGroupKnockout(bool group_knockout) {}
 #endif
-
-#ifdef _SKIA_SUPPORT_
-void RenderDeviceDriverIface::Flush() {}
-#endif
diff --git a/core/fxge/renderdevicedriver_iface.h b/core/fxge/renderdevicedriver_iface.h
index c22fe54..8c5fb35 100644
--- a/core/fxge/renderdevicedriver_iface.h
+++ b/core/fxge/renderdevicedriver_iface.h
@@ -117,9 +117,6 @@
                                BlendMode blend_type);
   virtual void SetGroupKnockout(bool group_knockout);
 #endif
-#ifdef _SKIA_SUPPORT_
-  virtual void Flush();
-#endif
 };
 
 #endif  // CORE_FXGE_RENDERDEVICEDRIVER_IFACE_H_
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 06715aa..c155561 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1334,8 +1334,6 @@
 }
 
 CFX_SkiaDeviceDriver::~CFX_SkiaDeviceDriver() {
-  Flush();
-
   // Convert and transfer the internal processed result to the original 24 bpp
   // bitmap provided by the render device.
   if (m_pOriginalBitmap && m_pBitmap->ConvertFormat(FXDIB_Format::kRgb)) {
@@ -1353,9 +1351,6 @@
     delete m_pCanvas;
 }
 
-// TODO(crbug.com/pdfium/1963): Remove this API.
-void CFX_SkiaDeviceDriver::Flush() {}
-
 bool CFX_SkiaDeviceDriver::DrawDeviceText(
     pdfium::span<const TextCharPos> pCharPos,
     CFX_Font* pFont,
@@ -2043,12 +2038,6 @@
 }
 
 void CFX_SkiaDeviceDriver::SetGroupKnockout(bool group_knockout) {
-  if (group_knockout == m_bGroupKnockout)
-    return;
-
-  // Make sure to flush cached commands before changing `m_bGroupKnockout`
-  // status.
-  Flush();
   m_bGroupKnockout = group_knockout;
 }
 
@@ -2183,8 +2172,6 @@
     int top,
     int bitmap_alpha,
     BlendMode blend_type) {
-  // Finish painting before drawing masks.
-  Flush(false);
   return static_cast<CFX_SkiaDeviceDriver*>(GetDeviceDriver())
       ->SetBitsWithMask(pBitmap, pMask, left, top, bitmap_alpha, blend_type);
 }
diff --git a/core/fxge/skia/fx_skia_device.h b/core/fxge/skia/fx_skia_device.h
index 5e70b7a..724c69a 100644
--- a/core/fxge/skia/fx_skia_device.h
+++ b/core/fxge/skia/fx_skia_device.h
@@ -138,7 +138,6 @@
   virtual uint8_t* GetBuffer() const;
 
   void Clear(uint32_t color);
-  void Flush() override;
   SkCanvas* SkiaCanvas() { return m_pCanvas; }
   void DebugVerifyBitmapIsPreMultiplied() const;
   void Dump() const;
diff --git a/core/fxge/skia/fx_skia_device_embeddertest.cpp b/core/fxge/skia/fx_skia_device_embeddertest.cpp
index 9b4005a..517d863 100644
--- a/core/fxge/skia/fx_skia_device_embeddertest.cpp
+++ b/core/fxge/skia/fx_skia_device_embeddertest.cpp
@@ -137,7 +137,6 @@
   auto driver = CFX_SkiaDeviceDriver::Create(pBitmap, false, nullptr, false);
   ASSERT_TRUE(driver);
   (*Test)(driver.get(), state);
-  driver->Flush();
   uint32_t pixel = pBitmap->GetPixel(0, 0);
   EXPECT_EQ(state.m_pixel, pixel);
 }
diff --git a/fpdfsdk/fpdf_progressive.cpp b/fpdfsdk/fpdf_progressive.cpp
index e5ad3d9..0cf7cf7 100644
--- a/fpdfsdk/fpdf_progressive.cpp
+++ b/fpdfsdk/fpdf_progressive.cpp
@@ -72,7 +72,6 @@
 
 #ifdef _SKIA_SUPPORT_
   if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-    pDevice->Flush(false);
     pBitmap->UnPreMultiply();
   }
 #endif  // _SKIA_SUPPORT_
@@ -116,9 +115,7 @@
 
 #ifdef _SKIA_SUPPORT_
   if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-    CFX_RenderDevice* pDevice = pContext->m_pDevice.get();
-    pDevice->Flush(false);
-    pDevice->GetBitmap()->UnPreMultiply();
+    pContext->m_pDevice->GetBitmap()->UnPreMultiply();
   }
 #endif  // _SKIA_SUPPORT_
   return ToFPDFStatus(pContext->m_pRenderer->GetStatus());
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp
index 00293a8..723af28 100644
--- a/fpdfsdk/fpdf_view.cpp
+++ b/fpdfsdk/fpdf_view.cpp
@@ -682,7 +682,6 @@
 
 #ifdef _SKIA_SUPPORT_
   if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-    pDevice->Flush(true);
     pBitmap->UnPreMultiply();
   }
 #endif
diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp
index 1f8226e..af6ce53 100644
--- a/xfa/fde/cfde_textout.cpp
+++ b/xfa/fde/cfde_textout.cpp
@@ -26,10 +26,6 @@
 #include "xfa/fgas/font/cfgas_gefont.h"
 #include "xfa/fgas/layout/cfgas_txtbreak.h"
 
-#ifdef _SKIA_SUPPORT_
-#include "core/fxge/cfx_defaultrenderdevice.h"
-#endif
-
 namespace {
 
 bool TextAlignmentVerticallyCentered(const FDE_TextAlignment align) {
@@ -122,10 +118,6 @@
     bRet = device->DrawNormalText(pdfium::make_span(pCurCP, iCurCount), font,
                                   -fFontSize, matrix, color, kOptions);
   }
-#ifdef _SKIA_SUPPORT_
-  if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
-    device->Flush(false);
-#endif
 
   return bRet;
 }
