On 22 January 2016 at 07:06, Eric Anholt <e...@anholt.net> wrote: > I originally inherited this from the EXA code, without determining > whether it was really needed. Regular composite should end up doing > the same thing, since it's all just shaders anyway. To the extent > that it doesn't, we should fix composite.
For EXA I could see us caring, for glamor not so much. Though I suppose in theory we could have a blitfb based copy that is faster, but we don't. Reviewed-by: Dave Airlie <airl...@redhat.com> > > Signed-off-by: Eric Anholt <e...@anholt.net> > --- > glamor/glamor_render.c | 92 > -------------------------------------------------- > 1 file changed, 92 deletions(-) > > diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c > index 92b6b0c..1b226aa 100644 > --- a/glamor/glamor_render.c > +++ b/glamor/glamor_render.c > @@ -508,41 +508,6 @@ glamor_set_composite_solid(float *color, GLint > uniform_location) > glUniform4fv(uniform_location, 1, color); > } > > -static int > -compatible_formats(CARD8 op, PicturePtr dst, PicturePtr src) > -{ > - if (op == PictOpSrc) { > - /* We can't do direct copies between different depths at 16bpp > - * because r,g,b are allocated to different bits. > - */ > - if (dst->pDrawable->bitsPerPixel == 16 && > - dst->pDrawable->depth != src->pDrawable->depth) { > - return 0; > - } > - > - if (src->format == dst->format) > - return 1; > - > - if (src->format == PICT_a8r8g8b8 && dst->format == PICT_x8r8g8b8) > - return 1; > - > - if (src->format == PICT_a8b8g8r8 && dst->format == PICT_x8b8g8r8) > - return 1; > - } > - else if (op == PictOpOver) { > - if (src->alphaMap || dst->alphaMap) > - return 0; > - > - if (src->format != dst->format) > - return 0; > - > - if (src->format == PICT_x8r8g8b8 || src->format == PICT_x8b8g8r8) > - return 1; > - } > - > - return 0; > -} > - > static char > glamor_get_picture_location(PicturePtr picture) > { > @@ -564,54 +529,6 @@ glamor_get_picture_location(PicturePtr picture) > return glamor_get_drawable_location(picture->pDrawable); > } > > -static Bool > -glamor_composite_with_copy(CARD8 op, > - PicturePtr source, > - PicturePtr dest, > - INT16 x_source, > - INT16 y_source, > - INT16 x_dest, INT16 y_dest, RegionPtr region) > -{ > - int ret = FALSE; > - > - if (!source->pDrawable) > - return FALSE; > - > - if (!compatible_formats(op, dest, source)) > - return FALSE; > - > - if (source->repeat || source->transform) { > - return FALSE; > - } > - > - x_dest += dest->pDrawable->x; > - y_dest += dest->pDrawable->y; > - x_source += source->pDrawable->x; > - y_source += source->pDrawable->y; > - if (PICT_FORMAT_A(source->format) == 0) { > - /* Fallback if we sample outside the source so that we > - * swizzle the correct clear color for out-of-bounds texels. > - */ > - if (region->extents.x1 + x_source - x_dest < 0) > - goto cleanup_region; > - if (region->extents.x2 + x_source - x_dest > > source->pDrawable->width) > - goto cleanup_region; > - > - if (region->extents.y1 + y_source - y_dest < 0) > - goto cleanup_region; > - if (region->extents.y2 + y_source - y_dest > > source->pDrawable->height) > - goto cleanup_region; > - } > - glamor_copy(source->pDrawable, > - dest->pDrawable, NULL, > - RegionRects(region), RegionNumRects(region), > - x_source - x_dest, y_source - y_dest, > - FALSE, FALSE, 0, NULL); > - ret = TRUE; > - cleanup_region: > - return ret; > -} > - > static void * > glamor_setup_composite_vbo(ScreenPtr screen, int n_verts) > { > @@ -1451,15 +1368,6 @@ glamor_composite_clipped_region(CARD8 op, > } > } > > - if (!mask && temp_src) { > - if (glamor_composite_with_copy(op, temp_src, dest, > - x_temp_src, y_temp_src, > - x_dest, y_dest, region)) { > - ok = TRUE; > - goto out; > - } > - } > - > if (temp_src_pixmap == dest_pixmap) { > glamor_fallback("source and dest pixmaps are the same\n"); > goto out; > -- > 2.6.4 > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel