summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2023-10-11 16:01:22 +0300
committerTarja Sundqvist <tarja.sundqvist@qt.io>2023-10-11 16:01:22 +0300
commite1b1a0d2970fd384bd52c734a72536d8452ad070 (patch)
tree494b70bc1a1e115d7ecce39e698d9621af717971 /tests/auto/render/opengl/renderviews/tst_renderviews.cpp
parentc1f8fa2578d99e07f5e581f26bd532695b9534f9 (diff)
parentb59fdcefdbce6a1870e49b0da14d30b51293dea6 (diff)
Merge remote-tracking branch 'origin/tqtc/lts-5.15.12' into tqtc/lts-5.15-opensourcev5.15.12-lts-lgpl
Diffstat (limited to 'tests/auto/render/opengl/renderviews/tst_renderviews.cpp')
-rw-r--r--tests/auto/render/opengl/renderviews/tst_renderviews.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/auto/render/opengl/renderviews/tst_renderviews.cpp b/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
index aec13071a..196ee85d4 100644
--- a/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
+++ b/tests/auto/render/opengl/renderviews/tst_renderviews.cpp
@@ -307,6 +307,68 @@ private Q_SLOTS:
<< (QVector<ShaderParameterPack>() << pack1 << minifiedPack1 << minifiedPack1 << pack1 << minifiedPack1 << minifiedPack1);
}
+ void checkShaderParameterPackStoresSingleUBOPerBlockIndex()
+ {
+ // GIVEN
+ ShaderParameterPack pack;
+ auto nodeId1 = Qt3DCore::QNodeId::createId();
+ auto nodeId2 = Qt3DCore::QNodeId::createId();
+
+ BlockToUBO ubo1 { 1, nodeId1, false, {}};
+ BlockToUBO ubo2 { 1, nodeId2, false, {}};
+
+ // WHEN
+ pack.setUniformBuffer(ubo1);
+ pack.setUniformBuffer(ubo2);
+
+ // THEN
+ QCOMPARE(pack.uniformBuffers().size(), 1);
+ QCOMPARE(pack.uniformBuffers().front().m_blockIndex, 1);
+ QCOMPARE(pack.uniformBuffers().front().m_bufferID, nodeId2);
+
+ // WHEN
+ BlockToUBO ubo3 { 2, nodeId2, false, {}};
+ pack.setUniformBuffer(ubo3);
+
+ // THEN
+ QCOMPARE(pack.uniformBuffers().size(), 2);
+ QCOMPARE(pack.uniformBuffers().front().m_blockIndex, 1);
+ QCOMPARE(pack.uniformBuffers().front().m_bufferID, nodeId2);
+ QCOMPARE(pack.uniformBuffers().back().m_blockIndex, 2);
+ QCOMPARE(pack.uniformBuffers().back().m_bufferID, nodeId2);
+ }
+
+ void checkShaderParameterPackStoresSingleSSBOPerBlockIndex()
+ {
+ // GIVEN
+ ShaderParameterPack pack;
+ auto nodeId1 = Qt3DCore::QNodeId::createId();
+ auto nodeId2 = Qt3DCore::QNodeId::createId();
+
+ BlockToSSBO ssbo1 { 1, 0, nodeId1};
+ BlockToSSBO ssbo2 { 1, 0, nodeId2};
+
+ // WHEN
+ pack.setShaderStorageBuffer(ssbo1);
+ pack.setShaderStorageBuffer(ssbo2);
+
+ // THEN
+ QCOMPARE(pack.shaderStorageBuffers().size(), 1);
+ QCOMPARE(pack.shaderStorageBuffers().front().m_blockIndex, 1);
+ QCOMPARE(pack.shaderStorageBuffers().front().m_bufferID, nodeId2);
+
+ // WHEN
+ BlockToSSBO ssbo3 { 2, 1, nodeId2};
+ pack.setShaderStorageBuffer(ssbo3);
+
+ // THEN
+ QCOMPARE(pack.shaderStorageBuffers().size(), 2);
+ QCOMPARE(pack.shaderStorageBuffers().front().m_blockIndex, 1);
+ QCOMPARE(pack.shaderStorageBuffers().front().m_bufferID, nodeId2);
+ QCOMPARE(pack.shaderStorageBuffers().back().m_blockIndex, 2);
+ QCOMPARE(pack.shaderStorageBuffers().back().m_bufferID, nodeId2);
+ }
+
void checkRenderViewUniformMinification()
{
QFETCH(QVector<QShaderProgram*>, shaders);