[Libreoffice-commits] core.git: vcl/skia

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Wed Apr 1 08:04:45 UTC 2020


 vcl/skia/zone.cxx |   21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

New commits:
commit 957092a29ff0626ead52ae776f004c08e93116b0
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Tue Mar 31 15:06:31 2020 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Wed Apr 1 10:04:05 2020 +0200

    use large watchdog timeouts with Skia raster (tdf#131663)
    
    This in practice disables the watchdog, as it doesn't make sense anyway
    with CPU-based rendering.
    
    Change-Id: If884fa64b3155244ffcf8eddeff75223f7915ed7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91424
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/vcl/skia/zone.cxx b/vcl/skia/zone.cxx
index ae6d11d502f6..50f5e1ea73a8 100644
--- a/vcl/skia/zone.cxx
+++ b/vcl/skia/zone.cxx
@@ -14,6 +14,9 @@
 #include <com/sun/star/configuration/theDefaultProvider.hpp>
 
 #include <sal/log.hxx>
+#include <o3tl/unreachable.hxx>
+
+#include <vcl/skia/SkiaHelper.hxx>
 
 /**
  * Called from a signal handler or watchdog thread if we get
@@ -52,8 +55,22 @@ void SkiaZone::checkDebug(int nUnchanged, const CrashWatchdogTimingsValues& aTim
 
 const CrashWatchdogTimingsValues& SkiaZone::getCrashWatchdogTimingsValues()
 {
-    static const CrashWatchdogTimingsValues values = { 6, 20 }; /* 1.5s,  5s */
-    return values;
+    switch (SkiaHelper::renderMethodToUse())
+    {
+        case SkiaHelper::RenderVulkan:
+        {
+            static const CrashWatchdogTimingsValues vulkanValues = { 6, 20 }; /* 1.5s,  5s */
+            return vulkanValues;
+        }
+        case SkiaHelper::RenderRaster:
+        {
+            // CPU-based operations with large images may take a noticeably long time,
+            // so use large values. CPU-based rendering shouldn't use any unstable drivers anyway.
+            static const CrashWatchdogTimingsValues rasterValues = { 600, 2000 }; /* 150s,  500s */
+            return rasterValues;
+        }
+    }
+    O3TL_UNREACHABLE;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list