summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michaël Celerier <jean-michael.celerier@kdab.com>2020-06-22 12:02:27 +0200
committerJean-Michaël Celerier <jean-michael.celerier@kdab.com>2020-06-23 14:51:46 +0200
commit46f663c2e923b0b35f08fbf619c78427e8bf82ae (patch)
treeaffa0e8689442be93b8e893ae099ccdec11ad157
parentc2730dc176707c0b77321dd4720516a8595856af (diff)
rhi: update with qt3d changes
- removal of aligned_alloc - removal of renderthread Change-Id: I7ccbf15f3266867f256d983b1750a9420b79d296 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/plugins/renderers/rhi/jobs/renderviewjobutils_p.h1
-rw-r--r--src/plugins/renderers/rhi/main.cpp4
-rw-r--r--src/plugins/renderers/rhi/renderer/renderer.cpp28
-rw-r--r--src/plugins/renderers/rhi/renderer/renderer_p.h4
-rw-r--r--src/plugins/renderers/rhi/renderer/renderview_p.h2
5 files changed, 7 insertions, 32 deletions
diff --git a/src/plugins/renderers/rhi/jobs/renderviewjobutils_p.h b/src/plugins/renderers/rhi/jobs/renderviewjobutils_p.h
index 58f712143..54c079625 100644
--- a/src/plugins/renderers/rhi/jobs/renderviewjobutils_p.h
+++ b/src/plugins/renderers/rhi/jobs/renderviewjobutils_p.h
@@ -58,7 +58,6 @@
#include <QMatrix4x4>
#include <Qt3DRender/private/uniform_p.h>
#include <Qt3DRender/private/handle_types_p.h>
-#include <Qt3DRender/private/aligned_malloc_p.h>
#include <Qt3DRender/private/shaderdata_p.h>
#include <shadervariables_p.h>
diff --git a/src/plugins/renderers/rhi/main.cpp b/src/plugins/renderers/rhi/main.cpp
index 47efc7530..36adae97d 100644
--- a/src/plugins/renderers/rhi/main.cpp
+++ b/src/plugins/renderers/rhi/main.cpp
@@ -48,10 +48,10 @@ class RhiRendererPlugin : public Qt3DRender::Render::QRendererPlugin
Q_PLUGIN_METADATA(IID QRendererPluginFactoryInterface_iid FILE "rhirenderer.json")
Qt3DRender::Render::AbstractRenderer *
- create(const QString &key, Qt3DRender::QRenderAspect::RenderType renderMode) override
+ create(const QString &key) override
{
Q_UNUSED(key)
- return new Qt3DRender::Render::Rhi::Renderer(renderMode);
+ return new Qt3DRender::Render::Rhi::Renderer();
}
};
diff --git a/src/plugins/renderers/rhi/renderer/renderer.cpp b/src/plugins/renderers/rhi/renderer/renderer.cpp
index 682971403..24a743f9d 100644
--- a/src/plugins/renderers/rhi/renderer/renderer.cpp
+++ b/src/plugins/renderers/rhi/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>
@@ -230,7 +229,7 @@ int locationForAttribute(Attribute *attr, RHIShader *shader) noexcept
a short while after.
*/
-Renderer::Renderer(QRenderAspect::RenderType type)
+Renderer::Renderer()
: m_services(nullptr),
m_aspect(nullptr),
m_nodesManager(nullptr),
@@ -238,8 +237,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),
@@ -273,8 +271,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);
@@ -289,8 +285,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;
@@ -510,15 +504,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
@@ -840,20 +826,12 @@ 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())
- Q_ASSERT(m_submitRenderViewsSemaphore.available() == 0);
m_submitRenderViewsSemaphore.release(1);
}
}
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
diff --git a/src/plugins/renderers/rhi/renderer/renderer_p.h b/src/plugins/renderers/rhi/renderer/renderer_p.h
index 24906d955..b464d6670 100644
--- a/src/plugins/renderers/rhi/renderer/renderer_p.h
+++ b/src/plugins/renderers/rhi/renderer/renderer_p.h
@@ -134,7 +134,6 @@ class Shader;
class Entity;
class Effect;
class RenderPass;
-class RenderThread;
class RenderStateSet;
class VSyncFrameAdvanceService;
class NodeManagers;
@@ -164,7 +163,7 @@ class RHIResourceManagers;
class Q_AUTOTEST_EXPORT Renderer : public AbstractRenderer
{
public:
- explicit Renderer(QRenderAspect::RenderType type);
+ explicit Renderer();
~Renderer();
void dumpInfo() const override;
@@ -330,7 +329,6 @@ private:
QScopedPointer<SubmissionContext> m_submissionContext;
RenderQueue *m_renderQueue;
- QScopedPointer<RenderThread> m_renderThread;
QScopedPointer<VSyncFrameAdvanceService> m_vsyncFrameAdvanceService;
QSemaphore m_submitRenderViewsSemaphore;
diff --git a/src/plugins/renderers/rhi/renderer/renderview_p.h b/src/plugins/renderers/rhi/renderer/renderview_p.h
index f90409686..4c60cc19c 100644
--- a/src/plugins/renderers/rhi/renderer/renderview_p.h
+++ b/src/plugins/renderers/rhi/renderer/renderview_p.h
@@ -67,7 +67,7 @@
#include <Qt3DRender/private/qwaitfence_p.h>
#include <Qt3DCore/private/qframeallocator_p.h>
-#include <Qt3DRender/private/aligned_malloc_p.h>
+#include <Qt3DCore/private/aligned_malloc_p.h>
#include <renderer_p.h>
// TODO: Move out once this is all refactored