diff options
Diffstat (limited to 'tests/auto')
8 files changed, 71 insertions, 255 deletions
diff --git a/tests/auto/render/commons/testrenderer.h b/tests/auto/render/commons/testrenderer.h index 9624f129a..b3f602dc2 100644 --- a/tests/auto/render/commons/testrenderer.h +++ b/tests/auto/render/commons/testrenderer.h @@ -52,7 +52,7 @@ public: void shutdown() override {} void releaseGraphicsResources() override {} void render() override {} - void doRender() override {} + void doRender(bool scene3dBlocking = false) override { Q_UNUSED(scene3dBlocking); } void cleanGraphicsResources() override {} bool isRunning() const override { return true; } bool shouldRender() override { return true; } @@ -60,7 +60,7 @@ public: QVector<Qt3DCore::QAspectJobPtr> renderBinJobs() override { return QVector<Qt3DCore::QAspectJobPtr>(); } Qt3DCore::QAspectJobPtr pickBoundingVolumeJob() override { return Qt3DCore::QAspectJobPtr(); } Qt3DCore::QAspectJobPtr rayCastingJob() override { return Qt3DCore::QAspectJobPtr(); } - Qt3DCore::QAspectJobPtr syncSkeletonLoadingJob() override { return Qt3DCore::QAspectJobPtr(); } + Qt3DCore::QAspectJobPtr syncTextureLoadingJob() override { return Qt3DCore::QAspectJobPtr(); } Qt3DCore::QAspectJobPtr expandBoundingVolumeJob() override { return Qt3DCore::QAspectJobPtr(); } void setSceneRoot(Qt3DCore::QBackendNodeFactory *factory, Qt3DRender::Render::Entity *root) override { Q_UNUSED(factory); Q_UNUSED(root); } Qt3DRender::Render::Entity *sceneRoot() const override { return nullptr; } @@ -81,12 +81,6 @@ public: void setOffscreenSurfaceHelper(Qt3DRender::Render::OffscreenSurfaceHelper *helper) override; QSurfaceFormat format() override; - void lockSurfaceAndRender() override {} - bool releaseRendererAndRequestPromiseToRender() override { return true; } - bool waitForRenderJobs() override { return true; } - bool tryWaitForRenderJobs(int timeout) override { Q_UNUSED(timeout); return true; } - void abortRenderJobs() override {} - protected: Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet m_changes; Qt3DRender::Render::NodeManagers *m_managers; diff --git a/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp b/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp index 803d57fa9..4d4a08a34 100644 --- a/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp +++ b/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp @@ -93,8 +93,7 @@ public: { renderer()->setOpenGLContext(&m_glContext); d_func()->m_renderer->initialize(); - renderer()->graphicsContext()->makeCurrent(m_window.data()); - renderer()->graphicsContext()->beginDrawing(); + renderer()->graphicsContext()->beginDrawing(m_window.data()); } Render::Renderer *renderer() const diff --git a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp index e61fdf6e5..d07ec9914 100644 --- a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp +++ b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp @@ -30,7 +30,6 @@ #include <qbackendnodetester.h> #include <Qt3DRender/private/geometryrenderer_p.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> -#include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/qgeometry.h> #include <Qt3DRender/qgeometryfactory.h> #include <Qt3DCore/qpropertyupdatedchange.h> @@ -187,8 +186,6 @@ private Q_SLOTS: // GIVEN Qt3DRender::Render::GeometryRenderer renderGeometryRenderer; TestRenderer renderer; - Qt3DRender::Render::NodeManagers nodeManagers; - renderGeometryRenderer.setRenderer(&renderer); QVERIFY(!renderGeometryRenderer.isDirty()); diff --git a/tests/auto/render/render.pro b/tests/auto/render/render.pro index 4045b577a..6cb9aefcf 100644 --- a/tests/auto/render/render.pro +++ b/tests/auto/render/render.pro @@ -110,8 +110,7 @@ qtConfig(private_tests) { raycaster \ qscreenraycaster \ raycastingjob \ - qcamera \ - renderbarrierjob + qcamera QT_FOR_CONFIG = 3dcore-private # TO DO: These could be restored to be executed in all cases diff --git a/tests/auto/render/renderbarrierjob/renderbarrierjob.pro b/tests/auto/render/renderbarrierjob/renderbarrierjob.pro deleted file mode 100644 index 5a988144f..000000000 --- a/tests/auto/render/renderbarrierjob/renderbarrierjob.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app - -TARGET = tst_renderbarrierjob - -QT += 3dcore 3dcore-private 3drender 3drender-private testlib - -CONFIG += testcase - -SOURCES += tst_renderbarrierjob.cpp diff --git a/tests/auto/render/renderbarrierjob/tst_renderbarrierjob.cpp b/tests/auto/render/renderbarrierjob/tst_renderbarrierjob.cpp deleted file mode 100644 index e3b49edd4..000000000 --- a/tests/auto/render/renderbarrierjob/tst_renderbarrierjob.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** 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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtTest/QtTest> -#include <QMutex> -#include <QWaitCondition> -#include <QThread> -#include <Qt3DRender/private/renderbarrierjob_p.h> -#include <Qt3DRender/private/job_common_p.h> - -class TestRenderThread : public QThread -{ -public: - TestRenderThread(Qt3DRender::Render::RenderBarrierJobPtr barrier) - : m_barrier(barrier) - {} - - void run() override - { - m_started.store(1); - m_writeSemaphore.release(); - m_readSemaphore.acquire(); - - m_barrier->allowToProceed(); - m_released.store(1); - m_writeSemaphore.release(); - m_readSemaphore.acquire(); - - m_barrier->waitForDependencies(); - m_completed.store(1); - } - - Qt3DRender::Render::RenderBarrierJobPtr m_barrier; - QSemaphore m_writeSemaphore; - QSemaphore m_readSemaphore; - - QAtomicInt m_started; - QAtomicInt m_released; - QAtomicInt m_completed; -}; - -class tst_RenderBarrierJob : public QObject -{ - Q_OBJECT -public : - tst_RenderBarrierJob() {} - ~tst_RenderBarrierJob() {} - -private Q_SLOTS: - void shouldControlRenderThread() - { - // GIVEN a barrier (of any type) - auto barrier = Qt3DRender::Render::RenderBarrierJobPtr::create(Qt3DRender::Render::JobTypes::BeginDrawingBarrier); - TestRenderThread testThread(barrier); - - // THEN - QVERIFY(testThread.m_started.load() == 0); - QVERIFY(testThread.m_released.load() == 0); - QVERIFY(testThread.m_completed.load() == 0); - - // WHEN - testThread.start(); - testThread.m_writeSemaphore.acquire(); - - // THEN thread should have started - QVERIFY(testThread.m_started.load() == 1); - QVERIFY(testThread.m_released.load() == 0); - QVERIFY(testThread.m_completed.load() == 0); - testThread.m_readSemaphore.release(); - - // WHEN - testThread.m_writeSemaphore.acquire(); - - // THEN job should be released - QVERIFY(testThread.m_started.load() == 1); - QVERIFY(testThread.m_released.load() == 1); - QVERIFY(testThread.m_completed.load() == 0); - testThread.m_readSemaphore.release(); - - // WHEN job runs and we wait for thread - barrier->run(); - testThread.wait(); - - // THEN thread should be finished - QVERIFY(testThread.m_started.load() == 1); - QVERIFY(testThread.m_released.load() == 1); - QVERIFY(testThread.m_completed.load() == 1); - } -}; - -QTEST_MAIN(tst_RenderBarrierJob) - -#include "tst_renderbarrierjob.moc" diff --git a/tests/auto/render/renderer/tst_renderer.cpp b/tests/auto/render/renderer/tst_renderer.cpp index b941a2ac4..27708c1b9 100644 --- a/tests/auto/render/renderer/tst_renderer.cpp +++ b/tests/auto/render/renderer/tst_renderer.cpp @@ -34,9 +34,6 @@ #include <Qt3DRender/private/viewportnode_p.h> #include <Qt3DRender/private/renderview_p.h> #include <Qt3DRender/private/renderviewbuilder_p.h> -#include <Qt3DRender/private/offscreensurfacehelper_p.h> -#include <Qt3DRender/private/loadtexturedatajob_p.h> -#include <Qt3DRender/private/renderbarrierjob_p.h> class tst_Renderer : public QObject { @@ -66,62 +63,46 @@ private Q_SLOTS: // NOTE: FilterCompatibleTechniqueJob and ShaderGathererJob cannot run because the context // is not initialized in this test - const int renderBarrierJobCount = 5; - // Barriers: readRenderQueueSize - // beginDrawing - // updateGLResources - // prepareCommandSubmission - // endDrawing - - const int renderViewJobCount = 13 + 1 * Qt3DRender::Render::RenderViewBuilder::optimalJobCount(); + const int singleRenderViewJobCount = 11 + 1 * Qt3DRender::Render::RenderViewBuilder::optimalJobCount(); // RenderViewBuilder renderViewJob, // renderableEntityFilterJob, // lightGatherJob, // computableEntityFilterJob, // syncRenderViewInitializationJob, - // filterEntityByLayerJob, - // syncFilterEntityByLayerJob, // syncFrustumCullingJob, // filterProximityJob, // setClearDrawBufferIndexJob, // frustumCullingJob, // syncRenderCommandBuldingJob, // syncRenderViewCommandBuilderJob - // n * RenderViewCommandBuildJobs - - const int flagIndependentRendererJobCount = 6; - // Flag independent: updateLevelOfDetailJob - // cleanupJob - // sendRenderCaptureJob - // sendBufferCaptureJob - // VAOGatherer - // updateSkinningPaletteJob - - const int flagIndependetRenderViewJobCount = renderViewJobCount - 2; - // Cached: filterEntityByLayerJob, - // syncFilterEntityByLayerJob, + // n * (RenderViewCommandBuildJobs) - - // WHEN (nothing dirty, no buffers) + // WHEN (nothing dirty, no buffers, no layers to be rebuilt, no materials to be rebuilt) QVector<Qt3DCore::QAspectJobPtr> jobs = renderer.renderBinJobs(); - // THEN + // THEN (level QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount); + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer + 1 + // updateSkinningPaletteJob + singleRenderViewJobCount); // Only valid for the first call to renderBinJobs(), since subsequent calls won't have the renderqueue reset + // WHEN renderer.markDirty(Qt3DRender::Render::AbstractRenderer::EntityEnabledDirty, nullptr); jobs = renderer.renderBinJobs(); - // THEN + // THEN (level QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + - 1 + // filterEntityByLayerJob - 1 + // syncFilterEntityByLayerJob + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer + 1 + // updateSkinningPaletteJob 1); // EntityEnabledDirty renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); @@ -130,14 +111,17 @@ private Q_SLOTS: renderer.markDirty(Qt3DRender::Render::AbstractRenderer::TransformDirty, nullptr); jobs = renderer.renderBinJobs(); - // THEN + // THEN (level QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer 1 + // WorldTransformJob 1 + // UpdateWorldBoundingVolume 1 + // UpdateShaderDataTransform + 1 + // updateSkinningPaletteJob 1); // ExpandBoundingVolumeJob renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); @@ -146,13 +130,16 @@ private Q_SLOTS: renderer.markDirty(Qt3DRender::Render::AbstractRenderer::GeometryDirty, nullptr); jobs = renderer.renderBinJobs(); - // THEN + // THEN (level QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer 1 + // CalculateBoundingVolumeJob 1 + // UpdateMeshTriangleListJob + 1 + // updateSkinningPaletteJob 1); // ExpandBoundingVolumeJob renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); @@ -161,11 +148,14 @@ private Q_SLOTS: renderer.markDirty(Qt3DRender::Render::AbstractRenderer::BuffersDirty, nullptr); jobs = renderer.renderBinJobs(); - // THEN + // THEN (level QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer + 1 + // updateSkinningPaletteJob 1); // BufferGathererJob renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); @@ -174,26 +164,16 @@ private Q_SLOTS: renderer.markDirty(Qt3DRender::Render::AbstractRenderer::TexturesDirty, nullptr); jobs = renderer.renderBinJobs(); - // THEN + // THEN (level QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + - 1 + // LoadTextureDataJob - 1); // TexturesGathererJob - - renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); - - // WHEN - renderer.markDirty(Qt3DRender::Render::AbstractRenderer::SkeletonDataDirty, nullptr); - jobs = renderer.renderBinJobs(); - - // THEN - QCOMPARE(jobs.size(), - flagIndependetRenderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + - 1); // SyncSkeletonLoadingJob + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer + 1 + // TexturesGathererJob + 1 + // updateSkinningPaletteJob + 1); // SyncTexturesGathererJob renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); @@ -201,47 +181,30 @@ private Q_SLOTS: renderer.markDirty(Qt3DRender::Render::AbstractRenderer::AllDirty, nullptr); jobs = renderer.renderBinJobs(); - // THEN + // THEN (Renderer is not initialized so FilterCompatibleTechniqueJob + // and ShaderGathererJob are not added here) QCOMPARE(jobs.size(), - renderViewJobCount + - renderBarrierJobCount + - flagIndependentRendererJobCount + - 1 + // UpdateTreeEnablee + 1 + // EntityEnabledDirty 1 + // WorldTransformJob 1 + // UpdateWorldBoundingVolume 1 + // UpdateShaderDataTransform + 1 + // ExpandBoundingVolumeJob 1 + // CalculateBoundingVolumeJob 1 + // UpdateMeshTriangleListJob - 1 + // ExpandBoundingVolumeJob + 1 + // updateSkinningPaletteJob + 1 + // updateLevelOfDetailJob + 1 + // cleanupJob + 1 + // sendRenderCaptureJob + 1 + // sendBufferCaptureJob + 1 + // VAOGatherer 1 + // BufferGathererJob - 1 + // LoadTextureDataJob 1 + // TexturesGathererJob - 1 + // SyncSkeletonLoadingJob - 1 + // FilterCompatibleTechniqueJob - 1 + // ShaderGathererJob - Qt3DRender::Render::RenderViewBuilder::optimalJobCount() + // MaterialGathererJobs - 1); // syncMaterialGathererJob + 1 // SyncTextureLoadingJob + ); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); - } - - void checkRenderBarrierJobDependencies() - { - // GIVEN - Qt3DRender::Render::Renderer renderer(Qt3DRender::QRenderAspect::Synchronous); - - // THEN - // internal dependencies - QVERIFY(renderer.beginDrawingBarrierJob()->dependencies().contains(renderer.readRenderQueueSizeBarrierJob())); - QVERIFY(renderer.updateGLResourcesBarrierJob()->dependencies().contains(renderer.beginDrawingBarrierJob())); - QVERIFY(renderer.prepareCommandSubmissionBarrierJob()->dependencies().contains(renderer.updateGLResourcesBarrierJob())); - QVERIFY(renderer.endDrawingBarrierJob()->dependencies().contains(renderer.prepareCommandSubmissionBarrierJob())); - QVERIFY(renderer.filterCompatibleTechniqueJob()->dependencies().contains(renderer.beginDrawingBarrierJob())); - QVERIFY(renderer.loadTextureJob()->dependencies().contains(renderer.updateGLResourcesBarrierJob())); - QVERIFY(renderer.prepareCommandSubmissionBarrierJob()->dependencies().contains(renderer.loadTextureJob())); - QVERIFY(renderer.updateGLResourcesBarrierJob()->dependencies().contains(renderer.filterCompatibleTechniqueJob())); } }; diff --git a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp index 1bdf20170..be1f1fb5d 100644 --- a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp +++ b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp @@ -49,7 +49,6 @@ #include <Qt3DRender/private/qrenderaspect_p.h> #include <Qt3DRender/private/nodemanagers_p.h> #include <Qt3DRender/private/managers_p.h> -#include <Qt3DRender/private/renderbarrierjob_p.h> QT_BEGIN_NAMESPACE @@ -307,25 +306,21 @@ private Q_SLOTS: QVERIFY(renderViewBuilder.frustumCullingJob()->dependencies().contains(renderViewBuilder.syncFrustumCullingJob())); QVERIFY(renderViewBuilder.frustumCullingJob()->dependencies().contains(testAspect.renderer()->expandBoundingVolumeJob())); - QCOMPARE(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().size(), renderViewBuilder.materialGathererJobs().size() + 7); + QCOMPARE(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().size(), renderViewBuilder.materialGathererJobs().size() + 6); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.syncRenderViewInitializationJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.renderableEntityFilterJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.computableEntityFilterJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.filterProximityJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.lightGathererJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.frustumCullingJob())); - QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(testAspect.renderer()->updateGLResourcesBarrierJob())); for (const auto materialGatherer : renderViewBuilder.materialGathererJobs()) { QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(materialGatherer)); } // Step 5 for (const auto renderViewBuilderJob : renderViewBuilder.renderViewBuilderJobs()) { - QCOMPARE(renderViewBuilderJob->dependencies().size(), 4); - QVERIFY(renderViewBuilderJob->dependencies().contains(renderViewBuilder.syncRenderCommandBuildingJob())); - QVERIFY(renderViewBuilderJob->dependencies().contains(testAspect.renderer()->updateSkinningPaletteJob())); - QVERIFY(renderViewBuilderJob->dependencies().contains(testAspect.renderer()->updateWorldBoundingVolumeJob())); - QVERIFY(renderViewBuilderJob->dependencies().contains(testAspect.renderer()->updateShaderDataTransformJob())); + QCOMPARE(renderViewBuilderJob->dependencies().size(), 1); + QCOMPARE(renderViewBuilderJob->dependencies().first().data(), renderViewBuilder.syncRenderCommandBuildingJob().data()); } // Step 6 @@ -383,7 +378,7 @@ private Q_SLOTS: QVERIFY(renderViewBuilder.frustumCullingJob()->dependencies().contains(renderViewBuilder.syncFrustumCullingJob())); QVERIFY(renderViewBuilder.frustumCullingJob()->dependencies().contains(testAspect.renderer()->expandBoundingVolumeJob())); - QCOMPARE(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().size(), renderViewBuilder.materialGathererJobs().size() + 8); + QCOMPARE(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().size(), renderViewBuilder.materialGathererJobs().size() + 7); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.syncRenderViewInitializationJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.renderableEntityFilterJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.computableEntityFilterJob())); @@ -391,18 +386,14 @@ private Q_SLOTS: QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.lightGathererJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.frustumCullingJob())); QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(renderViewBuilder.filterProximityJob())); - QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(testAspect.renderer()->updateGLResourcesBarrierJob())); for (const auto materialGatherer : renderViewBuilder.materialGathererJobs()) { QVERIFY(renderViewBuilder.syncRenderCommandBuildingJob()->dependencies().contains(materialGatherer)); } // Step 5 for (const auto renderViewBuilderJob : renderViewBuilder.renderViewBuilderJobs()) { - QCOMPARE(renderViewBuilderJob->dependencies().size(), 4); - QVERIFY(renderViewBuilderJob->dependencies().contains(renderViewBuilder.syncRenderCommandBuildingJob())); - QVERIFY(renderViewBuilderJob->dependencies().contains(testAspect.renderer()->updateSkinningPaletteJob())); - QVERIFY(renderViewBuilderJob->dependencies().contains(testAspect.renderer()->updateWorldBoundingVolumeJob())); - QVERIFY(renderViewBuilderJob->dependencies().contains(testAspect.renderer()->updateShaderDataTransformJob())); + QCOMPARE(renderViewBuilderJob->dependencies().size(), 1); + QCOMPARE(renderViewBuilderJob->dependencies().first().data(), renderViewBuilder.syncRenderCommandBuildingJob().data()); } // Step 6 |