| Conformance Test |
| |
| CTS_ARB_indirect_parameters |
| |
| Contributors |
| |
| Adam Czupryna, Mobica |
| |
| Contacts |
| |
| Adam Czupryna, Mobica (adam.czupryna 'at' mobica.com) |
| |
| Status |
| |
| In review |
| |
| Version |
| |
| March 1, 2017 (version 1) |
| |
| Dependencies |
| |
| OpenGL 4.2 is required. |
| |
| ARB_indirect_parameters extension is required. |
| |
| This specification is written against: |
| - ARB_indirect_parameters extension specification, |
| - OpenGL 4.3 (Core Profile) specification. |
| |
| Overview |
| |
| This test verifies if operations on new buffer object |
| PARAMETER_BUFFER_ARB which is a target allowing buffers to store |
| parameters for certain drawing commands works as expected. |
| |
| This test also verifies if new vertex array drawing functions |
| MultiDrawArraysIndirectCountARB, MultiDrawElementsIndirectCountARB |
| that uses PARAMETER_BUFFER_ARB binding point works properly. |
| |
| New Tests |
| |
| Parameter Buffer Operations Test |
| |
| Create PARAMETER_BUFFER_ARB object and perform actions on it: |
| BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, |
| GetBufferSubData, GetBufferPointerv, MapBufferRange, |
| FlushMappedBufferRange, GetBufferParameteriv and |
| CopyBufferSubData. |
| |
| Verify if results of those actions are as expected. |
| |
| Verify if GetIntegerv, GetBooleanv, GetFloatv and GetDoublev |
| returns correct value for PARAMETER_BUFFER_BINDING_ARB <pname>. |
| |
| Vertex Array Indirect Drawing Test |
| |
| Initialize necessary data: |
| - Prepare vertex and fragment shader that are able to render |
| white primitive with alpha component value of 0.5. |
| - Create ARRAY_BUFFER and ELEMENT_ARRAY_BUFFER objects and fill it |
| with data needed to draw two polygons - one next to each other. |
| Polygons should cover whole framebuffer. |
| - Create DRAW_INDIRECT_BUFFER object to store draw arrays command |
| structure data and fill it with data needed to draw 4 triangles. |
| - Create DRAW_INDIRECT_BUFFER object to store draw elements command |
| structure data and also fill it with data needed to draw 4 |
| triangles. |
| - Create PARAMETER_BUFFER_ARB to store draw count data and fill it |
| with data needed to draw arrays two times. First time with 2 |
| draws and second with 4 draws. |
| |
| Make sure that depth test and stencil test are disabled. |
| |
| Clear color buffer with (0, 0, 0) color value and use |
| MultiDrawArraysIndirectCountARB function to render the scene. |
| Verify result by reading pixels from framebuffer. |
| |
| Repeat last step using MultiDrawElementsIndirectCountARB function and |
| verify result in the same way. |
| |
| In both cases rendering result should be half framebuffer filled with |
| (0.75, 0.75, 0.75) values and half with (0.5, 0.5, 0.5) values. |
| |
| |
| Revision History |
| |
| Revision 1, 1 March, 2017 (Adam Czupryna) |
| - Intial version; |