[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: =?utf-8?q?=5Bgraphics/krita=5D_libs=3A_Add_a_=28hidden=29_config_option_to_increase_frame_rendering_
From: Dmitry Kazakov <null () kde ! org>
Date: 2021-07-07 8:29:45
Message-ID: 20210707082945.B26811242F33 () leptone ! kde ! org
[Download RAW message or body]
Git commit 2d9a0878a2ea35c0708f91f38ed8a3075735cd4c by Dmitry Kazakov.
Committed on 07/07/2021 at 08:29.
Pushed by dkazakov into branch 'master'.
Add a (hidden) config option to increase frame rendering timeout
If you see random failures while rendering frames for huge images,
just open kritarc file and add the following option:
frameRenderingTimeout=60000
Where '60000' is the timeout in milliseconds. The default value is
30 seconds and it seems like it is too small for some weird usecases.
CCBUG:438754
CC:kimageshop@kde.org
M +11 -0 libs/image/kis_image_config.cpp
M +3 -0 libs/image/kis_image_config.h
M +6 -3 libs/ui/KisAsyncAnimationRendererBase.cpp
https://invent.kde.org/graphics/krita/commit/2d9a0878a2ea35c0708f91f38ed8a3075735cd4c
diff --git a/libs/image/kis_image_config.cpp b/libs/image/kis_image_config.cpp
index 9b6fe746ed..9a0f7553fe 100644
--- a/libs/image/kis_image_config.cpp
+++ b/libs/image/kis_image_config.cpp
@@ -555,6 +555,17 @@ void KisImageConfig::setFrameRenderingClones(int value)
m_config.writeEntry("frameRenderingClones", value);
}
+int KisImageConfig::frameRenderingTimeout(bool defaultValue) const
+{
+ const int defaultFrameRenderingTimeout = 30000; // 30 ms
+ return defaultValue ? defaultFrameRenderingTimeout : \
m_config.readEntry("frameRenderingTimeout", defaultFrameRenderingTimeout); +}
+
+void KisImageConfig::setFrameRenderingTimeout(int value)
+{
+ m_config.writeEntry("frameRenderingTimeout", value);
+}
+
int KisImageConfig::fpsLimit(bool defaultValue) const
{
int limit = defaultValue ? 100 : m_config.readEntry("fpsLimit", 100);
diff --git a/libs/image/kis_image_config.h b/libs/image/kis_image_config.h
index 74c941d6db..4b0d833429 100644
--- a/libs/image/kis_image_config.h
+++ b/libs/image/kis_image_config.h
@@ -108,6 +108,9 @@ public:
int frameRenderingClones(bool defaultValue = false) const;
void setFrameRenderingClones(int value);
+ int frameRenderingTimeout(bool defaultValue = false) const;
+ void setFrameRenderingTimeout(int value);
+
int fpsLimit(bool defaultValue = false) const;
void setFpsLimit(int value);
diff --git a/libs/ui/KisAsyncAnimationRendererBase.cpp \
b/libs/ui/KisAsyncAnimationRendererBase.cpp index 7da1bd6a63..694b160552 100644
--- a/libs/ui/KisAsyncAnimationRendererBase.cpp
+++ b/libs/ui/KisAsyncAnimationRendererBase.cpp
@@ -12,6 +12,8 @@
#include "kis_image.h"
#include "kis_image_animation_interface.h"
#include "kis_signal_auto_connection.h"
+#include "kis_image_config.h"
+
struct KRITAUI_NO_EXPORT KisAsyncAnimationRendererBase::Private
{
@@ -23,8 +25,6 @@ struct KRITAUI_NO_EXPORT KisAsyncAnimationRendererBase::Private
int requestedFrame = -1;
bool isCancelled = false;
KisRegion requestedRegion;
-
- static const int WAITING_FOR_FRAME_TIMEOUT = 30000;
};
KisAsyncAnimationRendererBase::KisAsyncAnimationRendererBase(QObject *parent)
@@ -32,8 +32,11 @@ KisAsyncAnimationRendererBase::KisAsyncAnimationRendererBase(QObject \
*parent) m_d(new Private())
{
connect(&m_d->regenerationTimeout, SIGNAL(timeout()), \
SLOT(slotFrameRegenerationCancelled())); +
+ KisImageConfig cfg(true);
+
m_d->regenerationTimeout.setSingleShot(true);
- m_d->regenerationTimeout.setInterval(Private::WAITING_FOR_FRAME_TIMEOUT);
+ m_d->regenerationTimeout.setInterval(cfg.frameRenderingTimeout());
}
KisAsyncAnimationRendererBase::~KisAsyncAnimationRendererBase()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic