Static code analysis fixes for GL cts
authorJari Komppa <jari.komppa@siru.fi>
Tue, 27 Apr 2021 12:27:51 +0000 (15:27 +0300)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 20 May 2021 06:48:37 +0000 (06:48 +0000)
This change contains multiple static code analysis fixes,
including uninitialized member variables, initialization
order and buffer overruns.

In theory these changes shouldn't change the tests, but
due to the nature of the changes, some behavior changes
may occur.

Due to the large number of files changed, the affects
mask is over-wide.

Affects:
dEQP-GL*
KHR-*

Change-Id: I57518c38fca9775691f02edfc0cbeee28294bc1e
Components: Framework, OpenGL

54 files changed:
external/openglcts/modules/common/glcGLSLVectorConstructorTests.cpp
external/openglcts/modules/common/glcNearestEdgeTests.cpp
external/openglcts/modules/common/glcPackedDepthStencilTests.cpp
external/openglcts/modules/common/glcPackedPixelsTests.cpp
external/openglcts/modules/common/glcPixelStorageModesTests.cpp
external/openglcts/modules/common/glcRobustBufferAccessBehaviorTests.cpp
external/openglcts/modules/common/glcShaderLibrary.cpp
external/openglcts/modules/common/subgroups/glcSubgroupsTestsUtils.hpp
external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
external/openglcts/modules/gl/gl3cTransformFeedbackTests.cpp
external/openglcts/modules/gl/gl4cCopyImageTests.cpp
external/openglcts/modules/gl/gl4cES31CompatibilityShaderStorageBufferObjectTests.cpp
external/openglcts/modules/gl/gl4cEnhancedLayoutsTests.cpp
external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp
external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.hpp
external/openglcts/modules/gl/gl4cIndirectParametersTests.cpp
external/openglcts/modules/gl/gl4cPipelineStatisticsQueryTests.cpp
external/openglcts/modules/gl/gl4cShaderStorageBufferObjectTests.cpp
external/openglcts/modules/gl/gl4cShadingLanguage420PackTests.cpp
external/openglcts/modules/gl/gl4cTextureGatherTests.cpp
external/openglcts/modules/gl/gl4cVertexAttrib64BitTest.cpp
external/openglcts/modules/gles3/es3cCopyTexImageConversionsTests.cpp
external/openglcts/modules/gles3/es3cNumberParsingTests.cpp
external/openglcts/modules/gles31/es31cArrayOfArraysTests.cpp
external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
external/openglcts/modules/gles31/es31cLayoutBindingTests.cpp
external/openglcts/modules/gles31/es31cSampleShadingTests.cpp
external/openglcts/modules/gles31/es31cShaderStorageBufferObjectTests.cpp
external/openglcts/modules/glesext/draw_buffers_indexed/esextcDrawBuffersIndexedBlending.cpp
external/openglcts/modules/glesext/draw_buffers_indexed/esextcDrawBuffersIndexedColorMasks.cpp
external/openglcts/modules/glesext/geometry_shader/esextcGeometryShaderLayeredFBO.cpp
external/openglcts/modules/glesext/geometry_shader/esextcGeometryShaderLimits.cpp
external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderIsolines.cpp
external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderVertexOrdering.hpp
external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderVertexSpacing.hpp
framework/opengl/gluShaderProgram.hpp
modules/gles2/functional/es2fMultisampleTests.cpp
modules/gles2/functional/es2fTextureUnitTests.cpp
modules/gles3/functional/es3fFboColorbufferTests.cpp
modules/gles3/functional/es3fFramebufferBlitTests.cpp
modules/gles3/functional/es3fMultisampleTests.cpp
modules/gles3/functional/es3fNegativeVertexArrayApiTests.cpp
modules/gles3/functional/es3fShaderOperatorTests.cpp
modules/gles3/functional/es3fTextureUnitTests.cpp
modules/gles31/functional/es31fAdvancedBlendTests.cpp
modules/gles31/functional/es31fDebugTests.cpp
modules/gles31/functional/es31fFboSRGBWriteControlTests.cpp
modules/gles31/functional/es31fGeometryShaderTests.cpp
modules/gles31/functional/es31fPrimitiveBoundingBoxTests.cpp
modules/gles31/functional/es31fSRGBDecodeTests.cpp
modules/gles31/functional/es31fTextureLevelStateQueryTests.cpp
modules/glshared/glsBuiltinPrecisionTests.cpp
modules/glshared/glsShaderPerformanceMeasurer.cpp
modules/glshared/glsTextureStateQueryTests.cpp

index 39cf0f6..3a43c41 100644 (file)
@@ -426,6 +426,8 @@ GLSLVectorConstructorTestCase::GLSLVectorConstructorTestCase(deqp::Context& cont
        : TestCase(context, params.name.c_str(), params.description.c_str())
        , m_glslVersion(glslVersion)
        , m_params(params)
+       , m_fboId(0)
+       , m_rboId(0)
 {
        switch(m_params.testType)
        {
index 5eb7bba..bd30cc3 100644 (file)
@@ -174,6 +174,7 @@ NearestEdgeTestCase::NearestEdgeTestCase (deqp::Context& context, OffsetDirectio
        , m_texFormat           {toTextureFormat(context, m_format)}
        , m_texFormatInfo       {tcu::getTextureFormatInfo(m_texFormat)}
        , m_transFormat         {glu::getTransferFormat(m_texFormat)}
+       , m_texture                     (0)
 {
 }
 
index 43ebf10..f49eb70 100644 (file)
@@ -357,6 +357,7 @@ BaseTest::BaseTest(deqp::Context& context, const TypeFormat& tf)
        , m_nonDepthStencilFormatsCount(DE_LENGTH_OF_ARRAY(coreNonDepthStencilFormats))
        , m_otherBaseFormats(coreOtherBaseFormats)
        , m_otherBaseFormatsCount(DE_LENGTH_OF_ARRAY(coreOtherBaseFormats))
+       , m_attachmentParamsCount(0)
        , m_typeFormat(tf)
        , m_textureProgram(0)
        , m_colorProgram(0)
index 08119f9..8cf2ef0 100644 (file)
@@ -2787,7 +2787,7 @@ void RectangleTest::getBits(const PixelType& type, const PixelFormat& format, st
 
        if (type.special == true)
        {
-               std::memcpy(&resultTable[0], &type.bits, sizeof(int) * NUM_FLOAT_PIXEL_COUNT);
+               std::memcpy(&resultTable[0], &type.bits, sizeof(type.bits));
                if (type.type == GL_UNSIGNED_INT_5_9_9_9_REV)
                {
                        //this type is another special case: it is always converted to 3-channel color (no A).
index beedb3d..30a086f 100644 (file)
@@ -213,7 +213,10 @@ TexImageUtils::TexImageUtils (deUint32 internalFormat,
                                                          int subcuboid_h,
                                                          int subcuboid_d,
                                                          glu::GLSLVersion glsl_version)
-       : m_internalFormat(internalFormat)
+       : m_src_data(0)
+       , tex(0)
+       , prog(0)
+       , m_internalFormat(internalFormat)
        , m_format(glu::getTransferFormat(glu::mapGLInternalFormat(internalFormat)).format)
        , m_type(glu::getTransferFormat(glu::mapGLInternalFormat(internalFormat)).dataType)
        , m_pixelsize(tcu::getPixelSize(glu::mapGLInternalFormat(internalFormat)))
index 7e5d45f..520540d 100644 (file)
@@ -1006,7 +1006,7 @@ void initPixels(std::vector<TYPE>& pixels, GLuint n_pixels, GLuint n_channels)
 
 RobustnessBase::RobustnessBase(tcu::TestContext& testCtx, const char* name, const char* description,
                                                           glu::ApiType apiType)
-       : tcu::TestCase(testCtx, name, description), m_api_type(apiType), m_has_khr_robust_buffer_access(false)
+       : tcu::TestCase(testCtx, name, description), m_api_type(apiType), m_context_is_es(false), m_has_khr_robust_buffer_access(false)
 {
 }
 
index 6f16a0b..1d48460 100644 (file)
@@ -255,7 +255,7 @@ static string removeExtraIndentation(const string& source)
 {
        // Detect indentation from first line.
        int numIndentChars = 0;
-       for (int ndx = 0; isWhitespace(source[ndx]) && ndx < (int)source.length(); ndx++)
+       for (int ndx = 0; ndx < (int)source.length() && isWhitespace(source[ndx]); ndx++)
                numIndentChars += source[ndx] == '\t' ? 4 : 1;
 
        // Process all lines and remove preceding indentation.
@@ -968,14 +968,20 @@ void ShaderParser::parseShaderCase(vector<tcu::TestNode*>& shaderNodeList)
                        assumeToken(TOKEN_SHADER_SOURCE);
                        string source = parseShaderSource(m_curTokenStr.c_str());
                        advanceToken();
-                       if (token == TOKEN_BOTH)
+                       switch (token)
+                       {
+                       case TOKEN_BOTH:
                                bothSource = source;
-                       else if (token == TOKEN_VERTEX)
+                               break;
+                       case TOKEN_VERTEX:
                                vertexSource = source;
-                       else if (token == TOKEN_FRAGMENT)
+                               break;
+                       case TOKEN_FRAGMENT:
                                fragmentSource = source;
-                       else
+                               break;
+                       default:
                                DE_ASSERT(DE_FALSE);
+                       }
                }
                else if (m_curToken == TOKEN_VERSION)
                {
index 0143233..19d1d04 100644 (file)
@@ -327,8 +327,7 @@ typedef enum SubgroupFeatureFlags
     SUBGROUP_FEATURE_PARTITIONED_BIT_NV = GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,
        SUBGROUP_FEATURE_ALL_VALID = (SUBGROUP_FEATURE_BASIC_BIT | SUBGROUP_FEATURE_VOTE_BIT | SUBGROUP_FEATURE_ARITHMETIC_BIT |
                                                                  SUBGROUP_FEATURE_BALLOT_BIT | SUBGROUP_FEATURE_SHUFFLE_BIT | SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT |
-                                                                 SUBGROUP_FEATURE_CLUSTERED_BIT | SUBGROUP_FEATURE_QUAD_BIT | SUBGROUP_FEATURE_QUAD_BIT |
-                                                                 SUBGROUP_FEATURE_PARTITIONED_BIT_NV),
+                                                                 SUBGROUP_FEATURE_CLUSTERED_BIT | SUBGROUP_FEATURE_QUAD_BIT | SUBGROUP_FEATURE_PARTITIONED_BIT_NV),
 } SubgroupFeatureFlags;
 
 typedef enum Format
index 884c603..82a994e 100644 (file)
@@ -135,7 +135,7 @@ tcu::TestNode::IterateResult FunctionalTest::iterate()
                                                }
 
                                                /* Check basic API queries for source texture. */
-                                               is_ok = is_ok & checkSourceTextureSizeAndType(s_formats[i], s_source_texture_targets[j]);
+                                               if (is_ok) is_ok = checkSourceTextureSizeAndType(s_formats[i], s_source_texture_targets[j]);
 
                                                /* For every [R, G, B, A] component. */
                                                for (glw::GLuint k = 0; k < COMPONENTS_COUNT; ++k)
@@ -153,9 +153,9 @@ tcu::TestNode::IterateResult FunctionalTest::iterate()
                                                        drawQuad();
 
                                                        /* Check results. */
-                                                       is_ok = is_ok & checkDestinationTexture(s_formats[i], ColorChannelSelector(k),
-                                                                                                                                       s_source_texture_targets[j],
-                                                                                                                                       s_source_texture_targets_names[j]);
+                                                       if (is_ok) is_ok = checkDestinationTexture(s_formats[i], ColorChannelSelector(k),
+                                                                                                                                          s_source_texture_targets[j],
+                                                                                                                                          s_source_texture_targets_names[j]);
 
                                                        /* Cleanup. */
                                                        cleanDestinationTexture();
index fb3f596..3197a7c 100644 (file)
@@ -2556,7 +2556,7 @@ bool gl3cts::TransformFeedback::CaptureVertexInterleaved::checkFramebuffer(glw::
        /* Fetch framebuffer. */
        std::vector<glw::GLfloat> pixels(s_framebuffer_size * s_framebuffer_size);
 
-       if ((s_framebuffer_size > 0) && (s_framebuffer_size > 0))
+       if (s_framebuffer_size > 0)
        {
                gl.readPixels(0, 0, s_framebuffer_size, s_framebuffer_size, GL_RED, GL_FLOAT, pixels.data());
                GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels call failed.");
@@ -4089,7 +4089,7 @@ bool gl3cts::TransformFeedback::DiscardVertex::checkFramebuffer(glw::GLuint prim
        /* Fetch framebuffer. */
        std::vector<glw::GLfloat> pixels(s_framebuffer_size * s_framebuffer_size);
 
-       if ((s_framebuffer_size > 0) && (s_framebuffer_size > 0))
+       if (s_framebuffer_size > 0)
        {
                gl.readPixels(0, 0, s_framebuffer_size, s_framebuffer_size, GL_RED, GL_FLOAT, pixels.data());
                GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels call failed.");
@@ -4143,7 +4143,7 @@ bool gl3cts::TransformFeedback::DiscardGeometry::checkFramebuffer(glw::GLuint pr
        /* Fetch framebuffer. */
        std::vector<glw::GLfloat> pixels(s_framebuffer_size * s_framebuffer_size);
 
-       if ((s_framebuffer_size > 0) && (s_framebuffer_size > 0))
+       if (s_framebuffer_size > 0)
        {
                gl.readPixels(0, 0, s_framebuffer_size, s_framebuffer_size, GL_RED, GL_FLOAT, pixels.data());
                GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels call failed.");
@@ -4593,7 +4593,7 @@ bool gl3cts::TransformFeedback::DrawXFB::checkFramebuffer(glw::GLfloat r, glw::G
        /* Fetch framebuffer. */
        std::vector<glw::GLubyte> pixels(number_of_pixels * 4 /* components */);
 
-       if ((s_view_size > 0) && (s_view_size > 0))
+       if (s_view_size > 0)
        {
                gl.readPixels(0, 0, s_view_size, s_view_size, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data());
                GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels call failed.");
index 23fe62f..ee8a51a 100644 (file)
@@ -5485,8 +5485,10 @@ ExceedingBoundariesTest::ExceedingBoundariesTest(deqp::Context& context)
 
                                        if (0 != z_val)
                                        {
-                                               if ((GL_TEXTURE_2D_ARRAY != tex_target) || (GL_TEXTURE_2D_MULTISAMPLE_ARRAY != tex_target) ||
-                                                       (GL_TEXTURE_3D != tex_target) || (GL_TEXTURE_CUBE_MAP_ARRAY != tex_target))
+                                               if (!((GL_TEXTURE_2D_ARRAY == tex_target)
+                                                       || (GL_TEXTURE_2D_MULTISAMPLE_ARRAY == tex_target)
+                                                       || (GL_TEXTURE_3D == tex_target)
+                                                       || (GL_TEXTURE_CUBE_MAP_ARRAY == tex_target)))
                                                {
                                                        /* Skip z != 0 for 2d textures */
                                                        continue;
index d590644..b4cdb02 100644 (file)
@@ -4226,7 +4226,6 @@ const char* GetInputUBO2(std::vector<GLubyte> in_data[2])
                fp[4]    = 5.0f;
                fp[5]    = 6.0f;
                fp[6]    = 7.0f;
-               fp[8]    = 8.0f;
                fp[8]    = 9.0f;
                fp[12]  = 10.0f;
                fp[16]  = 11.0f;
@@ -7670,13 +7669,19 @@ public:
        bool length_as_index;
 
        AdvancedUnsizedArrayLength2()
-               : stage(compute)
+               : m_program(0)
+               , m_vertex_array(0)
+               , stage(compute)
                , etype(vector)
                , layout(std430)
                , other_members(false)
                , bind_seq(bindbasebefore)
                , length_as_index(false)
        {
+               for (int i = 0; i < 8; i++)
+               {
+                       m_storage_buffer[i] = 0;
+               }
        }
 };
 
index 5574b46..f3ffbca 100644 (file)
@@ -19783,6 +19783,9 @@ FragmentDataLocationAPITest::FragmentDataLocationAPITest(deqp::Context& context)
        , m_gohan(context)
        , m_goten(context)
        , m_chichi(context)
+       , m_goku_location(0)
+       , m_gohan_location(0)
+       , m_chichi_location(0)
 {
 }
 
index 5e6efe6..667c5f6 100644 (file)
@@ -3588,7 +3588,7 @@ const glw::GLchar* GPUShaderFP64Test2::getShaderStageName(shaderStage shader_sta
  **/
 void GPUShaderFP64Test2::inspectProgram(glw::GLuint program_id, glw::GLint n_uniforms,
                                                                                const uniformTypeDetails& uniform_type, glw::GLint& out_buffer_size,
-                                                                               uniformDetails& out_uniform_details, glw::GLuint uniform_block_index) const
+                                                                               uniformDetails& out_uniform_details, glw::GLuint& uniform_block_index) const
 {
        glw::GLint                               array_stride = 0;
        std::vector<glw::GLchar> extracted_uniform_name;
@@ -5994,43 +5994,25 @@ void GPUShaderFP64Test4::generateUniformValues()
                        stage_ptr->uniform_structure_arrays[0].uniform_double_arr + 1,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec2 + 0,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec2 + 1,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec2 + 2,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec2 + 3,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec3 + 0,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec3 + 1,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec3 + 2,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec3 + 3,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec3 + 4,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec3 + 5,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 0,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 1,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 2,
                        stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 3,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 4,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 5,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 6,
-                       stage_ptr->uniform_structure_arrays[0].uniform_dvec4 + 7,
                        &stage_ptr->uniform_structure_arrays[1].uniform_double,
                        stage_ptr->uniform_structure_arrays[1].uniform_double_arr + 0,
                        stage_ptr->uniform_structure_arrays[1].uniform_double_arr + 1,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec2 + 0,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec2 + 1,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec2 + 2,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec2 + 3,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec3 + 0,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec3 + 1,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec3 + 2,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec3 + 3,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec3 + 4,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec3 + 5,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 0,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 1,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 2,
                        stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 3,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 4,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 5,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 6,
-                       stage_ptr->uniform_structure_arrays[1].uniform_dvec4 + 7,
                        &stage_ptr->uniforms.uniform_double,
                        stage_ptr->uniforms.uniform_double_arr + 0,
                        stage_ptr->uniforms.uniform_double_arr + 1,
index 5477afb..77af133 100644 (file)
@@ -484,7 +484,7 @@ private:
 
        void inspectProgram(glw::GLuint program_id, glw::GLint n_uniforms, const uniformTypeDetails& uniform_type,
                                                glw::GLint& out_buffer_size, uniformDetails& out_offsets,
-                                               glw::GLuint uniform_block_index) const;
+                                               glw::GLuint& uniform_block_index) const;
 
        void prepareBoilerplateShader(const glw::GLchar* stage_specific_layout, const glw::GLchar* stage_specific_main_body,
                                                                  std::string& out_source_code) const;
index c7b28d1..0add995 100644 (file)
@@ -509,6 +509,7 @@ MultiDrawElementsIndirectCountCase::MultiDrawElementsIndirectCountCase(deqp::Con
                  "Test verifies if MultiDrawElementsIndirectCountARB function works as expected.")
        , m_vao(0)
        , m_arrayBuffer(0)
+       , m_elementBuffer(0)
        , m_drawIndirectBuffer(0)
        , m_parameterBuffer(0)
 {
index 2827f36..99bcc5c 100644 (file)
@@ -1670,6 +1670,11 @@ PipelineStatisticsQueryTestFunctionalBase::PipelineStatisticsQueryTestFunctional
        , m_vbo_id(0)
        , m_to_height(64)
        , m_to_width(64)
+       , m_vbo_indirect_arrays_argument_offset(0)
+       , m_vbo_indirect_elements_argument_offset(0)
+       , m_vbo_index_data_offset(0)
+       , m_vbo_n_indices(0)
+       , m_vbo_vertex_data_offset(0)
        , m_current_draw_call_type(PipelineStatisticsQueryUtilities::DRAW_CALL_TYPE_COUNT)
        , m_current_primitive_type(PipelineStatisticsQueryUtilities::PRIMITIVE_TYPE_COUNT)
        , m_indirect_draw_call_baseinstance_argument(0)
index 7597d49..e766c38 100644 (file)
@@ -4411,7 +4411,6 @@ const char* GetInputUBO2(std::vector<GLubyte> in_data[2])
                fp[4]    = 5.0f;
                fp[5]    = 6.0f;
                fp[6]    = 7.0f;
-               fp[8]    = 8.0f;
                fp[8]    = 9.0f;
                fp[12]  = 10.0f;
                fp[16]  = 11.0f;
index 9203552..283ab52 100644 (file)
@@ -4691,6 +4691,7 @@ std::string ImplicitConversionsValidTest::getValueList(glw::GLuint n_columns, gl
 ImplicitConversionsInvalidTest::ImplicitConversionsInvalidTest(deqp::Context& context)
        : NegativeTestBase(context, "implicit_conversions_invalid",
                                           "Verifies that implicit conversions from uint to int are forbidden")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -5282,6 +5283,7 @@ void ConstDynamicValueTest::prepareUniforms(Utils::program& program)
  **/
 ConstAssignmentTest::ConstAssignmentTest(deqp::Context& context)
        : NegativeTestBase(context, "const_assignment", "Verifies that constants cannot be overwritten")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -5742,6 +5744,7 @@ void ConstDynamicValueAsConstExprTest::prepareShaderSource(Utils::SHADER_STAGES
 QualifierOrderTest::QualifierOrderTest(deqp::Context& context)
        : GLSLTestBase(context, "qualifier_order",
                                   "Test verifies that valid permutation of input and output qalifiers are accepted")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done */
 }
@@ -6110,6 +6113,7 @@ const Utils::qualifierSet& QualifierOrderTest::getCurrentTestCase()
 QualifierOrderBlockTest::QualifierOrderBlockTest(deqp::Context& context)
        : GLSLTestBase(context, "qualifier_order_block",
                                   "Verifies that qualifiers of members of input block can be arranged in any order")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -6496,6 +6500,7 @@ const Utils::qualifierSet& QualifierOrderBlockTest::getCurrentTestCase()
 QualifierOrderUniformTest::QualifierOrderUniformTest(deqp::Context& context)
        : GLSLTestBase(context, "qualifier_order_uniform",
                                   "Test verifies that all valid permutation of input qalifiers are accepted")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -6810,6 +6815,7 @@ const Utils::qualifierSet& QualifierOrderUniformTest::getCurrentTestCase()
  **/
 QualifierOrderFunctionInoutTest::QualifierOrderFunctionInoutTest(deqp::Context& context)
        : GLSLTestBase(context, "qualifier_order_function_inout", "Verify order of qualifiers of inout function parameters")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -7128,6 +7134,7 @@ const Utils::qualifierSet& QualifierOrderFunctionInoutTest::getCurrentTestCase()
  **/
 QualifierOrderFunctionInputTest::QualifierOrderFunctionInputTest(deqp::Context& context)
        : GLSLTestBase(context, "qualifier_order_function_input", "Verify order of qualifiers of function input parameters")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -7451,6 +7458,7 @@ const Utils::qualifierSet& QualifierOrderFunctionInputTest::getCurrentTestCase()
 QualifierOrderFunctionOutputTest::QualifierOrderFunctionOutputTest(deqp::Context& context)
        : GLSLTestBase(context, "qualifier_order_function_output",
                                   "Verify order of qualifiers of output function parameters")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -8259,6 +8267,7 @@ void BindingUniformBlocksTest::releaseResource()
 BindingUniformSingleBlockTest::BindingUniformSingleBlockTest(deqp::Context& context)
        : GLSLTestBase(context, "binding_uniform_single_block", "Test verifies uniform block binding")
        , m_goku_buffer(context)
+       , m_test_stage(Utils::SHADER_STAGES_MAX)
 {
        /* Nothing to be done here */
 }
@@ -9597,6 +9606,7 @@ void BindingUniformGlobalBlockTest::prepareShaderSource(Utils::SHADER_STAGES in_
  **/
 BindingUniformInvalidTest::BindingUniformInvalidTest(deqp::Context& context)
        : NegativeTestBase(context, "binding_uniform_invalid", "Test verifies invalid binding values")
+       , m_case(TEST_CASES_MAX)
 {
        /* Nothing to be done here */
 }
@@ -9870,6 +9880,7 @@ BindingSamplersTest::BindingSamplersTest(deqp::Context& context)
        , m_vegeta_texture(context)
        , m_trunks_texture(context)
        , m_buffer(context)
+       , m_test_case(Utils::TEXTURE_TYPES_MAX)
 {
        /* Nothing to be done here */
 }
@@ -13473,6 +13484,7 @@ const GLfloat InitializerListTest::m_value = 0.0625f;
  **/
 InitializerListTest::InitializerListTest(deqp::Context& context)
        : GLSLTestBase(context, "initializer_list", "Test verifies initializer lists")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -14792,6 +14804,7 @@ std::string InitializerListTest::getVectorValues(GLuint column, GLuint size)
  **/
 InitializerListNegativeTest::InitializerListNegativeTest(deqp::Context& context)
        : NegativeTestBase(context, "initializer_list_negative", "Verifies invalid initializers")
+       , m_current_test_case_index(0)
 {
        /* Nothing to be done here */
 }
@@ -17922,11 +17935,11 @@ Utils::shaderSource::shaderSource()
 {
 }
 
-Utils::shaderSource::shaderSource(const shaderSource& source) : m_parts(source.m_parts)
+Utils::shaderSource::shaderSource(const shaderSource& source) : m_parts(source.m_parts), m_use_lengths(false)
 {
 }
 
-Utils::shaderSource::shaderSource(const glw::GLchar* source_code)
+Utils::shaderSource::shaderSource(const glw::GLchar* source_code) : m_use_lengths(false)
 {
        if (0 != source_code)
        {
@@ -18558,7 +18571,7 @@ void Utils::program::printShaderSource(const shaderSource& source, tcu::MessageB
  *
  * @param context CTS context.
  **/
-Utils::texture::texture(deqp::Context& context) : m_id(0), m_context(context), m_texture_type(TEX_2D)
+Utils::texture::texture(deqp::Context& context) : m_id(0), m_buffer_id(0), m_context(context), m_texture_type(TEX_2D)
 {
        /* Nothing to done here */
 }
index b79c65f..45a32fe 100644 (file)
@@ -1058,8 +1058,7 @@ public:
                                return ERROR;
                }
 
-               if (!m_context.getContextInfo().isExtensionSupported("GL_ARB_compute_shader") ||
-                       !m_context.getContextInfo().isExtensionSupported("GL_ARB_compute_shader"))
+               if (!m_context.getContextInfo().isExtensionSupported("GL_ARB_compute_shader"))
                {
                        m_context.getTestContext().getLog()
                                << tcu::TestLog::Message << "Expected "
index 0b2823b..e8f3081 100644 (file)
@@ -3929,7 +3929,7 @@ bool VAOTest::verifyXFBData(const void* data, _draw_call_type draw_call, bool in
                                (const double*)(xfb_data_ptr + (m_n_batches * n_instance + xfb_index) * m_xfb_total_size +
                                                                m_xfb_bo1_dvec2_offset);
 
-                       if (memcmp(in_dvec2_data_ptr, in_dvec2_data_ptr, m_xfb_bo1_dvec2_size) != 0)
+                       if (memcmp(in_dvec2_data_ptr, xfb_dvec2_data_ptr, m_xfb_bo1_dvec2_size) != 0)
                        {
                                m_testCtx.getLog() << tcu::TestLog::Message << "BO1 dvec2 attribute values mismatch for batch ["
                                                                   << n_element << "]"
@@ -4027,7 +4027,7 @@ bool VAOTest::verifyXFBData(const void* data, _draw_call_type draw_call, bool in
                                (const signed int*)(xfb_data_ptr + (m_n_batches * n_instance + xfb_index) * m_xfb_total_size +
                                                                        m_xfb_bo1_int_offset);
 
-                       if (de::abs((signed int)*in_char_data_ptr - *xfb_int_data_ptr) > epsilon)
+                       if (de::abs((signed int)*in_char_data_ptr - *xfb_int_data_ptr) > 0)
                        {
                                m_testCtx.getLog() << tcu::TestLog::Message << "BO1 int attribute value mismatch for batch ["
                                                                   << n_element << "]"
index aea6a01..0814658 100644 (file)
@@ -2865,8 +2865,7 @@ void ConversionDatabase::addEntryToConversionDatabase(PixelData src_topleft, Pix
        if (src_topleft.data_internalformat != src_topright.data_internalformat ||
                src_topleft.data_internalformat != src_bottomleft.data_internalformat ||
                src_topleft.data_internalformat != src_bottomright.data_internalformat ||
-               src_topleft.data_internalformat != src_topright.data_internalformat ||
-               src_topleft.data_type != src_topright.data_type || src_topleft.data_type != src_bottomleft.data_type ||
+                       src_topleft.data_type != src_topright.data_type || src_topleft.data_type != src_bottomleft.data_type ||
                src_topleft.data_type != src_bottomright.data_type)
        {
                return;
index d0512fb..04876a5 100644 (file)
@@ -344,6 +344,8 @@ private:
 
 NumberParsingCase::NumberParsingCase(deqp::Context& context, const string& name, const TestParams& params, const string& vertexShader, const string& fragmentShader)
        : TestCase(context, name.c_str(), params.description.c_str())
+       , m_fboId(0)
+       , m_rboId(0)
        , m_params(params)
        , m_vertexShader(vertexShader)
        , m_fragmentShader(fragmentShader)
index 5aab150..b79991d 100644 (file)
@@ -1552,7 +1552,7 @@ void SizedDeclarationsTypenameStyle3<API>::test_shader_compilation(
 {
        std::string shader_source = "struct{\n" + this->extend_string("    float", "[2]", 2);
 
-       shader_source += this->extend_string(" a", "[2]", API::MAX_ARRAY_DIMENSIONS - API::MAX_ARRAY_DIMENSIONS);
+       shader_source += this->extend_string(" a", "[2]", 0);
        shader_source += ",";
        shader_source += this->extend_string("    b", "[2]", 1);
        shader_source += ",";
@@ -1628,7 +1628,7 @@ void SizedDeclarationsTypenameStyle5<API>::test_shader_compilation(
        std::string shader_source = example_struct_begin;
 
        shader_source += this->extend_string("    float", "[2]", 2);
-       shader_source += this->extend_string(" a", "[2]", API::MAX_ARRAY_DIMENSIONS - API::MAX_ARRAY_DIMENSIONS);
+       shader_source += this->extend_string(" a", "[2]", 0);
        shader_source += ", ";
        shader_source += this->extend_string("b", "[2]", 2);
        shader_source += ", ";
index 24821ad..ffc43e2 100644 (file)
@@ -226,12 +226,6 @@ public:
 
        GLuint BuildShaderProgram(GLenum type, const std::string& source)
        {
-               if (type == GL_COMPUTE_SHADER)
-               {
-                       const char* const src[2] = { kGLSLVer, source.c_str() };
-                       return glCreateShaderProgramv(type, 2, src);
-               }
-
                const char* const src[2] = { kGLSLVer, source.c_str() };
                return glCreateShaderProgramv(type, 2, src);
        }
index e4fc84c..d2f8432 100644 (file)
@@ -276,7 +276,7 @@ public:
        {
                if (getStage() != ComputeShader)
                        return m_program->getShaderInfo(glu::SHADERTYPE_FRAGMENT).compileOk &&
-                                  m_program->getShaderInfo(glu::SHADERTYPE_FRAGMENT).compileOk && m_program->getProgramInfo().linkOk;
+                                  m_program->getShaderInfo(glu::SHADERTYPE_VERTEX).compileOk && m_program->getProgramInfo().linkOk;
 
                return m_program->getShaderInfo(glu::SHADERTYPE_COMPUTE).compileOk && m_program->getProgramInfo().linkOk;
        }
index 4f22fda..5b6bc7b 100644 (file)
@@ -104,7 +104,7 @@ private:
 };
 
 SampleShadingApiCaseGroup::SampleShadingApiCase::SampleShadingApiCase(Context& context, glu::GLSLVersion glslVersion)
-       : TestCase(context, "verify", ""), m_glslVersion(glslVersion)
+       : TestCase(context, "verify", ""), m_glslVersion(glslVersion), m_pGLMinSampleShading(0)
 {
        DE_ASSERT(glslVersion == glu::GLSL_VERSION_310_ES || glslVersion >= glu::GLSL_VERSION_400);
 }
@@ -204,6 +204,7 @@ SampleShadingRenderCase::SampleShadingRenderCase(Context& context, const char* n
                                                                                                 GLfloat sampleShading)
        : TestCase(context, name, description)
        , m_glslVersion(glslVersion)
+       , m_pGLMinSampleShading(0)
        , m_internalFormat(internalFormat)
        , m_texFormat(texFormat)
        , m_sampler(sampler)
index 0edb688..fed4c1b 100644 (file)
@@ -4231,7 +4231,6 @@ const char* GetInputUBO2(std::vector<GLubyte> in_data[2])
                fp[4]    = 5.0f;
                fp[5]    = 6.0f;
                fp[6]    = 7.0f;
-               fp[8]    = 8.0f;
                fp[8]    = 9.0f;
                fp[12]  = 10.0f;
                fp[16]  = 11.0f;
index 80625f1..b6cb4a3 100644 (file)
@@ -44,6 +44,7 @@ namespace glcts
 DrawBuffersIndexedBlending::DrawBuffersIndexedBlending(Context& context, const ExtParameters& extParams,
                                                                                                           const char* name, const char* description)
        : DrawBuffersIndexedBase(context, extParams, name, description)
+       , m_fbo(0)
 {
        /* Left blank on purpose */
 }
index e643393..cda6877 100644 (file)
@@ -44,6 +44,7 @@ namespace glcts
 DrawBuffersIndexedColorMasks::DrawBuffersIndexedColorMasks(Context& context, const ExtParameters& extParams,
                                                                                                                   const char* name, const char* description)
        : DrawBuffersIndexedBase(context, extParams, name, description)
+       , m_fbo(0)
 {
        /* Left blank on purpose */
 }
index 6d067eb..24b8abe 100644 (file)
@@ -1126,7 +1126,7 @@ GeometryShaderFramebufferTextureArgumentRefersToBufferTexture::
        /* Allocate memory for m_tex_height * m_tex_width texels, with each texel being 3 GLints. */
        m_texels = new glw::GLint[m_tex_height * m_tex_width * 3];
 
-       memset(m_texels, 255, m_tex_height * m_tex_width * 3);
+       memset(m_texels, 255, sizeof(glw::GLint) * m_tex_height * m_tex_width * 3);
 }
 
 /** Deinitializes GLES objects created during the test. */
index 8485605..69eeeec 100644 (file)
@@ -1747,6 +1747,8 @@ GeometryShaderMaxOutputComponentsTest::GeometryShaderMaxOutputComponentsTest(Con
                                                                                                                                                         const ExtParameters& extParams,
                                                                                                                                                         const char* name, const char* description)
        : GeometryShaderLimitsRenderingBase(context, extParams, name, description)
+       , m_fragment_shader_code_c_str(0)
+       , m_geometry_shader_code_c_str(0)
        , m_texture_width(0)
        , m_max_output_components(0)
        , m_max_output_vectors(0)
@@ -2078,6 +2080,8 @@ tcu::TestCase::IterateResult GeometryShaderMaxOutputVerticesTest::iterate()
 GeometryShaderMaxOutputComponentsSinglePointTest::GeometryShaderMaxOutputComponentsSinglePointTest(
        Context& context, const ExtParameters& extParams, const char* name, const char* description)
        : GeometryShaderLimitsRenderingBase(context, extParams, name, description)
+       , m_fragment_shader_code_c_str(0)
+       , m_geometry_shader_code_c_str(0)
        , m_max_output_components(0)
        , m_max_output_vectors(0)
        , m_n_available_vectors(0)
index edc4a42..809acb7 100644 (file)
@@ -155,7 +155,7 @@ void TessellationShadersIsolines::checkIrrelevantTessellationLevelsHaveNoEffect(
        irrelevant_tess_level1 = (int)irrelevant_tess_level1_rounded_clamped;
        irrelevant_tess_level2 = (int)irrelevant_tess_level2_rounded_clamped;
 
-       DE_ASSERT(de::abs(irrelevant_tess_level1 - irrelevant_tess_level2) > epsilon);
+       DE_ASSERT(de::abs(irrelevant_tess_level1 - irrelevant_tess_level2) > 0);
 
        /* Iterate through all test runs for equal spacing */
        for (_test_results_iterator test_result_iterator = test_result_iterator_start;
index 322f449..3857773 100644 (file)
@@ -91,10 +91,11 @@ private:
                        memset(inner_tess_levels, 0, sizeof(inner_tess_levels));
                        memset(outer_tess_levels, 0, sizeof(outer_tess_levels));
 
-                       data                    = DE_NULL;
-                       n_vertices              = 0;
-                       primitive_mode  = TESSELLATION_SHADER_PRIMITIVE_MODE_UNKNOWN;
-                       vertex_ordering = TESSELLATION_SHADER_VERTEX_ORDERING_UNKNOWN;
+                       data                                    = DE_NULL;
+                       is_point_mode_enabled   = false;
+                       n_vertices                              = 0;
+                       primitive_mode                  = TESSELLATION_SHADER_PRIMITIVE_MODE_UNKNOWN;
+                       vertex_ordering                 = TESSELLATION_SHADER_VERTEX_ORDERING_UNKNOWN;
                }
        } _test_iteration;
 
index 22eece2..30f5f79 100644 (file)
@@ -101,10 +101,10 @@ private:
                {
                        memset(inner, 0, sizeof(inner));
                        memset(outer, 0, sizeof(outer));
-
-                       n_vertices       = 0;
-                       primitive_mode = TESSELLATION_SHADER_PRIMITIVE_MODE_UNKNOWN;
-                       vertex_spacing = TESSELLATION_SHADER_VERTEX_SPACING_UNKNOWN;
+                       data_cartesian  = 0;
+                       n_vertices              = 0;
+                       primitive_mode  = TESSELLATION_SHADER_PRIMITIVE_MODE_UNKNOWN;
+                       vertex_spacing  = TESSELLATION_SHADER_VERTEX_SPACING_UNKNOWN;
                }
        } _run;
 
index 4e033b8..3c347a3 100644 (file)
@@ -54,7 +54,7 @@ struct ShaderInfo
        bool                                    compileOk;              //!< Did compilation succeed?
        deUint64                                compileTimeUs;  //!< Compile time in microseconds (us).
 
-       ShaderInfo (void) : compileOk(false), compileTimeUs(0) {}
+       ShaderInfo (void) : type(SHADERTYPE_LAST), compileOk(false), compileTimeUs(0) {}
 };
 
 /*--------------------------------------------------------------------*//*!
index 3db1379..76a6412 100644 (file)
@@ -1100,6 +1100,7 @@ private:
 MaskProportionalityCase::MaskProportionalityCase (Context& context, const char* name, const char* description, CaseType type)
        : MultisampleCase                               (context, name, description)
        , m_type                                                (type)
+       , m_numIterations                               (0)
        , m_currentIteration                    (0)
        , m_previousIterationColorSum   (-1)
 {
index 1af1c3c..32e37d4 100644 (file)
@@ -583,6 +583,8 @@ TextureUnitCase::TextureUnitCase (Context& context, const char* name, const char
        , m_numUnitsParam       (numUnits)
        , m_caseType            (caseType)
        , m_randSeed            (randSeed)
+       , m_numTextures         (0)
+       , m_numUnits            (0)
        , m_shader                      (DE_NULL)
 {
 }
index 28e71c7..2be840b 100644 (file)
@@ -243,8 +243,10 @@ protected:
                multiTexShader.setUniforms (*getCurrentContext(), multiTexShaderID);
 
                // Framebuffers.
-               deUint32                                fbo0, fbo1;
-               deUint32                                tex0, tex1;
+               deUint32                                fbo0 = 0;
+               deUint32                                fbo1 = 0;
+               deUint32                                tex0 = 0;
+               deUint32                                tex1 = 0;
 
                for (int ndx = 0; ndx < 2; ndx++)
                {
index 2ee16b6..abd3c00 100644 (file)
@@ -77,8 +77,10 @@ public:
                deUint32                                gradShaderID    = getCurrentContext()->createProgram(&gradShader);
                deUint32                                texShaderID             = getCurrentContext()->createProgram(&texShader);
 
-               deUint32                                srcFbo, dstFbo;
-               deUint32                                srcRbo, dstRbo;
+               deUint32                                srcFbo = 0;
+               deUint32                                dstFbo = 0;
+               deUint32                                srcRbo = 0;
+               deUint32                                dstRbo = 0;
 
                // Setup shaders
                gradShader.setGradient(*getCurrentContext(), gradShaderID, Vec4(0.0f), Vec4(1.0f));
index e974d57..63a4a80 100644 (file)
@@ -1256,6 +1256,7 @@ private:
 MaskProportionalityCase::MaskProportionalityCase (Context& context, const char* name, const char* description, CaseType type, int numFboSamples)
        : MultisampleCase                               (context, name, description, 32, numFboSamples >= 0 ? FboParams(numFboSamples, false, false) : FboParams())
        , m_type                                                (type)
+       , m_numIterations                               (0)
        , m_currentIteration                    (0)
        , m_previousIterationColorSum   (-1)
 {
index 00f018d..9d68f7f 100644 (file)
@@ -347,7 +347,7 @@ void NegativeVertexArrayApiTests::init (void)
                        GLuint fbo;
                        GLuint buf;
                        GLuint tfID;
-                       GLfloat vertices[1];
+                       GLfloat vertices[1] = { 0 };
 
                        m_log << tcu::TestLog::Section("", "GL_INVALID_ENUM is generated if mode is not an accepted value.");
                        glDrawElements(-1, 1, GL_UNSIGNED_BYTE, vertices);
@@ -414,7 +414,7 @@ void NegativeVertexArrayApiTests::init (void)
                {
                        glUseProgram(0);
                        GLuint fbo;
-                       GLfloat vertices[1];
+                       GLfloat vertices[1] = { 0 };
 
                        m_log << tcu::TestLog::Section("", "GL_INVALID_ENUM is generated if mode is not an accepted value.");
                        glDrawElements(-1, 1, GL_UNSIGNED_BYTE, vertices);
@@ -450,7 +450,7 @@ void NegativeVertexArrayApiTests::init (void)
                        GLuint fbo;
                        GLuint buf;
                        GLuint tfID;
-                       GLfloat vertices[1];
+                       GLfloat vertices[1] = { 0 };
 
                        m_log << tcu::TestLog::Section("", "GL_INVALID_ENUM is generated if mode is not an accepted value.");
                        glDrawElements(-1, 1, GL_UNSIGNED_BYTE, vertices);
@@ -613,7 +613,7 @@ void NegativeVertexArrayApiTests::init (void)
                        GLuint fbo;
                        GLuint buf;
                        GLuint tfID;
-                       GLfloat vertices[1];
+                       GLfloat vertices[1] = { 0 };
                        glVertexAttribDivisor(0, 1);
                        expectError(GL_NO_ERROR);
 
@@ -684,7 +684,7 @@ void NegativeVertexArrayApiTests::init (void)
                {
                        glUseProgram(0);
                        GLuint fbo;
-                       GLfloat vertices[1];
+                       GLfloat vertices[1] = { 0 };
                        glVertexAttribDivisor(0, 1);
                        expectError(GL_NO_ERROR);
 
@@ -724,7 +724,7 @@ void NegativeVertexArrayApiTests::init (void)
                        GLuint fbo;
                        GLuint buf;
                        GLuint tfID;
-                       GLfloat vertices[1];
+                       GLfloat vertices[1] = { 0 };
                        glVertexAttribDivisor(0, 1);
                        expectError(GL_NO_ERROR);
 
index c71eea4..039edf0 100644 (file)
@@ -1896,12 +1896,23 @@ void ShaderOperatorTests::init (void)
                                                                                        : TYPE_LAST;
 
                                ShaderEvalFunc evalFunc = DE_NULL;
-                               if      (inScalarSize == 1)     evalFunc = funcInfo.evalFuncScalar;
-                               else if (inScalarSize == 2)     evalFunc = funcInfo.evalFuncVec2;
-                               else if (inScalarSize == 3)     evalFunc = funcInfo.evalFuncVec3;
-                               else if (inScalarSize == 4)     evalFunc = funcInfo.evalFuncVec4;
-                               else DE_ASSERT(false);
-
+                               switch (inScalarSize)
+                               {
+                               case 1:
+                                       evalFunc = funcInfo.evalFuncScalar;
+                                       break;
+                               case 2:
+                                       evalFunc = funcInfo.evalFuncVec2;
+                                       break;
+                               case 3:
+                                       evalFunc = funcInfo.evalFuncVec3;
+                                       break;
+                               case 4:
+                                       evalFunc = funcInfo.evalFuncVec4;
+                                       break;
+                               default:
+                                       DE_ASSERT(false);
+                               }
                                // Skip if no valid eval func.
                                // \todo [petri] Better check for V3 only etc. cases?
                                if (evalFunc == DE_NULL)
index d5ee262..01ad427 100644 (file)
@@ -746,6 +746,8 @@ TextureUnitCase::TextureUnitCase (Context& context, const char* name, const char
        , m_numUnitsParam       (numUnits)
        , m_caseType            (caseType)
        , m_randSeed            (randSeed)
+       , m_numTextures         (0)
+       , m_numUnits            (0)
        , m_shader                      (DE_NULL)
 {
 }
index a9540b6..8351200 100644 (file)
@@ -161,24 +161,25 @@ AdvancedBlendCase::AdvancedBlendCase (Context&                    context,
                                                                          int                           overdrawCount,
                                                                          bool                          coherent,
                                                                          RenderTargetType      rtType)
-       : TestCase                              (context, name, desc)
-       , m_blendMode                   (mode)
-       , m_overdrawCount               (overdrawCount)
-       , m_coherentBlending    (coherent)
-       , m_rtType                              (rtType)
-       , m_numIters                    (5)
-       , m_colorRbo                    (0)
-       , m_fbo                                 (0)
-       , m_resolveColorRbo             (0)
-       , m_resolveFbo                  (0)
-       , m_program                             (DE_NULL)
-       , m_referenceRenderer   (DE_NULL)
-       , m_refColorBuffer              (DE_NULL)
-       , m_renderWidth                 (rtType != RENDERTARGETTYPE_DEFAULT ? 2*MAX_VIEWPORT_WIDTH      : m_context.getRenderTarget().getWidth())
-       , m_renderHeight                (rtType != RENDERTARGETTYPE_DEFAULT ? 2*MAX_VIEWPORT_HEIGHT     : m_context.getRenderTarget().getHeight())
-       , m_viewportWidth               (de::min<int>(m_renderWidth,    MAX_VIEWPORT_WIDTH))
-       , m_viewportHeight              (de::min<int>(m_renderHeight,   MAX_VIEWPORT_HEIGHT))
-       , m_iterNdx                             (0)
+       : TestCase                                              (context, name, desc)
+       , m_blendMode                                   (mode)
+       , m_overdrawCount                               (overdrawCount)
+       , m_coherentBlending                    (coherent)
+       , m_rtType                                              (rtType)
+       , m_numIters                                    (5)
+       , m_coherentExtensionSupported  (false)
+       , m_colorRbo                                    (0)
+       , m_fbo                                                 (0)
+       , m_resolveColorRbo                             (0)
+       , m_resolveFbo                                  (0)
+       , m_program                                             (DE_NULL)
+       , m_referenceRenderer                   (DE_NULL)
+       , m_refColorBuffer                              (DE_NULL)
+       , m_renderWidth                                 (rtType != RENDERTARGETTYPE_DEFAULT ? 2*MAX_VIEWPORT_WIDTH      : m_context.getRenderTarget().getWidth())
+       , m_renderHeight                                (rtType != RENDERTARGETTYPE_DEFAULT ? 2*MAX_VIEWPORT_HEIGHT     : m_context.getRenderTarget().getHeight())
+       , m_viewportWidth                               (de::min<int>(m_renderWidth,    MAX_VIEWPORT_WIDTH))
+       , m_viewportHeight                              (de::min<int>(m_renderHeight,   MAX_VIEWPORT_HEIGHT))
+       , m_iterNdx                                             (0)
 {
 }
 
index 4a507cc..2fa9eaa 100644 (file)
@@ -165,6 +165,7 @@ private:
 TestFunctionWrapper::TestFunctionWrapper (void)
        : m_type(TYPE_NULL)
 {
+       m_func.coreFn = 0;
 }
 
 TestFunctionWrapper::TestFunctionWrapper (CoreTestFunc func)
index d94fb83..e28c6b7 100644 (file)
@@ -441,9 +441,9 @@ TestVertexData::TestVertexData      (Context& context)
        m_gl->bufferData(GL_ARRAY_BUFFER, (glw::GLsizei)(m_data.size() * sizeof(glw::GLfloat)), &m_data[0], GL_STATIC_DRAW);
 
        m_gl->enableVertexAttribArray(0);
-       m_gl->vertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(GL_FLOAT), (glw::GLvoid *)0);
+       m_gl->vertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(float), (glw::GLvoid *)0);
        m_gl->enableVertexAttribArray(1);
-       m_gl->vertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(GL_FLOAT), (glw::GLvoid *)(3 * sizeof(GL_FLOAT)));
+       m_gl->vertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(float), (glw::GLvoid *)(3 * sizeof(float)));
 
        m_gl->bindVertexArray(0);
        m_gl->bindBuffer(GL_ARRAY_BUFFER, 0);
@@ -1343,6 +1343,7 @@ private:
 FboSRGBTestCase::FboSRGBTestCase       (Context& context, const char* const name, const char* const desc)
        : TestCase                                              (context, name, desc)
        , m_hasTestConfig                               (false)
+       , m_testcaseRequiresBlend               (false)
 {
 }
 
index 0a9da92..1cdc854 100644 (file)
@@ -3610,6 +3610,7 @@ bool LayeredRenderCase::verifyImageSingleColoredRow (const tcu::Surface& layer,
                return false;
        }
 
+       // Note: never reached
        if (logging)
                m_testCtx.getLog() << tcu::TestLog::Image("LayerContent", "Layer content", layer);
 
index c389aec..ad46d94 100644 (file)
@@ -4849,7 +4849,7 @@ bool ViewportCallOrderCase::verifyImage (const tcu::PixelBufferAccess& result)
        for (int x = 0; x < result.getWidth(); ++x)
        {
                const tcu::IVec4        pixel                   = result.getPixelInt(x, y);
-               const bool                      insideMeshArea  = x >= insideBorder.x() && x <= insideBorder.x();
+               const bool                      insideMeshArea = x >= insideBorder.x() && x <= insideBorder.x();
                const bool                      outsideMeshArea = x <= outsideBorder.x() && x >= outsideBorder.x();
 
                // inside mesh, allow green, yellow and any shade between
index 6eb22a4..c07f14b 100644 (file)
@@ -276,6 +276,7 @@ FragmentShaderParameters::FragmentShaderParameters  (const ShaderOutputs    paramsOu
                                                                                                         Toggling                               paramsToggleRequired)
        : outputTotal                                                                   (paramsOutputTotal)
        , uniformTotal                                                                  (paramsUniformTotal)
+       , samplingType                                                                  (TEXTURESAMPLING_TEXTURE)
        , blendRequired                                                                 (paramsBlendRequired)
        , toggleRequired                                                                (paramsToggleRequired)
 {
@@ -931,10 +932,13 @@ private:
 SRGBTestCase::SRGBTestCase     (Context& context, const char* name, const char* description, const tcu::TextureFormat internalFormat)
        : TestCase                              (context, name, description)
        , m_epsilonError                (EpsilonError::CPU)
+       , m_resultOutputTotal   (0)
        , m_resultTextureFormat (tcu::TextureFormat(tcu::TextureFormat::sRGBA, tcu::TextureFormat::UNORM_INT8))
        , m_vaoID                               (0)
        , m_vertexDataID                (0)
        , m_samplingGroup               (SHADERSAMPLINGGROUP_TEXTURE)
+       , m_px                                  (0)
+       , m_py                                  (0)
        , m_internalFormat              (internalFormat)
 {
 }
@@ -1357,9 +1361,9 @@ void SRGBTestCase::initVertexData (void)
        gl.bindBuffer(GL_ARRAY_BUFFER, m_vertexDataID);
        gl.bufferData(GL_ARRAY_BUFFER, (glw::GLsizei)sizeof(squareVertexData), squareVertexData, GL_STATIC_DRAW);
 
-       gl.vertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(GL_FLOAT), (glw::GLvoid *)0);
+       gl.vertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(float), (glw::GLvoid *)0);
        gl.enableVertexAttribArray(0);
-       gl.vertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(GL_FLOAT), (glw::GLvoid *)(3 * sizeof(GL_FLOAT)));
+       gl.vertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * (glw::GLsizei)sizeof(float), (glw::GLvoid *)(3 * sizeof(float)));
        gl.enableVertexAttribArray(1);
 
        gl.bindVertexArray(0);
index 8ab46a8..13284ee 100644 (file)
@@ -153,7 +153,9 @@ struct TextureGenerationSpec
        std::string                                             description;
 
        TextureGenerationSpec (void)
-               : immutable                             (true)
+               : bindTarget                    (0)
+               , queryTarget                   (0)
+               , immutable                             (true)
                , fixedSamplePos                (true)
                , sampleCount                   (0)
                , texBufferDataOffset   (0)
index a774464..124b39b 100644 (file)
@@ -3560,7 +3560,7 @@ protected:
                // Khronos bug 11180 consensus: if exp2(exponent) cannot be represented,
                // the result is undefined.
 
-               if (ret.contains(TCU_INFINITY) | ret.contains(-TCU_INFINITY))
+               if (ret.contains(TCU_INFINITY) || ret.contains(-TCU_INFINITY))
                        ret |= TCU_NAN;
 
                return call<Mul>(ctx, iargs.a, ret);
@@ -4315,7 +4315,7 @@ float DefaultSampling<float>::genRandom (const FloatFormat& format,
                        break;
                default: // Random (evenly distributed) significand.
                {
-                       deUint64 intFraction = rnd.getUint64() & ((1 << fractionBits) - 1);
+                       deUint64 intFraction = rnd.getUint64() & ((1ull << fractionBits) - 1);
                        significand = float(intFraction) * quantum;
                }
        }
index 53e0059..3910198 100644 (file)
@@ -119,15 +119,17 @@ static void generateIndices (std::vector<deUint16>& dst, int gridSizeX, int grid
 }
 
 ShaderPerformanceMeasurer::ShaderPerformanceMeasurer (const glu::RenderContext& renderCtx, PerfCaseType measureType)
-       : m_renderCtx           (renderCtx)
-       , m_gridSizeX           (measureType == CASETYPE_FRAGMENT       ? 1             : 255)
-       , m_gridSizeY           (measureType == CASETYPE_FRAGMENT       ? 1             : 255)
-       , m_viewportWidth       (measureType == CASETYPE_VERTEX         ? 32    : renderCtx.getRenderTarget().getWidth())
-       , m_viewportHeight      (measureType == CASETYPE_VERTEX         ? 32    : renderCtx.getRenderTarget().getHeight())
-       , m_state                       (STATE_UNINITIALIZED)
-       , m_result                      (-1.0f, -1.0f)
-       , m_indexBuffer         (0)
-       , m_vao                         (0)
+       : m_renderCtx                   (renderCtx)
+       , m_gridSizeX                   (measureType == CASETYPE_FRAGMENT       ? 1             : 255)
+       , m_gridSizeY                   (measureType == CASETYPE_FRAGMENT       ? 1             : 255)
+       , m_viewportWidth               (measureType == CASETYPE_VERTEX         ? 32    : renderCtx.getRenderTarget().getWidth())
+       , m_viewportHeight              (measureType == CASETYPE_VERTEX         ? 32    : renderCtx.getRenderTarget().getHeight())
+       , m_state(STATE_UNINITIALIZED)
+       , m_isFirstIteration    (false)
+       , m_prevRenderStartTime (0)
+       , m_result                              (-1.0f, -1.0f)
+       , m_indexBuffer                 (0)
+       , m_vao                                 (0)
 {
 }
 
index 6ac62ad..7bc99d6 100644 (file)
@@ -481,7 +481,6 @@ static bool isCoreQuery (QueryType query)
 {
        return  es31::isCoreQuery(query)                                                                ||
                        query == QUERY_TEXTURE_PARAM_PURE_INTEGER                               ||
-                       query == QUERY_TEXTURE_PARAM_PURE_INTEGER                               ||
                        query == QUERY_TEXTURE_PARAM_PURE_UNSIGNED_INTEGER              ||
                        query == QUERY_TEXTURE_PARAM_PURE_INTEGER_VEC4                  ||
                        query == QUERY_TEXTURE_PARAM_PURE_UNSIGNED_INTEGER_VEC4 ||