xserver/fb
Peter Harris ab0b853e75 fb: Fix fbComposite source and mask clipping
The render specification says that the user's clip is applied to both
input and output. Other backends (eg. glamor and exa) clip the source
and mask via miComputeCompositeRegion. Instead, fb relies on pixman to
do all of the clipping, but pixman cannot clip the source unless we tell
it the clip that should be applied to the source.

fbComposite originally set the clip parameter of image_from_pict to TRUE
before commit a72c65e917 "fb: Adjust
transform or composite coordinates for pixman operations". That commit
talks about origin adjustments, but makes no mention of clipping, which
leads me to believe that the change from TRUE to FALSE was
unintentional. Unfortunately, we can't revert this small change because
the code now uses pCompositeClip, which is incorrect when there is a
transform applied.

I noticed this due to a massive performance regression when running
x11perf under marco (the window manager of the MATE desktop
environment). marco sets a clip on the source picture before calling
RenderComposite to update the screen, rather than the destination
picture.

Signed-off-by: Peter Harris <pharris@opentext.com>
2019-09-03 15:47:22 -04:00
..
fb.h fb: Check whether the window is enabled directly 2017-09-13 11:10:56 -04:00
fballpriv.c Use new screen-specific privates for fb window and gc privates 2012-07-05 13:40:18 -07:00
fbarc.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbbits.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbbits.h fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbblt.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbbltone.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbcmap_mi.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
fbcopy.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbfill.c fb: Remove even/odd tile slow-pathing 2014-10-27 15:45:46 -04:00
fbfillrect.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
fbfillsp.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
fbgc.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbgetsp.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbglyph.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbimage.c fb: Handle ZPixmap planemask in GetImage the other way around 2017-03-20 13:47:49 -04:00
fbline.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fboverlay.c fboverlay: move bpp checks above malloc 2018-09-12 12:26:48 +10:00
fboverlay.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
fbpict.c fb: Fix fbComposite source and mask clipping 2019-09-03 15:47:22 -04:00
fbpict.h fb: remove some superfluous empty lines 2017-05-29 13:52:55 +10:00
fbpixmap.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbpoint.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbpush.c fb: Hide fbPush{Pattern,Fill} 2014-10-27 15:45:57 -04:00
fbrop.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
fbscreen.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbseg.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbsetsp.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbsolid.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fbtrap.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
fbutil.c fb: Remove unused fbReduceRasterOp 2014-10-27 15:45:44 -04:00
fbwindow.c fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
Makefile.am fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
meson.build meson: Distribute more SDK headers 2018-04-02 13:42:08 -04:00
wfbrename.h fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00