Am 04.05.2012 16:33, schrieb Liu Aleaxander: > From: Yuanhan Liu <yuanhan....@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....@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
Wouldn't you also have to test for active fragment shader too (i.e. essentially same test that _mesa_meta_Bitmap is doing I think they might have the same prerequisites for fallback for the hilarious combination of these ops with ordinary fragment shading)? Though I guess maybe you could avoid fallback in some cases (like drawing to stencil buffer then texture bound shouldn't matter I think though a fragment shader writing to depth or killing fragments still would). Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev