[Mesa-dev] [PATCH 1/4] meta: Remove error checks for texture <-> pixel-buffer transfers that don't belong in driver code

Eduardo Lima Mitev elima at igalia.com
Thu Mar 5 00:20:10 PST 2015


The implementation of texture <-> pixel-buffer transfers in drivers common layer
includes certain error checks and argument validation that don't belong there,
considering how the Mesa codebase is laid out. These are higher level
validations that, if necessary, should be performed earlier (i.e, in GL API
entry points).

This patch simply removes these error checks from driver code.

For more information, see discussion at
http://lists.freedesktop.org/archives/mesa-dev/2015-February/077417.html.
---
 src/mesa/drivers/common/meta_tex_subimage.c | 44 -----------------------------
 1 file changed, 44 deletions(-)

diff --git a/src/mesa/drivers/common/meta_tex_subimage.c b/src/mesa/drivers/common/meta_tex_subimage.c
index bba2b4f..34ef191 100644
--- a/src/mesa/drivers/common/meta_tex_subimage.c
+++ b/src/mesa/drivers/common/meta_tex_subimage.c
@@ -149,34 +149,12 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
    bool success = false;
    int z, iters;
 
-   /* XXX: This should probably be passed in from somewhere */
-   const char *where = "_mesa_meta_pbo_TexSubImage";
-
    if (!_mesa_is_bufferobj(packing->BufferObj) && !create_pbo)
       return false;
 
-   if (format == GL_DEPTH_COMPONENT ||
-       format == GL_DEPTH_STENCIL ||
-       format == GL_STENCIL_INDEX ||
-       format == GL_COLOR_INDEX)
-      return false;
-
    if (ctx->_ImageTransferState)
       return false;
 
-   if (!_mesa_validate_pbo_access(dims, packing, width, height, depth,
-                                  format, type, INT_MAX, pixels)) {
-      _mesa_error(ctx, GL_INVALID_OPERATION,
-                  "%s(out of bounds PBO access)", where);
-      return true;
-   }
-
-   if (_mesa_check_disallowed_mapping(packing->BufferObj)) {
-      /* buffer is mapped - that's an error */
-      _mesa_error(ctx, GL_INVALID_OPERATION, "%s(PBO is mapped)", where);
-      return true;
-   }
-
    /* Only accept tightly packed pixels from the user. */
    if (packing->ImageHeight != 0 && packing->ImageHeight != height)
       return false;
@@ -272,34 +250,12 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
    bool success = false;
    int z, iters;
 
-   /* XXX: This should probably be passed in from somewhere */
-   const char *where = "_mesa_meta_pbo_GetTexSubImage";
-
    if (!_mesa_is_bufferobj(packing->BufferObj))
       return false;
 
-   if (format == GL_DEPTH_COMPONENT ||
-       format == GL_DEPTH_STENCIL ||
-       format == GL_STENCIL_INDEX ||
-       format == GL_COLOR_INDEX)
-      return false;
-
    if (ctx->_ImageTransferState)
       return false;
 
-   if (!_mesa_validate_pbo_access(dims, packing, width, height, depth,
-                                  format, type, INT_MAX, pixels)) {
-      _mesa_error(ctx, GL_INVALID_OPERATION,
-                  "%s(out of bounds PBO access)", where);
-      return true;
-   }
-
-   if (_mesa_check_disallowed_mapping(packing->BufferObj)) {
-      /* buffer is mapped - that's an error */
-      _mesa_error(ctx, GL_INVALID_OPERATION, "%s(PBO is mapped)", where);
-      return true;
-   }
-
    /* Only accept tightly packed pixels from the user. */
    if (packing->ImageHeight != 0 && packing->ImageHeight != height)
       return false;
-- 
2.1.3



More information about the mesa-dev mailing list