X.org drawing rectangles extremely slow.

Christoph Bartoschek bartoschek at or.uni-bonn.de
Tue Aug 23 08:09:18 PDT 2011


Hi,

I have an application that draws rectangles (approx 500000). Most of 
them are so small that only a pixel or nothing is visible.

After we upgraded our thin clients we saw a huge performance regression 
in the application.

On our old thin clients with XFree86 identifying itself as X.org: 6.8.1 
the application need 1.5 seconds to draw all rectangles.

With the new thin client it takes 75 seconds. The X.org version is 1.5.2.

On my notebook with X.org 1.9.3 from opensuse 11.4 it still takes 7.4 
seconds. This is about 5x slower than on the old thin client.

Has anyone an idea what could be wrong with the newer X.org servers?

I've created a perf profile of the X.org server on my notebook:

# Events: 33K cycles
#
# Overhead  Command           Shared Object 
    Symbol
# ........  .......  ...................... 
....................................
#
     46.83%     Xorg  libpixman-1.so.0.20.0   [.]     fbbc
      5.39%     Xorg  libexa.so               [.]     3127
      5.38%     Xorg  radeon_drv.so           [.]    c4928
      5.32%     Xorg  Xorg                    [.]    2a343
      4.34%     Xorg  libc-2.11.3.so          [.] _int_malloc
      3.14%     Xorg  libc-2.11.3.so          [.] __GI_memmove
      2.78%     Xorg  [radeon]                [k] r100_cs_packet_parse
      2.38%     Xorg  [radeon]                [k] r100_cs_parse_packet0
      2.18%     Xorg  libc-2.11.3.so          [.] _int_free
      2.14%     Xorg  Xorg                    [.] RegionValidate
      1.87%     Xorg  libdrm_radeon.so.1.0.0  [.]     287d
      1.81%     Xorg  libc-2.11.3.so          [.] __cfree
      1.71%     Xorg  libc-2.11.3.so          [.] __malloc
      1.40%     Xorg  [radeon]                [k] r300_cs_parse
      1.02%     Xorg  libpixman-1.so.0.20.0   [.] pixman_region_union
      0.95%     Xorg  libpixman-1.so.0.20.0   [.] pixman_region_intersect
      0.71%     Xorg  Xorg                    [.] RegionFromRects
      0.66%     Xorg  [kernel.kallsyms]       [k] read_hpet
      0.53%     Xorg  libc-2.11.3.so          [.] __i686.get_pc_thunk.bx


Thanks
Christoph



More information about the xorg mailing list