Hi,
I have a big performance problem with newer opensuse versions. One
application that runs fine on older XFree86 servers is extremely slow on
newer ones. For example showing the first picture on older servers was a
matter of fractions of a second. Currently it takes a minute.
The profiler says that Xorg spends 95% of its time in pixman_op
calculating intersections.
Because the pixman routines are called by the EXA module as shown by the
debugger, I wanted to disable it:
#0 0xb763cc41 in pixman_op (new_reg=0xbfa30738, reg1=<optimized out>,
reg2=0x894652c, overlap_func=0xb763c820 ,
append_non1=0, append_non2=0, overlap=0xbfa306bc) at pixman-region.c:951
#1 0xb763e7bb in pixman_region_intersect (new_reg=0xbfa30738,
reg1=0xbfa30738, reg2=0x894652c) at pixman-region.c:1214
#2 0xb710cda8 in RegionIntersect (reg2=<optimized out>,
reg1=0xbfa30738, newReg=0xbfa30738) at ../include/regionstr.h:199
#3 exaCopyDirty (migrate=0xbfa307c0, pValidDst=0x8b29690,
pValidSrc=0x8b2969c, transfer=0xb71de410, fallback_index=1,
sync=0xb710b170 <exaWaitSync>) at exa_migration_classic.c:186
#4 0xb710ce68 in exaCopyDirtyToSys (migrate=0xbfa307c0) at
exa_migration_classic.c:281
#5 0xb710f6cc in exaPrepareAccessReg_mixed (pPixmap=0x8b29630, index=0,
pReg=0x0) at exa_migration_mixed.c:254
#6 0xb710b757 in exaPrepareAccess (pDrawable=0x8b29630, index=0) at
exa.c:380
#7 0xb7119cbe in ExaCheckPolylines (pDrawable=0x8b29630, pGC=0x8b54ff8,
mode=0, npt=2, ppt=0xbfa3090c) at exa_unaccel.c:264
#8 0xb710ffa0 in exaPolylines (pDrawable=0x8b29630, pGC=0x8b54ff8,
mode=0, npt=2, ppt=0xbfa3090c) at exa_accel.c:666
#9 0x081af5a2 in miPolyRectangle (pDraw=0x8b29630, pGC=0x8b54ff8,
nrects=2044, pRects=0x8f55a0c) at mipolyrect.c:110
#10 0x0812d6b7 in damagePolyRectangle (pDrawable=0x8b29630,
pGC=0x8b54ff8, nRects=2044, pRects=0x8f55a0c) at damage.c:1206
#11 0x08071b99 in ProcPolyRectangle (client=0x896f7e0) at dispatch.c:1787
#12 0x080759d7 in Dispatch () at dispatch.c:431
#13 0x080687cc in main (argc=8, argv=0xbfa30b44, envp=0xbfa30b68) at
main.c:287
I've added the following to /etc/X11/xorg.conf.d/50-device.conf:
Section "Device"
Option "AccelMethod" "xaa"
Identifier "Default Device"
EndSection
Xorg reads the file because it says in its logfile:
[ 21.481] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
[ 21.481] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32
bpp pixmaps)
[ 21.481] (==) RADEON(0): Default visual is TrueColor
[ 21.481] (**) RADEON(0): Option "AccelMethod" "xaa"
[ 21.481] (==) RADEON(0): RGB weight 888
[ 21.481] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
[ 21.481] (--) RADEON(0): Chipset: "ATI Radeon Mobility X300 (M22)
5460 (PCIE)" (ChipID = 0x5460)
[ 21.481] (II) RADEON(0): PCIE card detected
However EXA is still used. What do I have to do in addition to disable EXA?
Thanks
Christoph
--
To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org
To contact the owner, e-mail: opensuse+owner@opensuse.org