[PATCH xserver] glamor: Adjust for drawable x/y in composite's copy optimization

Keith Packard keithp at keithp.com
Fri May 27 18:05:05 UTC 2016


Patch b64108fa305e956e4edaae9d53071ff0abee268e added a short cut that
identifies composite operations that can be performed with a simple
copy instead.

glamor_copy works in absolute coordinates, so the dx and dy values
passed in need to be converted from drawable-relative to absolute by
adding the drawable x/y values.

Signed-off-by: Keith Packard <keithp at keithp.com>
---
 glamor/glamor_render.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
index 9c5cca6..165bced 100644
--- a/glamor/glamor_render.c
+++ b/glamor/glamor_render.c
@@ -1436,6 +1436,10 @@ glamor_composite_clipped_region(CARD8 op,
                  || (op == PictOpOver
                      && source->format == dest->format
                      && !PICT_FORMAT_A(source->format)))))) {
+        x_source += source->pDrawable->x;
+        y_source += source->pDrawable->y;
+        x_dest += dest->pDrawable->x;
+        y_dest += dest->pDrawable->y;
         glamor_copy(source->pDrawable, dest->pDrawable, NULL,
                     box, nbox, x_source - x_dest,
                     y_source - y_dest, FALSE, FALSE, 0, NULL);
-- 
2.8.1



More information about the xorg-devel mailing list