Add CTS_ARB_shader_draw_parameters specification proposal
authorAdam Czupryna <adam.czupryna@mobica.com>
Fri, 24 Mar 2017 13:41:39 +0000 (14:41 +0100)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 9 Jun 2017 08:44:00 +0000 (04:44 -0400)
This is CTS_ARB_shader_draw_parameters specification proposal.

Components: OpenGL

VK-GL-CTS issue: 327

Change-Id: I61ec8866508bbc0c54d67d9b49f5421d27779769

external/openglcts/docs/specs/CTS_ARB_shader_draw_parameters.txt [new file with mode: 0644]

diff --git a/external/openglcts/docs/specs/CTS_ARB_shader_draw_parameters.txt b/external/openglcts/docs/specs/CTS_ARB_shader_draw_parameters.txt
new file mode 100644 (file)
index 0000000..c1e5e03
--- /dev/null
@@ -0,0 +1,95 @@
+Conformance Test
+
+    GL_ARB_shader_draw_parameters
+
+Contributors
+
+    Adam Czupryna, Mobica
+
+Contacts
+
+    Adam Czupryna, Mobica (adam.czupryna 'at' mobica.com)
+
+Status
+
+    In review
+
+Version
+
+    March 22, 2017 (version 1)
+
+Dependencies
+
+    OpenGL 3.1 is required.
+
+    ARB_shader_draw_parameters extension is required.
+
+    This specification is written against:
+    - OpenGL 4.3 Core Profile Specification,
+    - version 4.30 Shading Language Specification,
+    - ARB_shader_draw_parameters extension Specification.
+
+    The ARB_multi_draw_indirect and ARB_indirect_parameters affects
+    definition of this test.
+
+Overview
+
+    This test verifies if new GLSL built-in variables added by this
+    extension contain correct data.
+
+    It is expected that:
+    gl_BaseVertexARB - contain value passed in baseVertex parameter,
+    gl_BaseInstanceARB - contain value passed in baseInstance parameter.
+    gl_DrawIDARB - contain the index of the draw currently being
+      processed by a Multi* variant of drawing command.
+
+Tests
+
+    Shader Extension Test
+
+      * Create shader that require ARB_shader_draw_parameters extension
+        and check if ARB_shader_draw_parameters is defined and equal 1.
+        Check if shader compiles with no error.
+
+    Draw Paramaters Test
+
+      * Create vertex shader that adds offset to currently processed
+        vertex using gl_baseVertexARB and gl_baseInstanceARB for x and y
+        dimensions respectively. Additionally color variable which components
+        are function of gl_DrawIDARB value should be passed to the fragment
+        shader.
+
+        Color components function could be:
+        color.r = (gl_DrawIDARB % 3 == 0 ? 1.0 : 0.0);
+        color.g = (gl_DrawIDARB % 3 == 1 ? 1.0 : 0.0);
+        color.b = (gl_DrawIDARB % 3 == 2 ? 1.0 : 0.0);
+
+      * Create fragment shader that puts out color passed by vertex shader.
+
+      * Set clear color to black, enable blending and perform different
+        drawing commands to draw triangle strips. Use different parameters
+        values for each command. Create separated test cases for each drawing
+        command.
+
+        List of drawing commands:
+
+          - drawArrays/drawElements
+          - drawArraysIndirect/drawElementsIndirect
+          - drawArraysInstanced/drawElementsInstanced
+          - multiDrawArrays/multiDrawElements
+          - multiDrawArraysIndirect/multiDrawElementsIndirect
+          - multiDrawArraysIndirectCountARB/multiDrawElementsIndirectCountARB
+
+        Verify if drawing result is as expected by reading pixels from the
+        framebuffer. Make sure that each triangle is drawn with correct offset
+        and with proper color value.
+
+Revision History
+
+    Revision 1, 22 March, 2017 (Adam Czupryna)
+     - Initial version.
+
+    Revision 2, 3 April, 2017 (Adam Czupryna)
+     - Changed Draw Parameters Test definition,
+     - Updated list of drawing commands.
+