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