diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c index ca8e509da..76a571f8b 100644 --- a/glamor/glamor_render.c +++ b/glamor/glamor_render.c @@ -568,6 +568,7 @@ glamor_set_composite_texture(glamor_screen_private *glamor_priv, int unit, switch (picture->filter) { default: + case PictFilterFast: case PictFilterNearest: dispatch->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, @@ -576,6 +577,8 @@ glamor_set_composite_texture(glamor_screen_private *glamor_priv, int unit, GL_TEXTURE_MAG_FILTER, GL_NEAREST); break; + case PictFilterGood: + case PictFilterBest: case PictFilterBilinear: dispatch->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, @@ -1771,6 +1774,12 @@ _glamor_composite(CARD8 op, } } + if ((source && source->filter >= PictFilterConvolution) + || (mask && mask->filter >= PictFilterConvolution)) { + glamor_fallback("glamor_composite(): unsupported filter\n"); + goto fail; + } + if (!miComputeCompositeRegion(®ion, source, mask, dest, x_source + (source_pixmap ? source->pDrawable->x : 0),