xf86-video-intel/uxa
Chris Wilson cb887cfc67 uxa: solid rects
The cost of performing relocations outweigh the advantages of using the
blitter for solids with lots of rectangles.

References:

  Bug 22127 - [UXA] 50% performance regression for XRenderFillRectangles
  https://bugs.freedesktop.org/show_bug.cgi?id=22127

By using the 3D pipeline we improve our performance by around 4x on
i945, measured by the jxbench microbenchmark, and a factor of 10x by
short-cutting to the 3D pipeline for blended rectangles.

Before, on a i945GME:
  19982.412060 Ops/s; rects (!); 15x15
  9599.131693 Ops/s; rects (!); 75x75
  3803.654743 Ops/s; rects (!); 250x250
  6836.743772 Ops/s; rects blended; 15x15
  1443.750000 Ops/s; rects blended; 75x75
  495.335821 Ops/s; rects blended; 250x250
  23247.933884 Ops/s; rects composition (!); 15x15
  10993.073048 Ops/s; rects composition (!); 75x75
  3595.905172 Ops/s; rects composition (!); 250x250

After:
  87271.145975 Ops/s; rects (!); 15x15
  32347.744361 Ops/s; rects (!); 75x75
  5884.177215 Ops/s; rects (!); 250x250
  73500.000000 Ops/s; rects blended; 15x15
  33580.882353 Ops/s; rects blended; 75x75
  5858.811749 Ops/s; rects blended; 250x250
  25582.317073 Ops/s; rects composition (!); 15x15
  6664.728682 Ops/s; rects composition (!); 75x75
  14965.909091 Ops/s; rects composition (!); 250x250 [suspicious]

This has no impact on Cairo, but I have a suspicion from watching xtrace
that Qt likes to blit thousands of 1x1 rectangles with the same colour.
However, we are still around 2-3x slower than the reported figures for
EXA!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-05-12 12:50:31 +01:00
..
Makefile.am uxa make: remove unused XORG_INCS and DIX_CFLAGS variables 2010-03-25 15:49:14 -04:00
uxa-accel.c Revert "Revert "uxa: Try using put_image when copying from a memory buffer."" 2010-04-14 17:10:09 +01:00
uxa-glyphs.c Remove dead assignments noticed by clang. 2010-02-20 12:55:13 -05:00
uxa-priv.h uxa: solid rects 2010-05-12 12:50:31 +01:00
uxa-render.c uxa: solid rects 2010-05-12 12:50:31 +01:00
uxa-unaccel.c uxa_check_composite: Minor whitespace. 2009-12-02 14:14:39 +00:00
uxa.c uxa: solid rects 2010-05-12 12:50:31 +01:00
uxa.h uxa: Rearrange checking and preparing of composite textures. 2010-05-10 10:36:14 +01:00