• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Conformance Test
2
3    CTS_ARB_indirect_parameters
4
5Contributors
6
7    Adam Czupryna, Mobica
8
9Contacts
10
11    Adam Czupryna, Mobica (adam.czupryna 'at' mobica.com)
12
13Status
14
15    In review
16
17Version
18
19    March 1, 2017 (version 1)
20
21Dependencies
22
23    OpenGL 4.2 is required.
24
25    ARB_indirect_parameters extension is required.
26
27    This specification is written against:
28      - ARB_indirect_parameters extension specification,
29      - OpenGL 4.3 (Core Profile) specification.
30
31Overview
32
33    This test verifies if operations on new buffer object
34    PARAMETER_BUFFER_ARB which is a target allowing buffers to store
35    parameters for certain drawing commands works as expected.
36
37    This test also verifies if new vertex array drawing functions
38    MultiDrawArraysIndirectCountARB, MultiDrawElementsIndirectCountARB
39    that uses PARAMETER_BUFFER_ARB binding point works properly.
40
41New Tests
42
43    Parameter Buffer Operations Test
44
45      Create PARAMETER_BUFFER_ARB object and perform actions on it:
46        BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer,
47        GetBufferSubData, GetBufferPointerv, MapBufferRange,
48        FlushMappedBufferRange, GetBufferParameteriv and
49        CopyBufferSubData.
50
51      Verify if results of those actions are as expected.
52
53      Verify if GetIntegerv, GetBooleanv, GetFloatv and GetDoublev
54        returns correct value for PARAMETER_BUFFER_BINDING_ARB <pname>.
55
56    Vertex Array Indirect Drawing Test
57
58      Initialize necessary data:
59      - Prepare vertex and fragment shader that are able to render
60        white primitive with alpha component value of 0.5.
61      - Create ARRAY_BUFFER and ELEMENT_ARRAY_BUFFER objects and fill it
62        with data needed to draw two polygons - one next to each other.
63        Polygons should cover whole framebuffer.
64      - Create DRAW_INDIRECT_BUFFER object to store draw arrays command
65        structure data and fill it with data needed to draw 4 triangles.
66      - Create DRAW_INDIRECT_BUFFER object to store draw elements command
67        structure data and also fill it with data needed to draw 4
68        triangles.
69      - Create PARAMETER_BUFFER_ARB to store draw count data and fill it
70        with data needed to draw arrays two times. First time with 2
71        draws and second with 4 draws.
72
73      Make sure that depth test and stencil test are disabled.
74
75      Clear color buffer with (0, 0, 0) color value and use
76        MultiDrawArraysIndirectCountARB function to render the scene.
77        Verify result by reading pixels from framebuffer.
78
79      Repeat last step using MultiDrawElementsIndirectCountARB function and
80        verify result in the same way.
81
82      In both cases rendering result should be half framebuffer filled with
83        (0.75, 0.75, 0.75) values and half with (0.5, 0.5, 0.5) values.
84
85
86Revision History
87
88    Revision 1, 1 March, 2017 (Adam Czupryna)
89     - Intial version;
90