diff options
author | Jean-Michaël Celerier <jean-michael.celerier@kdab.com> | 2020-06-22 12:02:27 +0200 |
---|---|---|
committer | Jean-Michaël Celerier <jean-michael.celerier@kdab.com> | 2020-06-23 14:51:46 +0200 |
commit | 46f663c2e923b0b35f08fbf619c78427e8bf82ae (patch) | |
tree | affa0e8689442be93b8e893ae099ccdec11ad157 | |
parent | c2730dc176707c0b77321dd4720516a8595856af (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.h | 1 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/main.cpp | 4 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderer.cpp | 28 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderer_p.h | 4 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderview_p.h | 2 |
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 |