Fix internal format/type for ES3 3D + depth/stencil negative API tests.
authorKenneth Graunke <kenneth.w.graunke@intel.com>
Mon, 12 Sep 2016 19:37:08 +0000 (12:37 -0700)
committerPyry Haulos <phaulos@google.com>
Thu, 5 Jan 2017 18:19:21 +0000 (18:19 +0000)
This is a port of commit ae7f8e0a07730e693b24d3dc7a23d2372319145e from
the ES 3.1 tests to the ES 3.0 tests.

According to the ES 3.2 specification:

   "Textures with a base internal format of DEPTH_COMPONENT, DEPTH_STENCIL
    or STENCIL_INDEX are supported by texture image specification commands
    only if target is TEXTURE_2D, TEXTURE_2D_MULTISAMPLE, TEXTURE_2D_ARRAY,
    TEXTURE_2D_MULTISAMPLE_ARRAY, TEXTURE_CUBE_MAP or TEXTURE_CUBE_MAP_ARRAY.
    Using these formats in conjunction with any other target will result in
    an INVALID_OPERATION error."

This subtest tried to check the above error condition, but it specified
GL_DEPTH_STENCIL / GL_DEPTH_COMPONENT as format, rather than internalFormat.
Since the above text calls out "base internal format", we should specify
it as internalFormat.

We also change GL_DEPTH_STENCIL to use GL_UNSIGNED_INT_24_8 rather than
GL_UNSIGNED_BYTE, as that combination was illegal for a different reason
than the one the test intended to check.

Affects dEQP-GLES3.functional.negative_api.texture.teximage3d.

Bug: 34103293

Change-Id: Ie01e2d130bb1cadc821153487e3e41593e3ca15e

modules/gles3/functional/es3fNegativeTextureApiTests.cpp

index 3164300..da53af7 100644 (file)
@@ -2065,9 +2065,9 @@ void NegativeTextureApiTests::init (void)
                        m_log << TestLog::EndSection;
 
                        m_log << TestLog::Section("", "GL_INVALID_OPERATION is generated if target is GL_TEXTURE_3D and format is GL_DEPTH_COMPONENT, or GL_DEPTH_STENCIL.");
-                       glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, 1, 1, 1, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_BYTE, 0);
+                       glTexImage3D(GL_TEXTURE_3D, 0, GL_DEPTH_STENCIL, 1, 1, 1, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0);
                        expectError(GL_INVALID_OPERATION);
-                       glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, 1, 1, 1, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, 0);
+                       glTexImage3D(GL_TEXTURE_3D, 0, GL_DEPTH_COMPONENT, 1, 1, 1, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, 0);
                        expectError(GL_INVALID_OPERATION);
                        m_log << TestLog::EndSection;