On 09/20/2011 01:05 PM, Eric Anholt wrote:
On Tue, 20 Sep 2011 11:56:49 -0600, Brian Paul<brian.e.p...@gmail.com>  wrote:
From: Brian Paul<bri...@vmware.com>

Use _mesa_set_enable() to avoid a redudant context lookup.
Need to disable the texture target in decompress_texture_image() so the
unit isn't still enabled after glGetTexImage() returns.  Arguably, the
meta restore code should do this, but it doesn't.
---
  src/mesa/drivers/common/meta.c |    5 ++++-
  1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 82b072e..be1953a 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -3182,7 +3182,7 @@ decompress_texture_image(struct gl_context *ctx,

     /* setup texture state */
     _mesa_BindTexture(target, texObj->Name);
-   _mesa_Enable(target);
+   _mesa_set_enable(ctx, target, GL_TRUE);

     {
        /* save texture object state */
@@ -3233,6 +3233,9 @@ decompress_texture_image(struct gl_context *ctx,
     ctx->Pack.RowLength = destRowLength;
     _mesa_ReadPixels(0, 0, width, height, destFormat, destType, dest);

+   /* disable texture unit */
+   _mesa_set_enable(ctx, target, GL_FALSE);
+
     _mesa_meta_end(ctx);

It's always confused me that the dispatch doesn't pass the context in to
the _mesa_[A-Z].* functions itself, and that we have to prefix seemingly
each of those with GET_CURRENT_CONTEXT(ctx).

The idea is that we can use a little assembly code to lookup the current dispatch table, then jump right through it without having to construct a new stack frame.


On the other hand, this series seems like an obvious little
improvement for now.

I'll take that to mean Reviewed-by.  Thanks.

-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to