[Mesa-dev] [PATCH] mesa: check that internalformat of CopyTexImage*D is not 1, 2, 3, 4

Nicolai Hähnle nhaehnle at gmail.com
Thu Jan 7 12:31:42 PST 2016


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

The piglit copyteximage check has recently been augmented to test this, but
apparently it hasn't been fixed in Mesa so far.
---
 src/mesa/main/teximage.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 73b3318..70dbf84 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -2247,6 +2247,22 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
                      _mesa_enum_to_string(internalFormat));
          return GL_TRUE;
       }
+   } else {
+      /*
+       * The spec on CopyTexImage2D (OpenGL 4.5 (Compatibility Profile),
+       * page 244):
+       *
+       * Parameters level, internalformat, and border are specified using the
+       * same values, with the same meanings, as the corresponding arguments of
+       * TexImage2D, except that internalformat may not be specified as 1, 2,
+       * 3, or 4.
+       */
+      if (internalFormat >= 1 && internalFormat <= 4) {
+         _mesa_error(ctx, GL_INVALID_ENUM,
+                     "glCopyTexImage%dD(internalFormat=%d)", dimensions,
+                     internalFormat);
+         return GL_TRUE;
+      }
    }
 
    baseFormat = _mesa_base_tex_format(ctx, internalFormat);
-- 
2.5.0



More information about the mesa-dev mailing list