Don't delare arrays as static
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 15 Dec 2017 00:18:34 +0000 (16:18 -0800)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 15 Dec 2017 20:03:44 +0000 (15:03 -0500)
m_texture_1D and friends may have different values on each invocation of
gl4cts::GetTextureSubImage::Errors::testTwoDimmensionalTextureErrors()
on a full CTS run.  However, the rules for 'static const' initializers
may prevent the values from being updated after the first run.

I discovered this while trying to track down failures in
KHR-GL46.get_texture_sub_image.errors_test that only started occuring
with the 3rd visual tested in a full CTS run.  Running the test by
itself or testing that visual by itself via glcts would not reproduce
the error.  I added some extra debug logging to the driver, and I found
that testOneDimmensionalTextureErrors() and
testTwoDimmensionalTextureErrors() were using different names for the
GL_TEXTURE_1D texture.  I then discovered that the targets of the
textures used from testTwoDimmensionalTextureErrors() were {
GL_TEXTURE_2D, GL_TEXTURE_RECTANGE, GL_TEXTURE_2D } instead of {
GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D }

See also https://bugs.freedesktop.org/show_bug.cgi?id=104154

Components: OpenGL

VK-GL-CTS issue: 912

Affects:
KHR-GL46.get_texture_sub_image.errors_test

Change-Id: I3ce061d9de75df46ff69a7eea4b88f6d17164f30

external/openglcts/modules/gl/gl4cGetTextureSubImageTests.cpp

index 57c3487..9b2ef0c 100644 (file)
@@ -505,7 +505,7 @@ bool gl4cts::GetTextureSubImage::Errors::testTwoDimmensionalTextureErrors()
        const glw::Functions& gl = m_context.getRenderContext().getFunctions();
 
        /* Test. */
-       static const struct
+       const struct
        {
                glw::GLuint                id;
                const glw::GLchar* target_name;
@@ -542,7 +542,7 @@ bool gl4cts::GetTextureSubImage::Errors::testTwoDimmensionalTextureErrors()
        }
 
        /* Test (compressed textures). */
-       static const struct
+       const struct
        {
                glw::GLuint                id;
                const glw::GLchar* target_name;