diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-09-21 07:53:11 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-09-21 07:54:37 +0000 |
commit | 9486a8a4b60a678280db2c625064ca78b3aaf489 (patch) | |
tree | 45ac30029bbe12a3d98d373bdb8cf48c174ab422 /tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp | |
parent | 9884d3bffcdee9c6aabc51b036554947873b11c4 (diff) |
Complete ES 3.1 and 3.2 helpers
Which didn't handle indirect drawing, compute and tessellation
Since ES 3.1/3.2 don't provide API for glShaderStorageBlockBinding,
code was adjusted to use the default binding points and not require
that API.
Change-Id: Ie4dcd05f0a1d72e4a25f49b5fae138dc605ba5e3
Task-number: QTBUG-70660
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp')
-rw-r--r-- | tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp b/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp index 5a96cf116..39bd15021 100644 --- a/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp +++ b/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp @@ -185,7 +185,7 @@ const QByteArray computeShader = QByteArrayLiteral( " vec4 direction;\n" \ " vec4 color;\n" \ "};\n" \ - "layout (std140, binding = 0) coherent buffer Particles\n" \ + "layout (std140, binding = 6) coherent buffer Particles\n" \ "{\n" \ " ParticleData particles[];\n" \ "} data;\n" \ @@ -508,11 +508,29 @@ private Q_SLOTS: GLint index = m_func->glGetProgramResourceIndex(shaderProgram.programId(), GL_SHADER_STORAGE_BLOCK, "Particles"); + // THEN + GLint binding = -1; + GLenum prop = GL_BUFFER_BINDING; + m_func->glGetProgramResourceiv(shaderProgram.programId(), + GL_SHADER_STORAGE_BLOCK, + index, + 1, &prop, + 4, NULL, &binding); + QCOMPARE(binding, 6); + + // WHEN m_glHelper.bindShaderStorageBlock(shaderProgram.programId(), index, 1); // THEN const GLint error = m_func->glGetError(); QVERIFY(error == 0); + + m_func->glGetProgramResourceiv(shaderProgram.programId(), + GL_SHADER_STORAGE_BLOCK, + index, + 1, &prop, + 4, NULL, &binding); + QCOMPARE(binding, 1); } void bindUniformBlock() @@ -1286,6 +1304,7 @@ private Q_SLOTS: QCOMPARE(block.m_name, QStringLiteral("Particles")); QCOMPARE(block.m_activeVariablesCount, 3); QCOMPARE(block.m_index, 0); + QCOMPARE(block.m_binding, 6); QCOMPARE(block.m_size, (4 + 4 + 4) * 4); } |