<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 5, 2015 at 12:20 AM, Eduardo Lima Mitev <span dir="ltr"><<a href="mailto:elima@igalia.com" target="_blank">elima@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The implementation of texture <-> pixel-buffer transfers in drivers common layer<br>
includes certain error checks and argument validation that don't belong there,<br>
considering how the Mesa codebase is laid out. These are higher level<br>
validations that, if necessary, should be performed earlier (i.e, in GL API<br>
entry points).<br>
<br>
This patch simply removes these error checks from driver code.<br>
<br>
For more information, see discussion at<br>
<a href="http://lists.freedesktop.org/archives/mesa-dev/2015-February/077417.html" target="_blank">http://lists.freedesktop.org/archives/mesa-dev/2015-February/077417.html</a>.<br>
---<br>
 src/mesa/drivers/common/meta_tex_subimage.c | 44 -----------------------------<br>
 1 file changed, 44 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/common/meta_tex_subimage.c b/src/mesa/drivers/common/meta_tex_subimage.c<br>
index bba2b4f..34ef191 100644<br>
--- a/src/mesa/drivers/common/meta_tex_subimage.c<br>
+++ b/src/mesa/drivers/common/meta_tex_subimage.c<br>
@@ -149,34 +149,12 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,<br>
    bool success = false;<br>
    int z, iters;<br>
<br>
-   /* XXX: This should probably be passed in from somewhere */<br>
-   const char *where = "_mesa_meta_pbo_TexSubImage";<br>
-<br>
    if (!_mesa_is_bufferobj(packing->BufferObj) && !create_pbo)<br>
       return false;<br>
<br></blockquote><div>You can't get rid of this block.  It's not part of the PBO checking code; it's here because _mesa_meta_texsubimage can't handle these formats.<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-   if (format == GL_DEPTH_COMPONENT ||<br>
-       format == GL_DEPTH_STENCIL ||<br>
-       format == GL_STENCIL_INDEX ||<br>
-       format == GL_COLOR_INDEX)<br>
-      return false;<br>
-<br>
    if (ctx->_ImageTransferState)<br>
       return false;<br>
<br>
-   if (!_mesa_validate_pbo_access(dims, packing, width, height, depth,<br>
-                                  format, type, INT_MAX, pixels)) {<br>
-      _mesa_error(ctx, GL_INVALID_OPERATION,<br>
-                  "%s(out of bounds PBO access)", where);<br>
-      return true;<br>
-   }<br>
-<br>
-   if (_mesa_check_disallowed_mapping(packing->BufferObj)) {<br>
-      /* buffer is mapped - that's an error */<br>
-      _mesa_error(ctx, GL_INVALID_OPERATION, "%s(PBO is mapped)", where);<br>
-      return true;<br>
-   }<br>
-<br>
    /* Only accept tightly packed pixels from the user. */<br>
    if (packing->ImageHeight != 0 && packing->ImageHeight != height)<br>
       return false;<br>
@@ -272,34 +250,12 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,<br>
    bool success = false;<br>
    int z, iters;<br>
<br>
-   /* XXX: This should probably be passed in from somewhere */<br>
-   const char *where = "_mesa_meta_pbo_GetTexSubImage";<br>
-<br>
    if (!_mesa_is_bufferobj(packing->BufferObj))<br>
       return false;<br>
<br></blockquote><div>As above, you can't remove this block.<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-   if (format == GL_DEPTH_COMPONENT ||<br>
-       format == GL_DEPTH_STENCIL ||<br>
-       format == GL_STENCIL_INDEX ||<br>
-       format == GL_COLOR_INDEX)<br>
-      return false;<br>
-<br>
    if (ctx->_ImageTransferState)<br>
       return false;<br>
<br>
-   if (!_mesa_validate_pbo_access(dims, packing, width, height, depth,<br>
-                                  format, type, INT_MAX, pixels)) {<br>
-      _mesa_error(ctx, GL_INVALID_OPERATION,<br>
-                  "%s(out of bounds PBO access)", where);<br>
-      return true;<br>
-   }<br>
-<br>
-   if (_mesa_check_disallowed_mapping(packing->BufferObj)) {<br>
-      /* buffer is mapped - that's an error */<br>
-      _mesa_error(ctx, GL_INVALID_OPERATION, "%s(PBO is mapped)", where);<br>
-      return true;<br>
-   }<br>
-<br>
    /* Only accept tightly packed pixels from the user. */<br>
    if (packing->ImageHeight != 0 && packing->ImageHeight != height)<br>
       return false;<br>
<span class=""><font color="#888888">--<br>
2.1.3<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>