• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*-------------------------------------------------------------------------
2  * OpenGL Conformance Test Suite
3  * -----------------------------
4  *
5  * Copyright (c) 2015-2016 The Khronos Group Inc.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */ /*!
20  * \file
21  * \brief
22  */ /*-------------------------------------------------------------------*/
23 
24 /**
25  */ /*!
26  * \file  gl4cDirectStateAccessTest.cpp
27  * \brief Conformance tests for the Direct State Access feature functionality.
28  */ /*-----------------------------------------------------------------------------*/
29 
30 /* Includes. */
31 #include "gl4cDirectStateAccessTests.hpp"
32 
33 #include "deSharedPtr.hpp"
34 
35 #include "gluContextInfo.hpp"
36 #include "gluDefs.hpp"
37 #include "gluPixelTransfer.hpp"
38 
39 #include "tcuFuzzyImageCompare.hpp"
40 #include "tcuImageCompare.hpp"
41 #include "tcuRenderTarget.hpp"
42 #include "tcuSurface.hpp"
43 #include "tcuTestLog.hpp"
44 
45 #include "glw.h"
46 #include "glwFunctions.hpp"
47 
48 namespace gl4cts
49 {
50 namespace DirectStateAccess
51 {
52 
53 /** @brief Direct State Access Tests Group constructor.
54  *
55  *  @param [in] context     OpenGL context.
56  */
Tests(deqp::Context & context)57 Tests::Tests(deqp::Context& context) : TestCaseGroup(context, "direct_state_access", "Direct State Access Tests Suite")
58 {
59 }
60 
61 /** @brief Direct State Access Tests initializer. */
init()62 void Tests::init()
63 {
64 	/* Direct State Access of Transform Feedback Objects */
65 	addChild(new TransformFeedback::CreationTest(m_context));
66 	addChild(new TransformFeedback::DefaultsTest(m_context));
67 	addChild(new TransformFeedback::BuffersTest(m_context));
68 	addChild(new TransformFeedback::ErrorsTest(m_context));
69 	addChild(new TransformFeedback::FunctionalTest(m_context));
70 
71 	/* Direct State Access of Sampler Objects */
72 	addChild(new Samplers::CreationTest(m_context));
73 	addChild(new Samplers::DefaultsTest(m_context));
74 	addChild(new Samplers::ErrorsTest(m_context));
75 	addChild(new Samplers::FunctionalTest(m_context));
76 
77 	/* Direct State Access of Program Pipeline Objects */
78 	addChild(new ProgramPipelines::CreationTest(m_context));
79 	addChild(new ProgramPipelines::DefaultsTest(m_context));
80 	addChild(new ProgramPipelines::ErrorsTest(m_context));
81 	addChild(new ProgramPipelines::FunctionalTest(m_context));
82 
83 	/* Direct State Access of Query Objects */
84 	addChild(new Queries::CreationTest(m_context));
85 	addChild(new Queries::DefaultsTest(m_context));
86 	addChild(new Queries::ErrorsTest(m_context));
87 	addChild(new Queries::FunctionalTest(m_context));
88 	addChild(new Queries::ReuseTest(m_context));
89 
90 	/* Direct State Access of Buffer Objects */
91 	addChild(new Buffers::CreationTest(m_context));
92 	addChild(new Buffers::DataTest(m_context));
93 	addChild(new Buffers::ClearTest(m_context));
94 	addChild(new Buffers::MapReadOnlyTest(m_context));
95 	addChild(new Buffers::MapReadWriteTest(m_context));
96 	addChild(new Buffers::MapWriteOnlyTest(m_context));
97 	addChild(new Buffers::MapRangeReadBitTest(m_context));
98 	addChild(new Buffers::MapRangeWriteBitTest(m_context));
99 	addChild(new Buffers::SubDataQueryTest(m_context));
100 	addChild(new Buffers::DefaultsTest(m_context));
101 	addChild(new Buffers::ErrorsTest(m_context));
102 	addChild(new Buffers::FunctionalTest(m_context));
103 
104 	/* Direct State Access of Framebuffer Objects */
105 	addChild(new Framebuffers::CreationTest(m_context));
106 	addChild(new Framebuffers::RenderbufferAttachmentTest(m_context));
107 	addChild(new Framebuffers::TextureAttachmentTest(m_context));
108 	addChild(new Framebuffers::TextureLayerAttachmentTest(m_context));
109 	addChild(new Framebuffers::DrawReadBufferTest(m_context));
110 	addChild(new Framebuffers::DrawBuffersTest(m_context));
111 	addChild(new Framebuffers::InvalidateDataTest(m_context));
112 	addChild(new Framebuffers::InvalidateSubDataTest(m_context));
113 	addChild(new Framebuffers::ClearTest(m_context));
114 	addChild(new Framebuffers::BlitTest(m_context));
115 	addChild(new Framebuffers::CheckStatusTest(m_context));
116 	addChild(new Framebuffers::GetParametersTest(m_context));
117 	addChild(new Framebuffers::GetAttachmentParametersTest(m_context));
118 	addChild(new Framebuffers::CreationErrorsTest(m_context));
119 	addChild(new Framebuffers::RenderbufferAttachmentErrorsTest(m_context));
120 	addChild(new Framebuffers::TextureAttachmentErrorsTest(m_context));
121 	addChild(new Framebuffers::DrawReadBuffersErrorsTest(m_context));
122 	addChild(new Framebuffers::InvalidateDataAndSubDataErrorsTest(m_context));
123 	addChild(new Framebuffers::ClearNamedFramebufferErrorsTest(m_context));
124 	addChild(new Framebuffers::CheckStatusErrorsTest(m_context));
125 	addChild(new Framebuffers::GetParameterErrorsTest(m_context));
126 	addChild(new Framebuffers::GetAttachmentParameterErrorsTest(m_context));
127 	addChild(new Framebuffers::FunctionalTest(m_context));
128 
129 	/* Direct State Access of Renderbuffer Objects */
130 	addChild(new Renderbuffers::CreationTest(m_context));
131 	addChild(new Renderbuffers::StorageTest(m_context));
132 	addChild(new Renderbuffers::StorageMultisampleTest(m_context));
133 	addChild(new Renderbuffers::GetParametersTest(m_context));
134 	addChild(new Renderbuffers::CreationErrorsTest(m_context));
135 	addChild(new Renderbuffers::StorageErrorsTest(m_context));
136 	addChild(new Renderbuffers::StorageMultisampleErrorsTest(m_context));
137 	addChild(new Renderbuffers::GetParameterErrorsTest(m_context));
138 
139 	/* Direct State Access of Vertex Array Objects */
140 	addChild(new VertexArrays::CreationTest(m_context));
141 	addChild(new VertexArrays::EnableDisableAttributesTest(m_context));
142 	addChild(new VertexArrays::ElementBufferTest(m_context));
143 	addChild(new VertexArrays::VertexBuffersTest(m_context));
144 	addChild(new VertexArrays::AttributeFormatTest(m_context));
145 	addChild(new VertexArrays::AttributeBindingTest(m_context));
146 	addChild(new VertexArrays::AttributeBindingDivisorTest(m_context));
147 	addChild(new VertexArrays::GetVertexArrayTest(m_context));
148 	addChild(new VertexArrays::GetVertexArrayIndexedTest(m_context));
149 	addChild(new VertexArrays::DefaultsTest(m_context));
150 	addChild(new VertexArrays::CreationErrorTest(m_context));
151 	addChild(new VertexArrays::EnableDisableAttributeErrorsTest(m_context));
152 	addChild(new VertexArrays::ElementBufferErrorsTest(m_context));
153 	addChild(new VertexArrays::VertexBuffersErrorsTest(m_context));
154 	addChild(new VertexArrays::AttributeFormatErrorsTest(m_context));
155 	addChild(new VertexArrays::AttributeBindingErrorsTest(m_context));
156 	addChild(new VertexArrays::AttributeBindingDivisorErrorsTest(m_context));
157 	addChild(new VertexArrays::GetVertexArrayErrorsTest(m_context));
158 	addChild(new VertexArrays::GetVertexArrayIndexedErrorsTest(m_context));
159 
160 	/* Direct State Access of Tetxure Objects */
161 	addChild(new Textures::CreationTest(m_context));
162 
163 	addChild(new Textures::BufferTest<glw::GLbyte, 1, false>(m_context, "textures_buffer_r8i"));
164 	addChild(new Textures::BufferTest<glw::GLbyte, 2, false>(m_context, "textures_buffer_rg8i"));
165 	addChild(new Textures::BufferTest<glw::GLbyte, 4, false>(m_context, "textures_buffer_rgba8i"));
166 
167 	addChild(new Textures::BufferTest<glw::GLubyte, 1, false>(m_context, "textures_buffer_r8ui"));
168 	addChild(new Textures::BufferTest<glw::GLubyte, 2, false>(m_context, "textures_buffer_rg8ui"));
169 	addChild(new Textures::BufferTest<glw::GLubyte, 4, false>(m_context, "textures_buffer_rgba8ui"));
170 	addChild(new Textures::BufferTest<glw::GLubyte, 1, true>(m_context, "textures_buffer_r8ui_unorm"));
171 	addChild(new Textures::BufferTest<glw::GLubyte, 2, true>(m_context, "textures_buffer_rg8ui_unorm"));
172 	addChild(new Textures::BufferTest<glw::GLubyte, 4, true>(m_context, "textures_buffer_rgba8ui_unorm"));
173 
174 	addChild(new Textures::BufferTest<glw::GLshort, 1, false>(m_context, "textures_buffer_r16i"));
175 	addChild(new Textures::BufferTest<glw::GLshort, 2, false>(m_context, "textures_buffer_rg16i"));
176 	addChild(new Textures::BufferTest<glw::GLshort, 4, false>(m_context, "textures_buffer_rgba16i"));
177 
178 	addChild(new Textures::BufferTest<glw::GLushort, 1, false>(m_context, "textures_buffer_r16ui"));
179 	addChild(new Textures::BufferTest<glw::GLushort, 2, false>(m_context, "textures_buffer_rg16ui"));
180 	addChild(new Textures::BufferTest<glw::GLushort, 4, false>(m_context, "textures_buffer_rgba16ui"));
181 	addChild(new Textures::BufferTest<glw::GLushort, 1, true>(m_context, "textures_buffer_r16ui_unorm"));
182 	addChild(new Textures::BufferTest<glw::GLushort, 2, true>(m_context, "textures_buffer_rg16ui_unorm"));
183 	addChild(new Textures::BufferTest<glw::GLushort, 4, true>(m_context, "textures_buffer_rgba16ui_unorm"));
184 
185 	addChild(new Textures::BufferTest<glw::GLint, 1, false>(m_context, "textures_buffer_r32i"));
186 	addChild(new Textures::BufferTest<glw::GLint, 2, false>(m_context, "textures_buffer_rg32i"));
187 	addChild(new Textures::BufferTest<glw::GLint, 3, false>(m_context, "textures_buffer_rgb32i"));
188 	addChild(new Textures::BufferTest<glw::GLint, 4, false>(m_context, "textures_buffer_rgba32i"));
189 
190 	addChild(new Textures::BufferTest<glw::GLuint, 1, false>(m_context, "textures_buffer_r32ui"));
191 	addChild(new Textures::BufferTest<glw::GLuint, 2, false>(m_context, "textures_buffer_rg32ui"));
192 	addChild(new Textures::BufferTest<glw::GLuint, 3, false>(m_context, "textures_buffer_rgb32ui"));
193 	addChild(new Textures::BufferTest<glw::GLuint, 4, false>(m_context, "textures_buffer_rgba32ui"));
194 
195 	addChild(new Textures::BufferTest<glw::GLfloat, 1, true>(m_context, "textures_buffer_r32f"));
196 	addChild(new Textures::BufferTest<glw::GLfloat, 2, true>(m_context, "textures_buffer_rg32f"));
197 	addChild(new Textures::BufferTest<glw::GLfloat, 3, true>(m_context, "textures_buffer_rgb32f"));
198 	addChild(new Textures::BufferTest<glw::GLfloat, 4, true>(m_context, "textures_buffer_rgba32f"));
199 
200 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 1, false>(m_context, "textures_storage_1d_r8i"));
201 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 1, false>(m_context, "textures_storage_1d_rg8i"));
202 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 1, false>(m_context, "textures_storage_1d_rgba8i"));
203 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 2, false>(m_context, "textures_storage_2d_r8i"));
204 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 2, false>(m_context, "textures_storage_2d_rg8i"));
205 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 2, false>(m_context, "textures_storage_2d_rgba8i"));
206 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 3, false>(m_context, "textures_storage_3d_r8i"));
207 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 3, false>(m_context, "textures_storage_3d_rg8i"));
208 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 3, false>(m_context, "textures_storage_3d_rgba8i"));
209 
210 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 1, false>(m_context, "textures_storage_1d_r8ui"));
211 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 1, false>(m_context, "textures_storage_1d_rg8ui"));
212 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 1, false>(m_context, "textures_storage_1d_rgba8ui"));
213 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 2, false>(m_context, "textures_storage_2d_r8ui"));
214 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 2, false>(m_context, "textures_storage_2d_rg8ui"));
215 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 2, false>(m_context, "textures_storage_2d_rgba8ui"));
216 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 3, false>(m_context, "textures_storage_3d_r8ui"));
217 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 3, false>(m_context, "textures_storage_3d_rg8ui"));
218 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 3, false>(m_context, "textures_storage_3d_rgba8ui"));
219 
220 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 1, false>(m_context, "textures_storage_1d_r8ui_unorm"));
221 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 1, false>(m_context, "textures_storage_1d_rg8ui_unorm"));
222 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 1, false>(m_context, "textures_storage_1d_rgba8ui_unorm"));
223 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 2, false>(m_context, "textures_storage_2d_r8ui_unorm"));
224 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 2, false>(m_context, "textures_storage_2d_rg8ui_unorm"));
225 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 2, false>(m_context, "textures_storage_2d_rgba8ui_unorm"));
226 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 3, false>(m_context, "textures_storage_3d_r8ui_unorm"));
227 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 3, false>(m_context, "textures_storage_3d_rg8ui_unorm"));
228 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 3, false>(m_context, "textures_storage_3d_rgba8ui_unorm"));
229 
230 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 1, false>(m_context, "textures_storage_1d_r16i"));
231 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 1, false>(m_context, "textures_storage_1d_rg16i"));
232 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 1, false>(m_context, "textures_storage_1d_rgba16i"));
233 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 2, false>(m_context, "textures_storage_2d_r16i"));
234 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 2, false>(m_context, "textures_storage_2d_rg16i"));
235 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 2, false>(m_context, "textures_storage_2d_rgba16i"));
236 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 3, false>(m_context, "textures_storage_3d_r16i"));
237 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 3, false>(m_context, "textures_storage_3d_rg16i"));
238 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 3, false>(m_context, "textures_storage_3d_rgba16i"));
239 
240 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 1, false>(m_context, "textures_storage_1d_r16ui"));
241 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 1, false>(m_context, "textures_storage_1d_rg16ui"));
242 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 1, false>(m_context, "textures_storage_1d_rgba16ui"));
243 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 2, false>(m_context, "textures_storage_2d_r16ui"));
244 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 2, false>(m_context, "textures_storage_2d_rg16ui"));
245 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 2, false>(m_context, "textures_storage_2d_rgba16ui"));
246 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 3, false>(m_context, "textures_storage_3d_r16ui"));
247 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 3, false>(m_context, "textures_storage_3d_rg16ui"));
248 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 3, false>(m_context, "textures_storage_3d_rgba16ui"));
249 
250 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 1, false>(m_context, "textures_storage_1d_r16ui_unorm"));
251 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 1, false>(m_context, "textures_storage_1d_rg16ui_unorm"));
252 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 1, false>(m_context, "textures_storage_1d_rgba16ui_unorm"));
253 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 2, false>(m_context, "textures_storage_2d_r16ui_unorm"));
254 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 2, false>(m_context, "textures_storage_2d_rg16ui_unorm"));
255 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 2, false>(m_context, "textures_storage_2d_rgba16ui_unorm"));
256 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 3, false>(m_context, "textures_storage_3d_r16ui_unorm"));
257 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 3, false>(m_context, "textures_storage_3d_rg16ui_unorm"));
258 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 3, false>(m_context, "textures_storage_3d_rgba16ui_unorm"));
259 
260 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 1, false>(m_context, "textures_storage_1d_r32i"));
261 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 1, false>(m_context, "textures_storage_1d_rg32i"));
262 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 1, false>(m_context, "textures_storage_1d_rgb32i"));
263 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 1, false>(m_context, "textures_storage_1d_rgba32i"));
264 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 2, false>(m_context, "textures_storage_2d_r32i"));
265 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 2, false>(m_context, "textures_storage_2d_rg32i"));
266 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 2, false>(m_context, "textures_storage_2d_rgb32i"));
267 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 2, false>(m_context, "textures_storage_2d_rgba32i"));
268 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 3, false>(m_context, "textures_storage_3d_r32i"));
269 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 3, false>(m_context, "textures_storage_3d_rg32i"));
270 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 3, false>(m_context, "textures_storage_3d_rgb32i"));
271 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 3, false>(m_context, "textures_storage_3d_rgba32i"));
272 
273 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 1, false>(m_context, "textures_storage_1d_r32ui"));
274 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 1, false>(m_context, "textures_storage_1d_rg32ui"));
275 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 1, false>(m_context, "textures_storage_1d_rgb32ui"));
276 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 1, false>(m_context, "textures_storage_1d_rgba32ui"));
277 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 2, false>(m_context, "textures_storage_2d_r32ui"));
278 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 2, false>(m_context, "textures_storage_2d_rg32ui"));
279 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 2, false>(m_context, "textures_storage_2d_rgb32ui"));
280 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 2, false>(m_context, "textures_storage_2d_rgba32ui"));
281 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 3, false>(m_context, "textures_storage_3d_r32ui"));
282 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 3, false>(m_context, "textures_storage_3d_rg32ui"));
283 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 3, false>(m_context, "textures_storage_3d_rgb32ui"));
284 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 3, false>(m_context, "textures_storage_3d_rgba32ui"));
285 
286 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 1, false>(m_context, "textures_storage_1d_r32f"));
287 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 1, false>(m_context, "textures_storage_1d_rg32f"));
288 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 1, false>(m_context, "textures_storage_1d_rgb32f"));
289 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 1, false>(m_context, "textures_storage_1d_rgba32f"));
290 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 2, false>(m_context, "textures_storage_2d_r32f"));
291 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 2, false>(m_context, "textures_storage_2d_rg32f"));
292 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 2, false>(m_context, "textures_storage_2d_rgb32f"));
293 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 2, false>(m_context, "textures_storage_2d_rgba32f"));
294 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 3, false>(m_context, "textures_storage_3d_r32f"));
295 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 3, false>(m_context, "textures_storage_3d_rg32f"));
296 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 3, false>(m_context, "textures_storage_3d_rgb32f"));
297 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 3, false>(m_context, "textures_storage_3d_rgba32f"));
298 
299 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 1, true>(m_context, "textures_subimage_1d_r8i"));
300 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 1, true>(m_context, "textures_subimage_1d_rg8i"));
301 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba8i"));
302 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 2, true>(m_context, "textures_subimage_2d_r8i"));
303 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 2, true>(m_context, "textures_subimage_2d_rg8i"));
304 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba8i"));
305 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 3, true>(m_context, "textures_subimage_3d_r8i"));
306 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 3, true>(m_context, "textures_subimage_3d_rg8i"));
307 	addChild(new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba8i"));
308 
309 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 1, true>(m_context, "textures_subimage_1d_r8ui"));
310 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 1, true>(m_context, "textures_subimage_1d_rg8ui"));
311 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba8ui"));
312 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 2, true>(m_context, "textures_subimage_2d_r8ui"));
313 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 2, true>(m_context, "textures_subimage_2d_rg8ui"));
314 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba8ui"));
315 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 3, true>(m_context, "textures_subimage_3d_r8ui"));
316 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 3, true>(m_context, "textures_subimage_3d_rg8ui"));
317 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba8ui"));
318 
319 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 1, true>(m_context, "textures_subimage_1d_r8ui_unorm"));
320 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 1, true>(m_context, "textures_subimage_1d_rg8ui_unorm"));
321 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 1, true>(m_context, "textures_subimage_1d_rgba8ui_unorm"));
322 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 2, true>(m_context, "textures_subimage_2d_r8ui_unorm"));
323 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 2, true>(m_context, "textures_subimage_2d_rg8ui_unorm"));
324 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 2, true>(m_context, "textures_subimage_2d_rgba8ui_unorm"));
325 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 3, true>(m_context, "textures_subimage_3d_r8ui_unorm"));
326 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 3, true>(m_context, "textures_subimage_3d_rg8ui_unorm"));
327 	addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 3, true>(m_context, "textures_subimage_3d_rgba8ui_unorm"));
328 
329 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 1, true>(m_context, "textures_subimage_1d_r16i"));
330 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 1, true>(m_context, "textures_subimage_1d_rg16i"));
331 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba16i"));
332 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 2, true>(m_context, "textures_subimage_2d_r16i"));
333 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 2, true>(m_context, "textures_subimage_2d_rg16i"));
334 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba16i"));
335 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 3, true>(m_context, "textures_subimage_3d_r16i"));
336 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 3, true>(m_context, "textures_subimage_3d_rg16i"));
337 	addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba16i"));
338 
339 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 1, true>(m_context, "textures_subimage_1d_r16ui"));
340 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 1, true>(m_context, "textures_subimage_1d_rg16ui"));
341 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba16ui"));
342 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 2, true>(m_context, "textures_subimage_2d_r16ui"));
343 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 2, true>(m_context, "textures_subimage_2d_rg16ui"));
344 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba16ui"));
345 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 3, true>(m_context, "textures_subimage_3d_r16ui"));
346 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 3, true>(m_context, "textures_subimage_3d_rg16ui"));
347 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba16ui"));
348 
349 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 1, true>(m_context, "textures_subimage_1d_r16ui_unorm"));
350 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 1, true>(m_context, "textures_subimage_1d_rg16ui_unorm"));
351 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 1, true>(m_context, "textures_subimage_1d_rgba16ui_unorm"));
352 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 2, true>(m_context, "textures_subimage_2d_r16ui_unorm"));
353 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 2, true>(m_context, "textures_subimage_2d_rg16ui_unorm"));
354 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 2, true>(m_context, "textures_subimage_2d_rgba16ui_unorm"));
355 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 3, true>(m_context, "textures_subimage_3d_r16ui_unorm"));
356 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 3, true>(m_context, "textures_subimage_3d_rg16ui_unorm"));
357 	addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 3, true>(m_context, "textures_subimage_3d_rgba16ui_unorm"));
358 
359 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 1, true>(m_context, "textures_subimage_1d_r32i"));
360 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 1, true>(m_context, "textures_subimage_1d_rg32i"));
361 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 1, true>(m_context, "textures_subimage_1d_rgb32i"));
362 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba32i"));
363 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 2, true>(m_context, "textures_subimage_2d_r32i"));
364 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 2, true>(m_context, "textures_subimage_2d_rg32i"));
365 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 2, true>(m_context, "textures_subimage_2d_rgb32i"));
366 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba32i"));
367 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 3, true>(m_context, "textures_subimage_3d_r32i"));
368 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 3, true>(m_context, "textures_subimage_3d_rg32i"));
369 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 3, true>(m_context, "textures_subimage_3d_rgb32i"));
370 	addChild(new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba32i"));
371 
372 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 1, true>(m_context, "textures_subimage_1d_r32ui"));
373 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 1, true>(m_context, "textures_subimage_1d_rg32ui"));
374 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 1, true>(m_context, "textures_subimage_1d_rgb32ui"));
375 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba32ui"));
376 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 2, true>(m_context, "textures_subimage_2d_r32ui"));
377 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 2, true>(m_context, "textures_subimage_2d_rg32ui"));
378 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 2, true>(m_context, "textures_subimage_2d_rgb32ui"));
379 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba32ui"));
380 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 3, true>(m_context, "textures_subimage_3d_r32ui"));
381 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 3, true>(m_context, "textures_subimage_3d_rg32ui"));
382 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 3, true>(m_context, "textures_subimage_3d_rgb32ui"));
383 	addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba32ui"));
384 
385 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 1, true>(m_context, "textures_subimage_1d_r32f"));
386 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 1, true>(m_context, "textures_subimage_1d_rg32f"));
387 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 1, true>(m_context, "textures_subimage_1d_rgb32f"));
388 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 1, true>(m_context, "textures_subimage_1d_rgba32f"));
389 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 2, true>(m_context, "textures_subimage_2d_r32f"));
390 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 2, true>(m_context, "textures_subimage_2d_rg32f"));
391 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 2, true>(m_context, "textures_subimage_2d_rgb32f"));
392 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 2, true>(m_context, "textures_subimage_2d_rgba32f"));
393 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 3, true>(m_context, "textures_subimage_3d_r32f"));
394 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 3, true>(m_context, "textures_subimage_3d_rg32f"));
395 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 3, true>(m_context, "textures_subimage_3d_rgb32f"));
396 	addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 3, true>(m_context, "textures_subimage_3d_rgba32f"));
397 
398 	addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 1, false, 2>(m_context, "textures_storage_multisample_2d_r8i"));
399 	addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 2, false, 2>(m_context, "textures_storage_multisample_2d_rg8i"));
400 	addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 4, false, 2>(m_context, "textures_storage_multisample_2d_rgba8i"));
401 	addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 1, false, 3>(m_context, "textures_storage_multisample_3d_r8i"));
402 	addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 2, false, 3>(m_context, "textures_storage_multisample_3d_rg8i"));
403 	addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 4, false, 3>(m_context, "textures_storage_multisample_3d_rgba8i"));
404 
405 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, false, 2>(m_context, "textures_storage_multisample_2d_r8ui"));
406 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, false, 2>(m_context, "textures_storage_multisample_2d_rg8ui"));
407 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, false, 2>(m_context, "textures_storage_multisample_2d_rgba8ui"));
408 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, false, 3>(m_context, "textures_storage_multisample_3d_r8ui"));
409 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, false, 3>(m_context, "textures_storage_multisample_3d_rg8ui"));
410 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, false, 3>(m_context, "textures_storage_multisample_3d_rgba8ui"));
411 
412 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, true, 2>(m_context, "textures_storage_multisample_2d_r8ui_unorm"));
413 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, true, 2>(m_context, "textures_storage_multisample_2d_rg8ui_unorm"));
414 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, true, 2>(m_context, "textures_storage_multisample_2d_rgba8ui_unorm"));
415 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, true, 3>(m_context, "textures_storage_multisample_3d_r8ui_unorm"));
416 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, true, 3>(m_context, "textures_storage_multisample_3d_rg8ui_unorm"));
417 	addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, true, 3>(m_context, "textures_storage_multisample_3d_rgba8ui_unorm"));
418 
419 	addChild(new Textures::StorageMultisampleTest<glw::GLshort, 1, false, 2>(m_context, "textures_storage_multisample_2d_r16i"));
420 	addChild(new Textures::StorageMultisampleTest<glw::GLshort, 2, false, 2>(m_context, "textures_storage_multisample_2d_rg16i"));
421 	addChild(new Textures::StorageMultisampleTest<glw::GLshort, 4, false, 2>(m_context, "textures_storage_multisample_2d_rgba16i"));
422 	addChild(new Textures::StorageMultisampleTest<glw::GLshort, 1, false, 3>(m_context, "textures_storage_multisample_3d_r16i"));
423 	addChild(new Textures::StorageMultisampleTest<glw::GLshort, 2, false, 3>(m_context, "textures_storage_multisample_3d_rg16i"));
424 	addChild(new Textures::StorageMultisampleTest<glw::GLshort, 4, false, 3>(m_context, "textures_storage_multisample_3d_rgba16i"));
425 
426 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, false, 2>(m_context, "textures_storage_multisample_2d_r16u"));
427 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, false, 2>(m_context, "textures_storage_multisample_2d_rg16u"));
428 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, false, 2>(m_context, "textures_storage_multisample_2d_rgba16u"));
429 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, false, 3>(m_context, "textures_storage_multisample_3d_r16u"));
430 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, false, 3>(m_context, "textures_storage_multisample_3d_rg16u"));
431 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, false, 3>(m_context, "textures_storage_multisample_3d_rgba16u"));
432 
433 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, true, 2>(m_context, "textures_storage_multisample_2d_r16ui_unorm"));
434 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, true, 2>(m_context, "textures_storage_multisample_2d_rg16ui_unorm"));
435 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, true, 2>(m_context, "textures_storage_multisample_2d_rgba16ui_unorm"));
436 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, true, 3>(m_context, "textures_storage_multisample_3d_r16ui_unorm"));
437 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, true, 3>(m_context, "textures_storage_multisample_3d_rg16ui_unorm"));
438 	addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, true, 3>(m_context, "textures_storage_multisample_3d_rgba16ui_unorm"));
439 
440 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 1, false, 2>(m_context, "textures_storage_multisample_2d_r32i"));
441 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 2, false, 2>(m_context, "textures_storage_multisample_2d_rg32i"));
442 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 3, false, 2>(m_context, "textures_storage_multisample_2d_rgb32i"));
443 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 4, false, 2>(m_context, "textures_storage_multisample_2d_rgba32i"));
444 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 1, false, 3>(m_context, "textures_storage_multisample_3d_r32i"));
445 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 2, false, 3>(m_context, "textures_storage_multisample_3d_rg32i"));
446 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 3, false, 3>(m_context, "textures_storage_multisample_3d_rgb32i"));
447 	addChild(new Textures::StorageMultisampleTest<glw::GLint, 4, false, 3>(m_context, "textures_storage_multisample_3d_rgba32i"));
448 
449 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 1, false, 2>(m_context, "textures_storage_multisample_2d_r32ui"));
450 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 2, false, 2>(m_context, "textures_storage_multisample_2d_rg32ui"));
451 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 3, false, 2>(m_context, "textures_storage_multisample_2d_rgb32ui"));
452 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 4, false, 2>(m_context, "textures_storage_multisample_2d_rgba32ui"));
453 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 1, false, 3>(m_context, "textures_storage_multisample_3d_r32ui"));
454 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 2, false, 3>(m_context, "textures_storage_multisample_3d_rg32ui"));
455 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 3, false, 3>(m_context, "textures_storage_multisample_3d_rgb32ui"));
456 	addChild(new Textures::StorageMultisampleTest<glw::GLuint, 4, false, 3>(m_context, "textures_storage_multisample_3d_rgba32ui"));
457 
458 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 1, true, 2>(m_context, "textures_storage_multisample_2d_r32f"));
459 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 2, true, 2>(m_context, "textures_storage_multisample_2d_rg32f"));
460 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 3, true, 2>(m_context, "textures_storage_multisample_2d_rgb32f"));
461 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 4, true, 2>(m_context, "textures_storage_multisample_2d_rgba32f"));
462 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 1, true, 3>(m_context, "textures_storage_multisample_3d_r32f"));
463 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 2, true, 3>(m_context, "textures_storage_multisample_3d_rg32f"));
464 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 3, true, 3>(m_context, "textures_storage_multisample_3d_rgb32f"));
465 	addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 4, true, 3>(m_context, "textures_storage_multisample_3d_rgba32f"));
466 
467 	addChild(new Textures::CompressedSubImageTest(m_context));
468 	addChild(new Textures::CopyTest(m_context));
469 	addChild(new Textures::GetSetParameterTest(m_context));
470 	addChild(new Textures::DefaultsTest(m_context));
471 	addChild(new Textures::GenerateMipmapTest(m_context));
472 	addChild(new Textures::BindUnitTest(m_context));
473 	addChild(new Textures::GetImageTest(m_context));
474 	addChild(new Textures::GetLevelParameterTest(m_context));
475 	addChild(new Textures::CreationErrorsTest(m_context));
476 	addChild(new Textures::BufferErrorsTest(m_context));
477 	addChild(new Textures::BufferRangeErrorsTest(m_context));
478 	addChild(new Textures::StorageErrorsTest(m_context));
479 	addChild(new Textures::SubImageErrorsTest(m_context));
480 	addChild(new Textures::CopyErrorsTest(m_context));
481 	addChild(new Textures::ParameterSetupErrorsTest(m_context));
482 	addChild(new Textures::GenerateMipmapErrorsTest(m_context));
483 	addChild(new Textures::BindUnitErrorsTest(m_context));
484 	addChild(new Textures::ImageQueryErrorsTest(m_context));
485 	addChild(new Textures::LevelParameterErrorsTest(m_context));
486 	addChild(new Textures::ParameterErrorsTest(m_context));
487 }
488 } /* DirectStateAccess namespace */
489 } /* gl4cts namespace */
490