--- /dev/null
+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.
+