summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-06-19 17:45:57 +0100
committerMike Krus <mike.krus@kdab.com>2020-06-19 20:20:50 +0100
commit2b749055c763005c42616b83d2b9050cde5fdf32 (patch)
treea02a1dbba9482594f31e96cac83cb603a8bcf69b
parenteebbdb87b255545c83038aa4ff422e7ef34c3f6e (diff)
Remove the OpenGL Render Thread
We're trading a bit of performance at submission (since we could start preparing the next frame while submitting the current one) for convenience and ease of maintenance. Besides, this allows to remove a thread and in cases Qt3D was used with Scene3D, which is likely the majority of cases, the RenderThread was not used anyway. To control whether the QRenderAspect should submit on its own or not, a new Submission type enum with values Automatic/Manual was added. This allows the QRenderAspect to automatically perform command submission when Qt3D is used on its own. For other cases when Qt3D is integrated into a 3rd party engine or with Scene3D, the Manual mode is used to let the QRenderAspect render only when it is told to do so. Change-Id: Idc270b5a07bcb9ea9e61674a69c6b8cf6ccd8182 Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r--src/plugins/renderers/opengl/main.cpp4
-rw-r--r--src/plugins/renderers/opengl/renderer/renderer.cpp29
-rw-r--r--src/plugins/renderers/opengl/renderer/renderer_p.h4
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem.cpp2
-rw-r--r--src/render/CMakeLists.txt1
-rw-r--r--src/render/backend/render-backend.pri2
-rw-r--r--src/render/backend/renderthread.cpp96
-rw-r--r--src/render/backend/renderthread_p.h91
-rw-r--r--src/render/frontend/qrenderaspect.cpp44
-rw-r--r--src/render/frontend/qrenderaspect.h8
-rw-r--r--src/render/frontend/qrenderaspect_p.h6
-rw-r--r--src/render/qrendererplugin.cpp3
-rw-r--r--src/render/qrendererplugin_p.h2
-rw-r--r--src/render/qrendererpluginfactory.cpp6
-rw-r--r--src/render/qrendererpluginfactory_p.h2
-rw-r--r--tests/auto/render/aspect/tst_aspect.cpp1
-rw-r--r--tests/auto/render/boundingsphere/tst_boundingsphere.cpp2
-rw-r--r--tests/auto/render/commons/testaspect.cpp2
-rw-r--r--tests/auto/render/opengl/computecommand/tst_computecommand.cpp2
-rw-r--r--tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp4
-rw-r--r--tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp2
-rw-r--r--tests/auto/render/opengl/renderer/tst_renderer.cpp2
-rw-r--r--tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp2
-rw-r--r--tests/auto/render/opengl/renderviews/tst_renderviews.cpp14
-rw-r--r--tests/auto/render/opengl/textures/tst_textures.cpp20
-rw-r--r--tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp2
-rw-r--r--tests/auto/render/qcamera/tst_qcamera.cpp2
-rw-r--r--tests/auto/render/raycastingjob/tst_raycastingjob.cpp2
-rw-r--r--tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp2
-rw-r--r--tests/benchmarks/render/jobs/tst_bench_jobs.cpp2
-rw-r--r--tests/benchmarks/render/layerfiltering/tst_bench_layerfiltering.cpp2
-rw-r--r--tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp2
-rw-r--r--tests/manual/manual-renderloop/main.cpp2
33 files changed, 84 insertions, 283 deletions
diff --git a/src/plugins/renderers/opengl/main.cpp b/src/plugins/renderers/opengl/main.cpp
index a6cd9faf7..7f97ead1d 100644
--- a/src/plugins/renderers/opengl/main.cpp
+++ b/src/plugins/renderers/opengl/main.cpp
@@ -47,10 +47,10 @@ class OpenGLRendererPlugin : public Qt3DRender::Render::QRendererPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QRendererPluginFactoryInterface_iid FILE "openglrenderer.json")
- Qt3DRender::Render::AbstractRenderer *create(const QString &key, Qt3DRender::QRenderAspect::RenderType renderMode) override
+ Qt3DRender::Render::AbstractRenderer *create(const QString &key) override
{
Q_UNUSED(key)
- return new Qt3DRender::Render::OpenGL::Renderer(renderMode);
+ return new Qt3DRender::Render::OpenGL::Renderer();
}
};
diff --git a/src/plugins/renderers/opengl/renderer/renderer.cpp b/src/plugins/renderers/opengl/renderer/renderer.cpp
index 5c6a16769..e32e8d8ad 100644
--- a/src/plugins/renderers/opengl/renderer/renderer.cpp
+++ b/src/plugins/renderers/opengl/renderer/renderer.cpp
@@ -62,7 +62,6 @@
#include <Qt3DRender/private/shader_p.h>
#include <Qt3DRender/private/buffer_p.h>
#include <Qt3DRender/private/technique_p.h>
-#include <Qt3DRender/private/renderthread_p.h>
#include <Qt3DRender/private/scenemanager_p.h>
#include <Qt3DRender/private/techniquefilternode_p.h>
#include <Qt3DRender/private/viewportnode_p.h>
@@ -227,7 +226,7 @@ private:
a short while after.
*/
-Renderer::Renderer(QRenderAspect::RenderType type)
+Renderer::Renderer()
: m_services(nullptr)
, m_aspect(nullptr)
, m_nodesManager(nullptr)
@@ -235,8 +234,7 @@ Renderer::Renderer(QRenderAspect::RenderType type)
, m_defaultRenderStateSet(nullptr)
, m_submissionContext(nullptr)
, m_renderQueue(new RenderQueue())
- , m_renderThread(type == QRenderAspect::Threaded ? new RenderThread(this) : nullptr)
- , m_vsyncFrameAdvanceService(new VSyncFrameAdvanceService(m_renderThread != nullptr))
+ , m_vsyncFrameAdvanceService(new VSyncFrameAdvanceService(false))
, m_waitForInitializationToBeCompleted(0)
, m_hasBeenInitializedMutex()
, m_exposed(0)
@@ -269,8 +267,6 @@ Renderer::Renderer(QRenderAspect::RenderType type)
// Set renderer as running - it will wait in the context of the
// RenderThread for RenderViews to be submitted
m_running.fetchAndStoreOrdered(1);
- if (m_renderThread)
- m_renderThread->waitForStart();
m_introspectShaderJob->addDependency(m_filterCompatibleTechniqueJob);
@@ -285,8 +281,6 @@ Renderer::Renderer(QRenderAspect::RenderType type)
Renderer::~Renderer()
{
Q_ASSERT(m_running.fetchAndStoreOrdered(0) == 0);
- if (m_renderThread)
- Q_ASSERT(m_renderThread->isFinished());
delete m_renderQueue;
delete m_defaultRenderStateSet;
@@ -543,15 +537,7 @@ void Renderer::shutdown()
m_renderQueue->reset();
lockRenderQueue.unlock();
- if (!m_renderThread) {
- releaseGraphicsResources();
- } else {
- // Wake up the render thread in case it is waiting for some renderviews
- // to be ready. The isReadyToSubmit() function checks for a shutdown
- // having been requested.
- m_submitRenderViewsSemaphore.release(1);
- m_renderThread->wait();
- }
+ releaseGraphicsResources();
// Destroy internal managers
// This needs to be done before the nodeManager is destroy
@@ -856,7 +842,7 @@ void Renderer::enqueueRenderView(RenderView *renderView, int submitOrder)
const bool isQueueComplete = m_renderQueue->queueRenderView(renderView, submitOrder);
locker.unlock(); // We're done protecting the queue at this point
if (isQueueComplete) {
- if (m_renderThread && m_running.loadRelaxed())
+ if (m_running.loadRelaxed())
Q_ASSERT(m_submitRenderViewsSemaphore.available() == 0);
m_submitRenderViewsSemaphore.release(1);
}
@@ -864,16 +850,9 @@ void Renderer::enqueueRenderView(RenderView *renderView, int submitOrder)
bool Renderer::canRender() const
{
- // Make sure that we've not been told to terminate
- if (m_renderThread && !m_running.loadRelaxed()) {
- qCDebug(Rendering) << "RenderThread termination requested whilst waiting";
- return false;
- }
-
// TO DO: Check if all surfaces have been destroyed...
// It may be better if the last window to be closed trigger a call to shutdown
// Rather than having checks for the surface everywhere
-
return true;
}
diff --git a/src/plugins/renderers/opengl/renderer/renderer_p.h b/src/plugins/renderers/opengl/renderer/renderer_p.h
index cd3f03956..b8b38b944 100644
--- a/src/plugins/renderers/opengl/renderer/renderer_p.h
+++ b/src/plugins/renderers/opengl/renderer/renderer_p.h
@@ -136,7 +136,6 @@ class Shader;
class Entity;
class Effect;
class RenderPass;
-class RenderThread;
class RenderStateSet;
class VSyncFrameAdvanceService;
class NodeManagers;
@@ -169,7 +168,7 @@ class GLResourceManagers;
class Q_AUTOTEST_EXPORT Renderer : public AbstractRenderer
{
public:
- explicit Renderer(QRenderAspect::RenderType type);
+ explicit Renderer();
~Renderer();
void dumpInfo() const override;
@@ -326,7 +325,6 @@ private:
QSurfaceFormat m_format;
RenderQueue *m_renderQueue;
- QScopedPointer<RenderThread> m_renderThread;
QScopedPointer<VSyncFrameAdvanceService> m_vsyncFrameAdvanceService;
QSemaphore m_submitRenderViewsSemaphore;
diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp
index 133c3378e..1c31d199f 100644
--- a/src/quick3d/imports/scene3d/scene3ditem.cpp
+++ b/src/quick3d/imports/scene3d/scene3ditem.cpp
@@ -714,7 +714,7 @@ QSGNode *Scene3DItem::updatePaintNode(QSGNode *node, QQuickItem::UpdatePaintNode
}
// If the render aspect wasn't created yet, do so now
if (m_renderAspect == nullptr) {
- m_renderAspect = new QRenderAspect(QRenderAspect::Synchronous);
+ m_renderAspect = new QRenderAspect(QRenderAspect::Manual);
auto *rw = QQuickRenderControl::renderWindowFor(window());
static_cast<Qt3DRender::QRenderAspectPrivate *>(Qt3DRender::QRenderAspectPrivate::get(m_renderAspect))->m_screen =
(rw ? rw->screen() : window()->screen());
diff --git a/src/render/CMakeLists.txt b/src/render/CMakeLists.txt
index a6c1b260b..d841099e8 100644
--- a/src/render/CMakeLists.txt
+++ b/src/render/CMakeLists.txt
@@ -34,7 +34,6 @@ qt_add_module(3DRender
backend/rendersettings.cpp backend/rendersettings_p.h
backend/rendertarget.cpp backend/rendertarget_p.h
backend/rendertargetoutput.cpp backend/rendertargetoutput_p.h
- backend/renderthread.cpp backend/renderthread_p.h
backend/resourceaccessor.cpp backend/resourceaccessor_p.h
backend/segmentsvisitor.cpp backend/segmentsvisitor_p.h
backend/stringtoint.cpp backend/stringtoint_p.h
diff --git a/src/render/backend/render-backend.pri b/src/render/backend/render-backend.pri
index 7b5f3f068..3f75e2115 100644
--- a/src/render/backend/render-backend.pri
+++ b/src/render/backend/render-backend.pri
@@ -1,7 +1,6 @@
INCLUDEPATH += $$PWD
HEADERS += \
- $$PWD/renderthread_p.h \
$$PWD/parameterpack_p.h \
$$PWD/rendertarget_p.h \
$$PWD/attachmentpack_p.h \
@@ -38,7 +37,6 @@ HEADERS += \
$$PWD/apishadermanager_p.h
SOURCES += \
- $$PWD/renderthread.cpp \
$$PWD/parameterpack.cpp \
$$PWD/rendertarget.cpp \
$$PWD/managers.cpp \
diff --git a/src/render/backend/renderthread.cpp b/src/render/backend/renderthread.cpp
deleted file mode 100644
index 05abf7210..000000000
--- a/src/render/backend/renderthread.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt3D module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "renderthread_p.h"
-#include <Qt3DRender/private/abstractrenderer_p.h>
-#include <Qt3DRender/private/renderlogging_p.h>
-#include <QEventLoop>
-#include <QTime>
-#include <QMutexLocker>
-
-QT_BEGIN_NAMESPACE
-
-namespace Qt3DRender {
-
-namespace Render {
-
-RenderThread::RenderThread(AbstractRenderer *renderer)
- : QThread(),
- m_renderer(renderer),
- m_semaphore(0)
-{
-}
-
-RenderThread::~RenderThread()
-{
-}
-
-// Called by Renderer in the context of the Aspect Thread
-void RenderThread::waitForStart( Priority priority )
-{
- qCDebug(Render::Backend) << "Starting Render thread and then going to sleep until it is ready for us...";
- start( priority );
- m_semaphore.acquire();
- qCDebug(Render::Backend) << "Render thread is now ready & calling thread is now awake again";
-}
-
-// RenderThread context
-void RenderThread::run()
-{
- // return control to the aspect thread that created us.
- m_semaphore.release();
-
- // This call to Renderer::initialize() waits for a surface to be set on the
- // renderer in the context of the Aspect Thread
- m_renderer->initialize();
-
- // Enter the main OpenGL submission loop.
- m_renderer->render();
-
- // Clean up any OpenGL resources
- m_renderer->releaseGraphicsResources();
-
- qCDebug(Render::Backend) << "Exiting RenderThread";
-}
-
-} // namespace Render
-
-} // namespace Qt3DRender
-
-QT_END_NAMESPACE
diff --git a/src/render/backend/renderthread_p.h b/src/render/backend/renderthread_p.h
deleted file mode 100644
index cdbb4f8c5..000000000
--- a/src/render/backend/renderthread_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt3D module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QT3DRENDER_RENDER_RENDERTHREAD_H
-#define QT3DRENDER_RENDER_RENDERTHREAD_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of other Qt classes. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QThread>
-#include <Qt3DRender/private/qt3drender_global_p.h>
-#include <QtCore/QSemaphore>
-
-QT_BEGIN_NAMESPACE
-
-namespace Qt3DRender {
-
-namespace Render {
-
-class AbstractRenderer;
-
-class Q_3DRENDERSHARED_PRIVATE_EXPORT RenderThread : public QThread
-{
- Q_OBJECT
-public:
- explicit RenderThread(AbstractRenderer *renderer);
- ~RenderThread();
-
- void waitForStart( Priority priority = InheritPriority );
-
- Render::AbstractRenderer* renderer() const { return m_renderer; }
-
-protected:
- void run() override;
-
-private:
- AbstractRenderer* m_renderer;
- QSemaphore m_semaphore;
-};
-
-} // namespace Render
-
-} // namespace Qt3DRender
-
-QT_END_NAMESPACE
-
-#endif // QT3DRENDER_RENDER_RENDERTHREAD_H
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 6d2f8757a..d22edafa7 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -287,13 +287,12 @@ namespace Qt3DRender {
Renderer and QRenderPlugin.
*/
/*! \internal */
-QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect::RenderType type)
+QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect::SubmissionType submissionType)
: QAbstractAspectPrivate()
, m_nodeManagers(nullptr)
, m_renderer(nullptr)
, m_initialized(false)
- , m_renderAfterJobs(false)
- , m_renderType(type)
+ , m_renderAfterJobs(submissionType == QRenderAspect::Automatic || qEnvironmentVariableIsSet("QT3D_FORCE_SYNCHRONOUS_RENDER"))
, m_offscreenHelper(nullptr)
, m_updateTreeEnabledJob(Render::UpdateTreeEnabledJobPtr::create())
, m_worldTransformJob(Render::UpdateWorldTransformJobPtr::create())
@@ -307,13 +306,10 @@ QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect::RenderType type)
, m_pickBoundingVolumeJob(Render::PickBoundingVolumeJobPtr::create())
, m_rayCastingJob(Render::RayCastingJobPtr::create())
, m_pickEventFilter(new Render::PickEventFilter())
+ , m_submissionType(submissionType)
{
m_instances.append(this);
loadSceneParsers();
- if (m_renderType == QRenderAspect::Threaded && !QOpenGLContext::supportsThreadedOpenGL()) {
- m_renderType = QRenderAspect::Synchronous;
- m_renderAfterJobs = true;
- }
m_updateWorldBoundingVolumeJob->addDependency(m_worldTransformJob);
m_updateWorldBoundingVolumeJob->addDependency(m_calculateBoundingVolumeJob);
@@ -586,21 +582,41 @@ void QRenderAspectPrivate::registerBackendType(const QMetaObject &obj,
}
/*!
+ * \enum QRenderAspect::SubmissionType
+ *
+ * \value Automatic
+ * The QRenderAspect takes care of submitting rendering commands to the
+ * GPU.
+ * \value Manual
+ * The user will take care of telling the QRenderAspect when is the
+ * appropriate time to submit the rendering commands to the GPU.
+ */
+
+/*!
* The constructor creates a new QRenderAspect::QRenderAspect instance with the
- * specified \a parent.
+ * specified \a parent. This constructor will set the submission type to
+ * Automatic.
* \param parent
*/
QRenderAspect::QRenderAspect(QObject *parent)
- : QRenderAspect(Threaded, parent) {}
+ : QRenderAspect(QRenderAspect::Automatic, parent)
+{
+}
/*!
* The constructor creates a new QRenderAspect::QRenderAspect instance with the
- * specified \a type and \a parent.
- * \param type
+ * specified \a parent. The \a submissionType specifies whether the
+ * RenderAspect is in charge of performing the rendering submission or if the
+ * user will take care of it.
* \param parent
*/
-QRenderAspect::QRenderAspect(QRenderAspect::RenderType type, QObject *parent)
- : QRenderAspect(*new QRenderAspectPrivate(type), parent) {}
+QRenderAspect::QRenderAspect(QRenderAspect::SubmissionType submissionType,
+ QObject *parent)
+ : Qt3DCore::QAbstractAspect(*new QRenderAspectPrivate(submissionType),
+ parent)
+{
+
+}
/*! \internal */
QRenderAspect::QRenderAspect(QRenderAspectPrivate &dd, QObject *parent)
@@ -930,7 +946,7 @@ Render::AbstractRenderer *QRenderAspectPrivate::loadRendererPlugin()
for (const QString &key : keys) {
if (key != targetKey)
continue;
- Render::AbstractRenderer *renderer = Render::QRendererPluginFactory::create(key, m_renderType);
+ Render::AbstractRenderer *renderer = Render::QRendererPluginFactory::create(key);
if (renderer)
return renderer;
}
diff --git a/src/render/frontend/qrenderaspect.h b/src/render/frontend/qrenderaspect.h
index 0a090997c..f16f6f07f 100644
--- a/src/render/frontend/qrenderaspect.h
+++ b/src/render/frontend/qrenderaspect.h
@@ -69,13 +69,13 @@ class Q_3DRENDERSHARED_EXPORT QRenderAspect : public Qt3DCore::QAbstractAspect
{
Q_OBJECT
public:
- enum RenderType {
- Synchronous,
- Threaded
+ enum SubmissionType {
+ Automatic = 0,
+ Manual
};
explicit QRenderAspect(QObject *parent = nullptr);
- explicit QRenderAspect(RenderType type, QObject *parent = nullptr);
+ explicit QRenderAspect(SubmissionType submissionType, QObject *parent = nullptr);
~QRenderAspect();
protected:
diff --git a/src/render/frontend/qrenderaspect_p.h b/src/render/frontend/qrenderaspect_p.h
index d18ccfc24..f3c96455a 100644
--- a/src/render/frontend/qrenderaspect_p.h
+++ b/src/render/frontend/qrenderaspect_p.h
@@ -95,7 +95,7 @@ typedef QSharedPointer<UpdateLevelOfDetailJob> UpdateLevelOfDetailJobPtr;
class Q_3DRENDERSHARED_PRIVATE_EXPORT QRenderAspectPrivate : public Qt3DCore::QAbstractAspectPrivate
{
public:
- QRenderAspectPrivate(QRenderAspect::RenderType type);
+ QRenderAspectPrivate(QRenderAspect::SubmissionType submissionType);
~QRenderAspectPrivate();
Q_DECLARE_PUBLIC(QRenderAspect)
@@ -126,11 +126,10 @@ public:
Render::AbstractRenderer *m_renderer;
bool m_initialized;
- bool m_renderAfterJobs;
+ const bool m_renderAfterJobs;
QList<QSceneImporter *> m_sceneImporter;
QVector<QString> m_loadedPlugins;
QVector<Render::QRenderPlugin *> m_renderPlugins;
- QRenderAspect::RenderType m_renderType;
Render::OffscreenSurfaceHelper *m_offscreenHelper;
QScreen *m_screen = nullptr;
@@ -147,6 +146,7 @@ public:
Render::RayCastingJobPtr m_rayCastingJob;
QScopedPointer<Render::PickEventFilter> m_pickEventFilter;
+ QRenderAspect::SubmissionType m_submissionType;
static QMutex m_pluginLock;
static QVector<QString> m_pluginConfig;
diff --git a/src/render/qrendererplugin.cpp b/src/render/qrendererplugin.cpp
index eb54a0ead..a9ce2c744 100644
--- a/src/render/qrendererplugin.cpp
+++ b/src/render/qrendererplugin.cpp
@@ -54,10 +54,9 @@ QRendererPlugin::~QRendererPlugin()
{
}
-AbstractRenderer *QRendererPlugin::create(const QString &key, QRenderAspect::RenderType renderMode)
+AbstractRenderer *QRendererPlugin::create(const QString &key)
{
Q_UNUSED(key)
- Q_UNUSED(renderMode)
return nullptr;
}
diff --git a/src/render/qrendererplugin_p.h b/src/render/qrendererplugin_p.h
index d4daeeda2..abf8bb221 100644
--- a/src/render/qrendererplugin_p.h
+++ b/src/render/qrendererplugin_p.h
@@ -74,7 +74,7 @@ public:
explicit QRendererPlugin(QObject *parent = nullptr);
~QRendererPlugin();
- virtual AbstractRenderer *create(const QString &key, QRenderAspect::RenderType renderMode);
+ virtual AbstractRenderer *create(const QString &key);
};
} // Render
diff --git a/src/render/qrendererpluginfactory.cpp b/src/render/qrendererpluginfactory.cpp
index 3cd41daed..1c0fd2b33 100644
--- a/src/render/qrendererpluginfactory.cpp
+++ b/src/render/qrendererpluginfactory.cpp
@@ -80,19 +80,19 @@ QStringList QRendererPluginFactory::keys(const QString &pluginPath)
return list;
}
-AbstractRenderer *QRendererPluginFactory::create(const QString &name, QRenderAspect::RenderType renderMode, const QString &pluginPath)
+AbstractRenderer *QRendererPluginFactory::create(const QString &name, const QString &pluginPath)
{
if (!pluginPath.isEmpty()) {
#if QT_CONFIG(library)
QCoreApplication::addLibraryPath(pluginPath);
- if (AbstractRenderer *ret = qLoadPlugin<AbstractRenderer, QRendererPlugin>(directLoader(), name, renderMode))
+ if (AbstractRenderer *ret = qLoadPlugin<AbstractRenderer, QRendererPlugin>(directLoader(), name))
return ret;
#else
qWarning() << QObject::tr("Cannot load QRendererPlugin plugin from %1. "
"Library loading is disabled.").arg(pluginPath);
#endif
}
- return qLoadPlugin<AbstractRenderer, QRendererPlugin>(loader(), name, renderMode);
+ return qLoadPlugin<AbstractRenderer, QRendererPlugin>(loader(), name);
}
} // Render
diff --git a/src/render/qrendererpluginfactory_p.h b/src/render/qrendererpluginfactory_p.h
index f73cc8929..2088a8c8e 100644
--- a/src/render/qrendererpluginfactory_p.h
+++ b/src/render/qrendererpluginfactory_p.h
@@ -67,7 +67,7 @@ class Q_3DRENDERSHARED_PRIVATE_EXPORT QRendererPluginFactory
{
public:
static QStringList keys(const QString &pluginPath = QString());
- static AbstractRenderer *create(const QString &name, QRenderAspect::RenderType renderMode, const QString &pluginPath = QString());
+ static AbstractRenderer *create(const QString &name, const QString &pluginPath = QString());
};
} // Render
diff --git a/tests/auto/render/aspect/tst_aspect.cpp b/tests/auto/render/aspect/tst_aspect.cpp
index 9bd5df698..1e1f2f08e 100644
--- a/tests/auto/render/aspect/tst_aspect.cpp
+++ b/tests/auto/render/aspect/tst_aspect.cpp
@@ -87,7 +87,6 @@ private Q_SLOTS:
Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity();
QScopedPointer<TestRendererAspect> aspect(new TestRendererAspect(rootEntity));
auto daspect = Qt3DRender::QRenderAspectPrivate::get(aspect.data());
- daspect->m_renderAfterJobs = true;
aspect->onEngineStartup();
// replace with empty renderer
diff --git a/tests/auto/render/boundingsphere/tst_boundingsphere.cpp b/tests/auto/render/boundingsphere/tst_boundingsphere.cpp
index 6fbdee807..62a7272a5 100644
--- a/tests/auto/render/boundingsphere/tst_boundingsphere.cpp
+++ b/tests/auto/render/boundingsphere/tst_boundingsphere.cpp
@@ -108,7 +108,7 @@ class TestAspect : public Qt3DRender::QRenderAspect, public Qt3DCore::QAbstractF
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_sceneRoot(nullptr)
{
QRenderAspect::onRegistered();
diff --git a/tests/auto/render/commons/testaspect.cpp b/tests/auto/render/commons/testaspect.cpp
index 086d79bb6..a2d6a8950 100644
--- a/tests/auto/render/commons/testaspect.cpp
+++ b/tests/auto/render/commons/testaspect.cpp
@@ -68,7 +68,7 @@ QVector<Qt3DCore::QNode *> getNodesForCreation(Qt3DCore::QNode *root)
}
TestAspect::TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_jobManager(new Qt3DCore::QAspectJobManager())
{
Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
diff --git a/tests/auto/render/opengl/computecommand/tst_computecommand.cpp b/tests/auto/render/opengl/computecommand/tst_computecommand.cpp
index 4f4f7a1fb..0b1ff3881 100644
--- a/tests/auto/render/opengl/computecommand/tst_computecommand.cpp
+++ b/tests/auto/render/opengl/computecommand/tst_computecommand.cpp
@@ -46,7 +46,7 @@ class tst_Renderer : public Qt3DRender::Render::OpenGL::Renderer
{
public:
tst_Renderer()
- : Qt3DRender::Render::OpenGL::Renderer(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::Render::OpenGL::Renderer()
{}
~tst_Renderer() {
diff --git a/tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp b/tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp
index 304e56172..6fc95092a 100644
--- a/tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp
+++ b/tests/auto/render/opengl/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp
@@ -52,7 +52,7 @@ class TestAspect : public Qt3DRender::QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_jobManager(new Qt3DCore::QAspectJobManager())
, m_window(new QWindow())
, m_contextCreationSuccessful(false)
@@ -206,7 +206,7 @@ private Q_SLOTS:
// WHEN
Qt3DRender::Render::TechniqueManager techniqueManager;
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
backendFilterCompatibleTechniqueJob.setManager(&techniqueManager);
backendFilterCompatibleTechniqueJob.setRenderer(&renderer);
diff --git a/tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp b/tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp
index efd2c6603..bbc5d15e3 100644
--- a/tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp
+++ b/tests/auto/render/opengl/materialparametergathererjob/tst_materialparametergathererjob.cpp
@@ -62,7 +62,7 @@ class TestAspect : public Qt3DRender::QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_jobManager(new Qt3DCore::QAspectJobManager())
{
Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
diff --git a/tests/auto/render/opengl/renderer/tst_renderer.cpp b/tests/auto/render/opengl/renderer/tst_renderer.cpp
index 93a788921..65187518e 100644
--- a/tests/auto/render/opengl/renderer/tst_renderer.cpp
+++ b/tests/auto/render/opengl/renderer/tst_renderer.cpp
@@ -54,7 +54,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
Qt3DRender::Render::OffscreenSurfaceHelper offscreenHelper(&renderer);
Qt3DRender::Render::RenderSettings settings;
// owned by FG manager
diff --git a/tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp b/tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp
index 8e929e5da..f29af93c5 100644
--- a/tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp
+++ b/tests/auto/render/opengl/renderviewbuilder/tst_renderviewbuilder.cpp
@@ -63,7 +63,7 @@ class TestAspect : public QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : QRenderAspect()
, m_jobManager(new Qt3DCore::QAspectJobManager())
{
Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
diff --git a/tests/auto/render/opengl/renderviews/tst_renderviews.cpp b/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
index bc6f14858..0ec076bd9 100644
--- a/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
+++ b/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
@@ -138,7 +138,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
RenderView renderView;
renderer.setNodeManagers(&nodeManagers);
@@ -164,7 +164,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
RenderView renderView;
std::vector<RenderCommand> rawCommands;
@@ -211,7 +211,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
RenderView renderView;
std::vector<RenderCommand> rawCommands;
@@ -312,7 +312,7 @@ private Q_SLOTS:
QFETCH(QVector<ShaderParameterPack>, expectedMinimizedParameters);
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
renderer.setNodeManagers(&nodeManagers);
GLShaderManager *shaderManager = renderer.glResourceManagers()->glShaderManager();
@@ -364,7 +364,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
RenderView renderView;
std::vector<RenderCommand> rawCommands;
@@ -411,7 +411,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
RenderView renderView;
std::vector<RenderCommand> rawCommands;
@@ -459,7 +459,7 @@ private Q_SLOTS:
{
// GIVEN
Qt3DRender::Render::NodeManagers nodeManagers;
- Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Renderer renderer;
RenderView renderView;
std::vector<RenderCommand> rawCommands;
diff --git a/tests/auto/render/opengl/textures/tst_textures.cpp b/tests/auto/render/opengl/textures/tst_textures.cpp
index c9504cbbf..f0ca09aa7 100644
--- a/tests/auto/render/opengl/textures/tst_textures.cpp
+++ b/tests/auto/render/opengl/textures/tst_textures.cpp
@@ -222,7 +222,7 @@ private Q_SLOTS:
{
QSKIP("Texture Sharing is now disabled");
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
renderer.setNodeManagers(mgrs.data());
// GIVEN
@@ -250,7 +250,7 @@ private Q_SLOTS:
void shouldCreateDifferentGLTexturess()
{
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
renderer.setNodeManagers(mgrs.data());
// GIVEN
@@ -306,7 +306,7 @@ private Q_SLOTS:
void shouldCreateDifferentGLTexturesWhenUsingSharedTextureIds()
{
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
renderer.setNodeManagers(mgrs.data());
Qt3DRender::Render::OpenGL::GLResourceManagers *glMgrs = renderer.glResourceManagers();
@@ -379,7 +379,7 @@ private Q_SLOTS:
void generatorsShouldCreateSameData()
{
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
renderer.setNodeManagers(mgrs.data());
// GIVEN
@@ -438,7 +438,7 @@ private Q_SLOTS:
void checkTextureImageCleanupState()
{
// GIVEN
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
TestTextureImage img(1);
img.setLayer(2);
img.setMipLevel(3);
@@ -462,7 +462,7 @@ private Q_SLOTS:
void checkTextureImageInitializeFromPeer()
{
// GIVEN
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
TestTextureImage img(1);
{
@@ -594,7 +594,7 @@ private Q_SLOTS:
void checkTextureImageProperlyReleaseGenerator()
{
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager();
Qt3DRender::Render::TextureImageManager *texImgMgr = mgrs->textureImageManager();
renderer.setNodeManagers(mgrs.data());
@@ -634,7 +634,7 @@ private Q_SLOTS:
void checkTextureIsMarkedForDeletion()
{
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager();
renderer.setNodeManagers(mgrs.data());
@@ -668,7 +668,7 @@ private Q_SLOTS:
void checkTextureDestructionReconstructionWithinSameLoop()
{
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager();
renderer.setNodeManagers(mgrs.data());
@@ -707,7 +707,7 @@ private Q_SLOTS:
{
// GIVEN
QScopedPointer<Qt3DRender::Render::NodeManagers> mgrs(new Qt3DRender::Render::NodeManagers());
- Qt3DRender::Render::OpenGL::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous);
+ Qt3DRender::Render::OpenGL::Renderer renderer;
Qt3DRender::Render::TextureManager *texMgr = mgrs->textureManager();
Qt3DRender::Render::TextureImageManager *texImgMgr = mgrs->textureImageManager();
renderer.setNodeManagers(mgrs.data());
diff --git a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp
index c655a1409..172cfa7bc 100644
--- a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp
+++ b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp
@@ -118,7 +118,7 @@ class TestAspect : public Qt3DRender::QRenderAspect, public Qt3DCore::QAbstractF
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_sceneRoot(nullptr)
{
m_engine = new Qt3DCore::QAspectEngine(this);
diff --git a/tests/auto/render/qcamera/tst_qcamera.cpp b/tests/auto/render/qcamera/tst_qcamera.cpp
index ee217d38c..1e8e7cd9b 100644
--- a/tests/auto/render/qcamera/tst_qcamera.cpp
+++ b/tests/auto/render/qcamera/tst_qcamera.cpp
@@ -99,7 +99,7 @@ class TestAspect : public Qt3DRender::QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Manual)
, m_sceneRoot(nullptr)
{
QRenderAspect::onRegistered();
diff --git a/tests/auto/render/raycastingjob/tst_raycastingjob.cpp b/tests/auto/render/raycastingjob/tst_raycastingjob.cpp
index 93b4e6f78..247b4a82e 100644
--- a/tests/auto/render/raycastingjob/tst_raycastingjob.cpp
+++ b/tests/auto/render/raycastingjob/tst_raycastingjob.cpp
@@ -110,7 +110,7 @@ class TestAspect : public Qt3DRender::QRenderAspect, public Qt3DCore::QAbstractF
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_sceneRoot(nullptr)
{
m_engine = new Qt3DCore::QAspectEngine(this);
diff --git a/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp b/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp
index e59543154..e12c74073 100644
--- a/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp
+++ b/tests/auto/render/updateshaderdatatransformjob/tst_updateshaderdatatransformjob.cpp
@@ -89,7 +89,7 @@ class TestAspect : public Qt3DRender::QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect()
, m_sceneRoot(nullptr)
{
Qt3DRender::QRenderAspect::onRegistered();
diff --git a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp
index 268b8b2ca..1e0747ce4 100644
--- a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp
+++ b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp
@@ -63,7 +63,7 @@ namespace Qt3DRender {
Q_OBJECT
public:
QRenderAspectTester(bool withWindow = false)
- : Qt3DRender::QRenderAspect(QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect(QRenderAspect::Manual)
, m_jobManager(new Qt3DCore::QAspectJobManager())
{
Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
diff --git a/tests/benchmarks/render/layerfiltering/tst_bench_layerfiltering.cpp b/tests/benchmarks/render/layerfiltering/tst_bench_layerfiltering.cpp
index 5523457be..a3b4213b5 100644
--- a/tests/benchmarks/render/layerfiltering/tst_bench_layerfiltering.cpp
+++ b/tests/benchmarks/render/layerfiltering/tst_bench_layerfiltering.cpp
@@ -49,7 +49,7 @@ class TestAspect : public Qt3DRender::QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Manual)
, m_jobManager(new Qt3DCore::QAspectJobManager())
{
Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
diff --git a/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp b/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp
index 340bfdda4..47336c0b6 100644
--- a/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp
+++ b/tests/benchmarks/render/materialparametergathering/tst_bench_materialparametergathering.cpp
@@ -50,7 +50,7 @@ class TestAspect : public Qt3DRender::QRenderAspect
{
public:
TestAspect(Qt3DCore::QNode *root)
- : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous)
+ : Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Manual)
, m_jobManager(new Qt3DCore::QAspectJobManager())
{
Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
diff --git a/tests/manual/manual-renderloop/main.cpp b/tests/manual/manual-renderloop/main.cpp
index a3f108e50..60521d865 100644
--- a/tests/manual/manual-renderloop/main.cpp
+++ b/tests/manual/manual-renderloop/main.cpp
@@ -68,7 +68,7 @@ class ManualRenderer
public:
ManualRenderer()
: m_aspectEngine(new Qt3DCore::QAspectEngine())
- , m_renderAspect(new Qt3DRender::QRenderAspect(Qt3DRender::QRenderAspect::Synchronous))
+ , m_renderAspect(new Qt3DRender::QRenderAspect())
{
}