diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-10-04 08:20:38 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2017-01-23 13:42:12 +0000 |
commit | 980dea9bd309ef560d2f25425f3ceae3bcb9eb68 (patch) | |
tree | dbf1406a519f3a60194896693900be346c3334e1 /tests/auto/render/renderviews | |
parent | 9635706c78fc367f5e1d75cda9c9e29faed9b5a3 (diff) |
RenderView: store memoryBarrier flag
Change-Id: Icbf1a42e1efce8c33b02487fc3dfed7dc79ab876
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Diffstat (limited to 'tests/auto/render/renderviews')
-rw-r--r-- | tests/auto/render/renderviews/renderviews.pro | 2 | ||||
-rw-r--r-- | tests/auto/render/renderviews/tst_renderviews.cpp | 80 |
2 files changed, 77 insertions, 5 deletions
diff --git a/tests/auto/render/renderviews/renderviews.pro b/tests/auto/render/renderviews/renderviews.pro index 8a46b90df..12ddb9eb9 100644 --- a/tests/auto/render/renderviews/renderviews.pro +++ b/tests/auto/render/renderviews/renderviews.pro @@ -7,3 +7,5 @@ QT += 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_renderviews.cpp + +include(../../core/common/common.pri) diff --git a/tests/auto/render/renderviews/tst_renderviews.cpp b/tests/auto/render/renderviews/tst_renderviews.cpp index e141ad390..70109d718 100644 --- a/tests/auto/render/renderviews/tst_renderviews.cpp +++ b/tests/auto/render/renderviews/tst_renderviews.cpp @@ -27,11 +27,21 @@ ****************************************************************************/ #include <QtTest/QTest> +#include <qbackendnodetester.h> #include <private/renderview_p.h> #include <private/qframeallocator_p.h> #include <private/qframeallocator_p_p.h> +#include <private/memorybarrier_p.h> +#include <private/renderviewjobutils_p.h> +#include <testpostmanarbiter.h> -class tst_RenderViews : public QObject +QT_BEGIN_NAMESPACE + +namespace Qt3DRender { + +namespace Render { + +class tst_RenderViews : public Qt3DCore::QBackendNodeTester { Q_OBJECT private Q_SLOTS: @@ -39,8 +49,8 @@ private Q_SLOTS: void checkRenderViewSizeFitsWithAllocator() { QSKIP("Allocated Disabled"); - QVERIFY(sizeof(Qt3DRender::Render::RenderView) <= 192); - QVERIFY(sizeof(Qt3DRender::Render::RenderView::InnerData) <= 192); + QVERIFY(sizeof(RenderView) <= 192); + QVERIFY(sizeof(RenderView::InnerData) <= 192); } void testSort() @@ -53,7 +63,7 @@ private Q_SLOTS: QSKIP("Allocated Disabled"); // GIVEN Qt3DCore::QFrameAllocator allocator(192, 16, 128); - Qt3DRender::Render::RenderView *rv = allocator.allocate<Qt3DRender::Render::RenderView>(); + RenderView *rv = allocator.allocate<RenderView>(); // THEN QVERIFY(!allocator.isEmpty()); @@ -65,10 +75,70 @@ private Q_SLOTS: QVERIFY(allocator.isEmpty()); } + void checkRenderViewInitialState() + { + // GIVEN + RenderView renderView; + + // THEN + QCOMPARE(renderView.memoryBarrier(), QMemoryBarrier::None); + } + + void checkMemoryBarrierInitialization() + { + // GIVEN + RenderView renderView; + + // THEN + QCOMPARE(renderView.memoryBarrier(), QMemoryBarrier::None); + + // WHEN + const QMemoryBarrier::BarrierTypes barriers(QMemoryBarrier::BufferUpdateBarrier|QMemoryBarrier::ShaderImageAccessBarrier); + renderView.setMemoryBarrier(barriers); + + // THEN + QCOMPARE(renderView.memoryBarrier(), barriers); + } + + void checkSetRenderViewConfig() + { + { + // GIVEN + const QMemoryBarrier::BarrierTypes barriers(QMemoryBarrier::AtomicCounterBarrier|QMemoryBarrier::ShaderStorageBarrier); + Qt3DRender::QMemoryBarrier frontendBarrier; + FrameGraphManager frameGraphManager; + MemoryBarrier backendBarrier; + RenderView renderView; + // setRenderViewConfigFromFrameGraphLeafNode assumes node has a manager + backendBarrier.setFrameGraphManager(&frameGraphManager); + + // WHEN + frontendBarrier.setBarrierTypes(barriers); + simulateInitialization(&frontendBarrier, &backendBarrier); + + // THEN + QCOMPARE(renderView.memoryBarrier(), QMemoryBarrier::None); + QCOMPARE(backendBarrier.barrierTypes(), barriers); + + // WHEN + Qt3DRender::Render::setRenderViewConfigFromFrameGraphLeafNode(&renderView, &backendBarrier); + + // THEN + QCOMPARE(backendBarrier.barrierTypes(), renderView.memoryBarrier()); + } + // TO DO: Complete tests for other framegraph node types + } + private: }; +} // Render + +} // Qt3DRender + +QT_END_NAMESPACE + -QTEST_APPLESS_MAIN(tst_RenderViews) +QTEST_APPLESS_MAIN(Qt3DRender::Render::tst_RenderViews) #include "tst_renderviews.moc" |