[Mesa-dev] [PATCH] meta: do fallback when texture is enabled for DrawPixels

Liu Aleaxander aleaxander at gmail.com
Fri May 4 07:33:41 PDT 2012


From: Yuanhan Liu <yuanhan.liu at linux.intel.com>

If there are already some texture unit enabled, a fallback is needed,
or the original texture stuff would not work.

A much better way is to use multi-texture to handle this case: like
treat the pixels as texture 1 and the original texture as texture 2.
I haven't do much inverstigation on that way, but fallback is definitely
a much simpler and straight way.

This would fix oglc mipsel test case.

Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
---
 src/mesa/drivers/common/meta.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 95336fc..c860f3c 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -2210,6 +2210,16 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
       fallback = GL_TRUE;
    }

+   /*
+    * If there are already some texture unit enabled, a fallback is needed,
+    * or the original texture stuff would not work
+    *
+    * FIXME: we may use multi-texture to handle this case. But fallback is
+    * definitely a much simple and straight way.
+    */
+   if (ctx->Texture._EnabledUnits)
+      fallback = GL_TRUE;
+
    if (_mesa_is_color_format(format)) {
       /* use more compact format when possible */
       /* XXX disable special case for GL_LUMINANCE for now to work around
-- 
1.7.3.1


More information about the mesa-dev mailing list