summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/renderviews
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-10-04 08:20:38 +0200
committerPaul Lemire <paul.lemire@kdab.com>2017-01-23 13:42:12 +0000
commit980dea9bd309ef560d2f25425f3ceae3bcb9eb68 (patch)
treedbf1406a519f3a60194896693900be346c3334e1 /tests/auto/render/renderviews
parent9635706c78fc367f5e1d75cda9c9e29faed9b5a3 (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.pro2
-rw-r--r--tests/auto/render/renderviews/tst_renderviews.cpp80
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"