[Mesa-dev] [PATCH] meta: fix glDrawPixels fallback test, stencil drawing

Brian Paul brianp at vmware.com
Fri Jul 27 07:26:12 PDT 2012


Remove the check for pixel transfer ops.  If any RGB/depth scale/bias
is in effect, it'll be applied in the glTexImage step.

If drawing stencil pixels we need to disable pixel transfer so that
alpha scale/bias are not applied to the stencil data.

These issues were spotted by Roland.

Fixes Blender performance issues reported in
http://bugs.freedesktop.org/show_bug.cgi?id=47375

Tested-by: Barto <mister.freeman at laposte.net>
---
 src/mesa/drivers/common/meta.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 82bbbf3..bef648e 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -2253,8 +2253,7 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
     * Determine if we can do the glDrawPixels with texture mapping.
     */
    fallback = GL_FALSE;
-   if (ctx->_ImageTransferState ||
-       ctx->Fog.Enabled) {
+   if (ctx->Fog.Enabled) {
       fallback = GL_TRUE;
    }
 
@@ -2290,7 +2289,8 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
          metaExtraSave = (MESA_META_COLOR_MASK |
                           MESA_META_DEPTH_TEST |
                           MESA_META_SHADER |
-                          MESA_META_STENCIL_TEST);
+                          MESA_META_STENCIL_TEST |
+                          MESA_META_PIXEL_TRANSFER);
       }
       else {
          fallback = GL_TRUE;
-- 
1.7.3.4



More information about the mesa-dev mailing list