xref: /aosp_15_r20/external/deqp/external/openglcts/modules/gl/gl4cDirectStateAccessTests.cpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
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(
201         new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 1, false>(m_context, "textures_storage_1d_r8i"));
202     addChild(
203         new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 1, false>(m_context, "textures_storage_1d_rg8i"));
204     addChild(
205         new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 1, false>(m_context, "textures_storage_1d_rgba8i"));
206     addChild(
207         new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 2, false>(m_context, "textures_storage_2d_r8i"));
208     addChild(
209         new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 2, false>(m_context, "textures_storage_2d_rg8i"));
210     addChild(
211         new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 2, false>(m_context, "textures_storage_2d_rgba8i"));
212     addChild(
213         new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 3, false>(m_context, "textures_storage_3d_r8i"));
214     addChild(
215         new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 3, false>(m_context, "textures_storage_3d_rg8i"));
216     addChild(
217         new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 3, false>(m_context, "textures_storage_3d_rgba8i"));
218 
219     addChild(
220         new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 1, false>(m_context, "textures_storage_1d_r8ui"));
221     addChild(
222         new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 1, false>(m_context, "textures_storage_1d_rg8ui"));
223     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 1, false>(m_context,
224                                                                                     "textures_storage_1d_rgba8ui"));
225     addChild(
226         new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 2, false>(m_context, "textures_storage_2d_r8ui"));
227     addChild(
228         new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 2, false>(m_context, "textures_storage_2d_rg8ui"));
229     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 2, false>(m_context,
230                                                                                     "textures_storage_2d_rgba8ui"));
231     addChild(
232         new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 3, false>(m_context, "textures_storage_3d_r8ui"));
233     addChild(
234         new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 3, false>(m_context, "textures_storage_3d_rg8ui"));
235     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 3, false>(m_context,
236                                                                                     "textures_storage_3d_rgba8ui"));
237 
238     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 1, false>(m_context,
239                                                                                    "textures_storage_1d_r8ui_unorm"));
240     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 1, false>(m_context,
241                                                                                    "textures_storage_1d_rg8ui_unorm"));
242     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 1, false>(
243         m_context, "textures_storage_1d_rgba8ui_unorm"));
244     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 2, false>(m_context,
245                                                                                    "textures_storage_2d_r8ui_unorm"));
246     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 2, false>(m_context,
247                                                                                    "textures_storage_2d_rg8ui_unorm"));
248     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 2, false>(
249         m_context, "textures_storage_2d_rgba8ui_unorm"));
250     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 3, false>(m_context,
251                                                                                    "textures_storage_3d_r8ui_unorm"));
252     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 3, false>(m_context,
253                                                                                    "textures_storage_3d_rg8ui_unorm"));
254     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 3, false>(
255         m_context, "textures_storage_3d_rgba8ui_unorm"));
256 
257     addChild(
258         new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 1, false>(m_context, "textures_storage_1d_r16i"));
259     addChild(
260         new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 1, false>(m_context, "textures_storage_1d_rg16i"));
261     addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 1, false>(m_context,
262                                                                                     "textures_storage_1d_rgba16i"));
263     addChild(
264         new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 2, false>(m_context, "textures_storage_2d_r16i"));
265     addChild(
266         new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 2, false>(m_context, "textures_storage_2d_rg16i"));
267     addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 2, false>(m_context,
268                                                                                     "textures_storage_2d_rgba16i"));
269     addChild(
270         new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 3, false>(m_context, "textures_storage_3d_r16i"));
271     addChild(
272         new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 3, false>(m_context, "textures_storage_3d_rg16i"));
273     addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 3, false>(m_context,
274                                                                                     "textures_storage_3d_rgba16i"));
275 
276     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 1, false>(m_context,
277                                                                                      "textures_storage_1d_r16ui"));
278     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 1, false>(m_context,
279                                                                                      "textures_storage_1d_rg16ui"));
280     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 1, false>(m_context,
281                                                                                      "textures_storage_1d_rgba16ui"));
282     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 2, false>(m_context,
283                                                                                      "textures_storage_2d_r16ui"));
284     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 2, false>(m_context,
285                                                                                      "textures_storage_2d_rg16ui"));
286     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 2, false>(m_context,
287                                                                                      "textures_storage_2d_rgba16ui"));
288     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 3, false>(m_context,
289                                                                                      "textures_storage_3d_r16ui"));
290     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 3, false>(m_context,
291                                                                                      "textures_storage_3d_rg16ui"));
292     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 3, false>(m_context,
293                                                                                      "textures_storage_3d_rgba16ui"));
294 
295     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 1, false>(m_context,
296                                                                                     "textures_storage_1d_r16ui_unorm"));
297     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 1, false>(
298         m_context, "textures_storage_1d_rg16ui_unorm"));
299     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 1, false>(
300         m_context, "textures_storage_1d_rgba16ui_unorm"));
301     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 2, false>(m_context,
302                                                                                     "textures_storage_2d_r16ui_unorm"));
303     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 2, false>(
304         m_context, "textures_storage_2d_rg16ui_unorm"));
305     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 2, false>(
306         m_context, "textures_storage_2d_rgba16ui_unorm"));
307     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 3, false>(m_context,
308                                                                                     "textures_storage_3d_r16ui_unorm"));
309     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 3, false>(
310         m_context, "textures_storage_3d_rg16ui_unorm"));
311     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 3, false>(
312         m_context, "textures_storage_3d_rgba16ui_unorm"));
313 
314     addChild(
315         new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 1, false>(m_context, "textures_storage_1d_r32i"));
316     addChild(
317         new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 1, false>(m_context, "textures_storage_1d_rg32i"));
318     addChild(
319         new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 1, false>(m_context, "textures_storage_1d_rgb32i"));
320     addChild(
321         new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 1, false>(m_context, "textures_storage_1d_rgba32i"));
322     addChild(
323         new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 2, false>(m_context, "textures_storage_2d_r32i"));
324     addChild(
325         new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 2, false>(m_context, "textures_storage_2d_rg32i"));
326     addChild(
327         new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 2, false>(m_context, "textures_storage_2d_rgb32i"));
328     addChild(
329         new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 2, false>(m_context, "textures_storage_2d_rgba32i"));
330     addChild(
331         new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 3, false>(m_context, "textures_storage_3d_r32i"));
332     addChild(
333         new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 3, false>(m_context, "textures_storage_3d_rg32i"));
334     addChild(
335         new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 3, false>(m_context, "textures_storage_3d_rgb32i"));
336     addChild(
337         new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 3, false>(m_context, "textures_storage_3d_rgba32i"));
338 
339     addChild(
340         new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 1, false>(m_context, "textures_storage_1d_r32ui"));
341     addChild(
342         new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 1, false>(m_context, "textures_storage_1d_rg32ui"));
343     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 1, false>(m_context,
344                                                                                    "textures_storage_1d_rgb32ui"));
345     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 1, false>(m_context,
346                                                                                    "textures_storage_1d_rgba32ui"));
347     addChild(
348         new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 2, false>(m_context, "textures_storage_2d_r32ui"));
349     addChild(
350         new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 2, false>(m_context, "textures_storage_2d_rg32ui"));
351     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 2, false>(m_context,
352                                                                                    "textures_storage_2d_rgb32ui"));
353     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 2, false>(m_context,
354                                                                                    "textures_storage_2d_rgba32ui"));
355     addChild(
356         new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 3, false>(m_context, "textures_storage_3d_r32ui"));
357     addChild(
358         new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 3, false>(m_context, "textures_storage_3d_rg32ui"));
359     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 3, false>(m_context,
360                                                                                    "textures_storage_3d_rgb32ui"));
361     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 3, false>(m_context,
362                                                                                    "textures_storage_3d_rgba32ui"));
363 
364     addChild(
365         new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 1, false>(m_context, "textures_storage_1d_r32f"));
366     addChild(
367         new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 1, false>(m_context, "textures_storage_1d_rg32f"));
368     addChild(
369         new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 1, false>(m_context, "textures_storage_1d_rgb32f"));
370     addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 1, false>(m_context,
371                                                                                    "textures_storage_1d_rgba32f"));
372     addChild(
373         new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 2, false>(m_context, "textures_storage_2d_r32f"));
374     addChild(
375         new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 2, false>(m_context, "textures_storage_2d_rg32f"));
376     addChild(
377         new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 2, false>(m_context, "textures_storage_2d_rgb32f"));
378     addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 2, false>(m_context,
379                                                                                    "textures_storage_2d_rgba32f"));
380     addChild(
381         new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 3, false>(m_context, "textures_storage_3d_r32f"));
382     addChild(
383         new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 3, false>(m_context, "textures_storage_3d_rg32f"));
384     addChild(
385         new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 3, false>(m_context, "textures_storage_3d_rgb32f"));
386     addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 3, false>(m_context,
387                                                                                    "textures_storage_3d_rgba32f"));
388 
389     addChild(
390         new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 1, true>(m_context, "textures_subimage_1d_r8i"));
391     addChild(
392         new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 1, true>(m_context, "textures_subimage_1d_rg8i"));
393     addChild(
394         new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba8i"));
395     addChild(
396         new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 2, true>(m_context, "textures_subimage_2d_r8i"));
397     addChild(
398         new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 2, true>(m_context, "textures_subimage_2d_rg8i"));
399     addChild(
400         new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba8i"));
401     addChild(
402         new Textures::StorageAndSubImageTest<glw::GLbyte, 1, false, 3, true>(m_context, "textures_subimage_3d_r8i"));
403     addChild(
404         new Textures::StorageAndSubImageTest<glw::GLbyte, 2, false, 3, true>(m_context, "textures_subimage_3d_rg8i"));
405     addChild(
406         new Textures::StorageAndSubImageTest<glw::GLbyte, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba8i"));
407 
408     addChild(
409         new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 1, true>(m_context, "textures_subimage_1d_r8ui"));
410     addChild(
411         new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 1, true>(m_context, "textures_subimage_1d_rg8ui"));
412     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 1, true>(m_context,
413                                                                                    "textures_subimage_1d_rgba8ui"));
414     addChild(
415         new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 2, true>(m_context, "textures_subimage_2d_r8ui"));
416     addChild(
417         new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 2, true>(m_context, "textures_subimage_2d_rg8ui"));
418     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 2, true>(m_context,
419                                                                                    "textures_subimage_2d_rgba8ui"));
420     addChild(
421         new Textures::StorageAndSubImageTest<glw::GLubyte, 1, false, 3, true>(m_context, "textures_subimage_3d_r8ui"));
422     addChild(
423         new Textures::StorageAndSubImageTest<glw::GLubyte, 2, false, 3, true>(m_context, "textures_subimage_3d_rg8ui"));
424     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, false, 3, true>(m_context,
425                                                                                    "textures_subimage_3d_rgba8ui"));
426 
427     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 1, true>(m_context,
428                                                                                   "textures_subimage_1d_r8ui_unorm"));
429     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 1, true>(m_context,
430                                                                                   "textures_subimage_1d_rg8ui_unorm"));
431     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 1, true>(
432         m_context, "textures_subimage_1d_rgba8ui_unorm"));
433     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 2, true>(m_context,
434                                                                                   "textures_subimage_2d_r8ui_unorm"));
435     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 2, true>(m_context,
436                                                                                   "textures_subimage_2d_rg8ui_unorm"));
437     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 2, true>(
438         m_context, "textures_subimage_2d_rgba8ui_unorm"));
439     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 1, true, 3, true>(m_context,
440                                                                                   "textures_subimage_3d_r8ui_unorm"));
441     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 2, true, 3, true>(m_context,
442                                                                                   "textures_subimage_3d_rg8ui_unorm"));
443     addChild(new Textures::StorageAndSubImageTest<glw::GLubyte, 4, true, 3, true>(
444         m_context, "textures_subimage_3d_rgba8ui_unorm"));
445 
446     addChild(
447         new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 1, true>(m_context, "textures_subimage_1d_r16i"));
448     addChild(
449         new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 1, true>(m_context, "textures_subimage_1d_rg16i"));
450     addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 1, true>(m_context,
451                                                                                    "textures_subimage_1d_rgba16i"));
452     addChild(
453         new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 2, true>(m_context, "textures_subimage_2d_r16i"));
454     addChild(
455         new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 2, true>(m_context, "textures_subimage_2d_rg16i"));
456     addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 2, true>(m_context,
457                                                                                    "textures_subimage_2d_rgba16i"));
458     addChild(
459         new Textures::StorageAndSubImageTest<glw::GLshort, 1, false, 3, true>(m_context, "textures_subimage_3d_r16i"));
460     addChild(
461         new Textures::StorageAndSubImageTest<glw::GLshort, 2, false, 3, true>(m_context, "textures_subimage_3d_rg16i"));
462     addChild(new Textures::StorageAndSubImageTest<glw::GLshort, 4, false, 3, true>(m_context,
463                                                                                    "textures_subimage_3d_rgba16i"));
464 
465     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 1, true>(m_context,
466                                                                                     "textures_subimage_1d_r16ui"));
467     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 1, true>(m_context,
468                                                                                     "textures_subimage_1d_rg16ui"));
469     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 1, true>(m_context,
470                                                                                     "textures_subimage_1d_rgba16ui"));
471     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 2, true>(m_context,
472                                                                                     "textures_subimage_2d_r16ui"));
473     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 2, true>(m_context,
474                                                                                     "textures_subimage_2d_rg16ui"));
475     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 2, true>(m_context,
476                                                                                     "textures_subimage_2d_rgba16ui"));
477     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, false, 3, true>(m_context,
478                                                                                     "textures_subimage_3d_r16ui"));
479     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, false, 3, true>(m_context,
480                                                                                     "textures_subimage_3d_rg16ui"));
481     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, false, 3, true>(m_context,
482                                                                                     "textures_subimage_3d_rgba16ui"));
483 
484     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 1, true>(m_context,
485                                                                                    "textures_subimage_1d_r16ui_unorm"));
486     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 1, true>(
487         m_context, "textures_subimage_1d_rg16ui_unorm"));
488     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 1, true>(
489         m_context, "textures_subimage_1d_rgba16ui_unorm"));
490     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 2, true>(m_context,
491                                                                                    "textures_subimage_2d_r16ui_unorm"));
492     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 2, true>(
493         m_context, "textures_subimage_2d_rg16ui_unorm"));
494     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 2, true>(
495         m_context, "textures_subimage_2d_rgba16ui_unorm"));
496     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 1, true, 3, true>(m_context,
497                                                                                    "textures_subimage_3d_r16ui_unorm"));
498     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 2, true, 3, true>(
499         m_context, "textures_subimage_3d_rg16ui_unorm"));
500     addChild(new Textures::StorageAndSubImageTest<glw::GLushort, 4, true, 3, true>(
501         m_context, "textures_subimage_3d_rgba16ui_unorm"));
502 
503     addChild(
504         new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 1, true>(m_context, "textures_subimage_1d_r32i"));
505     addChild(
506         new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 1, true>(m_context, "textures_subimage_1d_rg32i"));
507     addChild(
508         new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 1, true>(m_context, "textures_subimage_1d_rgb32i"));
509     addChild(
510         new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 1, true>(m_context, "textures_subimage_1d_rgba32i"));
511     addChild(
512         new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 2, true>(m_context, "textures_subimage_2d_r32i"));
513     addChild(
514         new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 2, true>(m_context, "textures_subimage_2d_rg32i"));
515     addChild(
516         new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 2, true>(m_context, "textures_subimage_2d_rgb32i"));
517     addChild(
518         new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 2, true>(m_context, "textures_subimage_2d_rgba32i"));
519     addChild(
520         new Textures::StorageAndSubImageTest<glw::GLint, 1, false, 3, true>(m_context, "textures_subimage_3d_r32i"));
521     addChild(
522         new Textures::StorageAndSubImageTest<glw::GLint, 2, false, 3, true>(m_context, "textures_subimage_3d_rg32i"));
523     addChild(
524         new Textures::StorageAndSubImageTest<glw::GLint, 3, false, 3, true>(m_context, "textures_subimage_3d_rgb32i"));
525     addChild(
526         new Textures::StorageAndSubImageTest<glw::GLint, 4, false, 3, true>(m_context, "textures_subimage_3d_rgba32i"));
527 
528     addChild(
529         new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 1, true>(m_context, "textures_subimage_1d_r32ui"));
530     addChild(
531         new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 1, true>(m_context, "textures_subimage_1d_rg32ui"));
532     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 1, true>(m_context,
533                                                                                   "textures_subimage_1d_rgb32ui"));
534     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 1, true>(m_context,
535                                                                                   "textures_subimage_1d_rgba32ui"));
536     addChild(
537         new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 2, true>(m_context, "textures_subimage_2d_r32ui"));
538     addChild(
539         new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 2, true>(m_context, "textures_subimage_2d_rg32ui"));
540     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 2, true>(m_context,
541                                                                                   "textures_subimage_2d_rgb32ui"));
542     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 2, true>(m_context,
543                                                                                   "textures_subimage_2d_rgba32ui"));
544     addChild(
545         new Textures::StorageAndSubImageTest<glw::GLuint, 1, false, 3, true>(m_context, "textures_subimage_3d_r32ui"));
546     addChild(
547         new Textures::StorageAndSubImageTest<glw::GLuint, 2, false, 3, true>(m_context, "textures_subimage_3d_rg32ui"));
548     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 3, false, 3, true>(m_context,
549                                                                                   "textures_subimage_3d_rgb32ui"));
550     addChild(new Textures::StorageAndSubImageTest<glw::GLuint, 4, false, 3, true>(m_context,
551                                                                                   "textures_subimage_3d_rgba32ui"));
552 
553     addChild(
554         new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 1, true>(m_context, "textures_subimage_1d_r32f"));
555     addChild(
556         new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 1, true>(m_context, "textures_subimage_1d_rg32f"));
557     addChild(
558         new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 1, true>(m_context, "textures_subimage_1d_rgb32f"));
559     addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 1, true>(m_context,
560                                                                                   "textures_subimage_1d_rgba32f"));
561     addChild(
562         new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 2, true>(m_context, "textures_subimage_2d_r32f"));
563     addChild(
564         new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 2, true>(m_context, "textures_subimage_2d_rg32f"));
565     addChild(
566         new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 2, true>(m_context, "textures_subimage_2d_rgb32f"));
567     addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 2, true>(m_context,
568                                                                                   "textures_subimage_2d_rgba32f"));
569     addChild(
570         new Textures::StorageAndSubImageTest<glw::GLfloat, 1, true, 3, true>(m_context, "textures_subimage_3d_r32f"));
571     addChild(
572         new Textures::StorageAndSubImageTest<glw::GLfloat, 2, true, 3, true>(m_context, "textures_subimage_3d_rg32f"));
573     addChild(
574         new Textures::StorageAndSubImageTest<glw::GLfloat, 3, true, 3, true>(m_context, "textures_subimage_3d_rgb32f"));
575     addChild(new Textures::StorageAndSubImageTest<glw::GLfloat, 4, true, 3, true>(m_context,
576                                                                                   "textures_subimage_3d_rgba32f"));
577 
578     addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 1, false, 2>(m_context,
579                                                                             "textures_storage_multisample_2d_r8i"));
580     addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 2, false, 2>(m_context,
581                                                                             "textures_storage_multisample_2d_rg8i"));
582     addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 4, false, 2>(m_context,
583                                                                             "textures_storage_multisample_2d_rgba8i"));
584     addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 1, false, 3>(m_context,
585                                                                             "textures_storage_multisample_3d_r8i"));
586     addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 2, false, 3>(m_context,
587                                                                             "textures_storage_multisample_3d_rg8i"));
588     addChild(new Textures::StorageMultisampleTest<glw::GLbyte, 4, false, 3>(m_context,
589                                                                             "textures_storage_multisample_3d_rgba8i"));
590 
591     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, false, 2>(m_context,
592                                                                              "textures_storage_multisample_2d_r8ui"));
593     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, false, 2>(m_context,
594                                                                              "textures_storage_multisample_2d_rg8ui"));
595     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, false, 2>(
596         m_context, "textures_storage_multisample_2d_rgba8ui"));
597     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, false, 3>(m_context,
598                                                                              "textures_storage_multisample_3d_r8ui"));
599     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, false, 3>(m_context,
600                                                                              "textures_storage_multisample_3d_rg8ui"));
601     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, false, 3>(
602         m_context, "textures_storage_multisample_3d_rgba8ui"));
603 
604     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, true, 2>(
605         m_context, "textures_storage_multisample_2d_r8ui_unorm"));
606     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, true, 2>(
607         m_context, "textures_storage_multisample_2d_rg8ui_unorm"));
608     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, true, 2>(
609         m_context, "textures_storage_multisample_2d_rgba8ui_unorm"));
610     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 1, true, 3>(
611         m_context, "textures_storage_multisample_3d_r8ui_unorm"));
612     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 2, true, 3>(
613         m_context, "textures_storage_multisample_3d_rg8ui_unorm"));
614     addChild(new Textures::StorageMultisampleTest<glw::GLubyte, 4, true, 3>(
615         m_context, "textures_storage_multisample_3d_rgba8ui_unorm"));
616 
617     addChild(new Textures::StorageMultisampleTest<glw::GLshort, 1, false, 2>(m_context,
618                                                                              "textures_storage_multisample_2d_r16i"));
619     addChild(new Textures::StorageMultisampleTest<glw::GLshort, 2, false, 2>(m_context,
620                                                                              "textures_storage_multisample_2d_rg16i"));
621     addChild(new Textures::StorageMultisampleTest<glw::GLshort, 4, false, 2>(
622         m_context, "textures_storage_multisample_2d_rgba16i"));
623     addChild(new Textures::StorageMultisampleTest<glw::GLshort, 1, false, 3>(m_context,
624                                                                              "textures_storage_multisample_3d_r16i"));
625     addChild(new Textures::StorageMultisampleTest<glw::GLshort, 2, false, 3>(m_context,
626                                                                              "textures_storage_multisample_3d_rg16i"));
627     addChild(new Textures::StorageMultisampleTest<glw::GLshort, 4, false, 3>(
628         m_context, "textures_storage_multisample_3d_rgba16i"));
629 
630     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, false, 2>(m_context,
631                                                                               "textures_storage_multisample_2d_r16u"));
632     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, false, 2>(m_context,
633                                                                               "textures_storage_multisample_2d_rg16u"));
634     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, false, 2>(
635         m_context, "textures_storage_multisample_2d_rgba16u"));
636     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, false, 3>(m_context,
637                                                                               "textures_storage_multisample_3d_r16u"));
638     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, false, 3>(m_context,
639                                                                               "textures_storage_multisample_3d_rg16u"));
640     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, false, 3>(
641         m_context, "textures_storage_multisample_3d_rgba16u"));
642 
643     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, true, 2>(
644         m_context, "textures_storage_multisample_2d_r16ui_unorm"));
645     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, true, 2>(
646         m_context, "textures_storage_multisample_2d_rg16ui_unorm"));
647     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, true, 2>(
648         m_context, "textures_storage_multisample_2d_rgba16ui_unorm"));
649     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 1, true, 3>(
650         m_context, "textures_storage_multisample_3d_r16ui_unorm"));
651     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 2, true, 3>(
652         m_context, "textures_storage_multisample_3d_rg16ui_unorm"));
653     addChild(new Textures::StorageMultisampleTest<glw::GLushort, 4, true, 3>(
654         m_context, "textures_storage_multisample_3d_rgba16ui_unorm"));
655 
656     addChild(new Textures::StorageMultisampleTest<glw::GLint, 1, false, 2>(m_context,
657                                                                            "textures_storage_multisample_2d_r32i"));
658     addChild(new Textures::StorageMultisampleTest<glw::GLint, 2, false, 2>(m_context,
659                                                                            "textures_storage_multisample_2d_rg32i"));
660     addChild(new Textures::StorageMultisampleTest<glw::GLint, 3, false, 2>(m_context,
661                                                                            "textures_storage_multisample_2d_rgb32i"));
662     addChild(new Textures::StorageMultisampleTest<glw::GLint, 4, false, 2>(m_context,
663                                                                            "textures_storage_multisample_2d_rgba32i"));
664     addChild(new Textures::StorageMultisampleTest<glw::GLint, 1, false, 3>(m_context,
665                                                                            "textures_storage_multisample_3d_r32i"));
666     addChild(new Textures::StorageMultisampleTest<glw::GLint, 2, false, 3>(m_context,
667                                                                            "textures_storage_multisample_3d_rg32i"));
668     addChild(new Textures::StorageMultisampleTest<glw::GLint, 3, false, 3>(m_context,
669                                                                            "textures_storage_multisample_3d_rgb32i"));
670     addChild(new Textures::StorageMultisampleTest<glw::GLint, 4, false, 3>(m_context,
671                                                                            "textures_storage_multisample_3d_rgba32i"));
672 
673     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 1, false, 2>(m_context,
674                                                                             "textures_storage_multisample_2d_r32ui"));
675     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 2, false, 2>(m_context,
676                                                                             "textures_storage_multisample_2d_rg32ui"));
677     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 3, false, 2>(m_context,
678                                                                             "textures_storage_multisample_2d_rgb32ui"));
679     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 4, false, 2>(
680         m_context, "textures_storage_multisample_2d_rgba32ui"));
681     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 1, false, 3>(m_context,
682                                                                             "textures_storage_multisample_3d_r32ui"));
683     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 2, false, 3>(m_context,
684                                                                             "textures_storage_multisample_3d_rg32ui"));
685     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 3, false, 3>(m_context,
686                                                                             "textures_storage_multisample_3d_rgb32ui"));
687     addChild(new Textures::StorageMultisampleTest<glw::GLuint, 4, false, 3>(
688         m_context, "textures_storage_multisample_3d_rgba32ui"));
689 
690     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 1, true, 2>(m_context,
691                                                                             "textures_storage_multisample_2d_r32f"));
692     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 2, true, 2>(m_context,
693                                                                             "textures_storage_multisample_2d_rg32f"));
694     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 3, true, 2>(m_context,
695                                                                             "textures_storage_multisample_2d_rgb32f"));
696     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 4, true, 2>(m_context,
697                                                                             "textures_storage_multisample_2d_rgba32f"));
698     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 1, true, 3>(m_context,
699                                                                             "textures_storage_multisample_3d_r32f"));
700     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 2, true, 3>(m_context,
701                                                                             "textures_storage_multisample_3d_rg32f"));
702     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 3, true, 3>(m_context,
703                                                                             "textures_storage_multisample_3d_rgb32f"));
704     addChild(new Textures::StorageMultisampleTest<glw::GLfloat, 4, true, 3>(m_context,
705                                                                             "textures_storage_multisample_3d_rgba32f"));
706 
707     addChild(new Textures::CompressedSubImageTest(m_context));
708     addChild(new Textures::CopyTest(m_context));
709     addChild(new Textures::GetSetParameterTest(m_context));
710     addChild(new Textures::DefaultsTest(m_context));
711     addChild(new Textures::GenerateMipmapTest(m_context));
712     addChild(new Textures::BindUnitTest(m_context));
713     addChild(new Textures::GetImageTest(m_context));
714     addChild(new Textures::GetLevelParameterTest(m_context));
715     addChild(new Textures::CreationErrorsTest(m_context));
716     addChild(new Textures::BufferErrorsTest(m_context));
717     addChild(new Textures::BufferRangeErrorsTest(m_context));
718     addChild(new Textures::StorageErrorsTest(m_context));
719     addChild(new Textures::SubImageErrorsTest(m_context));
720     addChild(new Textures::CopyErrorsTest(m_context));
721     addChild(new Textures::ParameterSetupErrorsTest(m_context));
722     addChild(new Textures::GenerateMipmapErrorsTest(m_context));
723     addChild(new Textures::BindUnitErrorsTest(m_context));
724     addChild(new Textures::ImageQueryErrorsTest(m_context));
725     addChild(new Textures::LevelParameterErrorsTest(m_context));
726     addChild(new Textures::ParameterErrorsTest(m_context));
727 }
728 } // namespace DirectStateAccess
729 } // namespace gl4cts
730