blob: 143649b0879fff6681bf339e87d935b65d769be0 [file] [log] [blame]
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;