On 22 January 2016 at 07:06, Eric Anholt 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
>
> Signed-off-by: Eric Anholt
> ---
> 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