No announcement yet.

2D slowness in r500 radeon EXA?

  • Filter
  • Time
  • Show
Clear All
new posts

  • 2D slowness in r500 radeon EXA?

    After using my new PCIE R500 card with radeon for some weeks I can post some results. Compared to the previous Matrox G450 PCI.

    First, image quality is noticably lower. I know this is not related to drivers, but one would expect other companies to have catched up to a 9 year old card way after it's release.

    Second, on my CRT I notice "waves" sometimes. This could be from the driver, but also from the weak CRTC of current cards.

    3D is of course way faster; the Matrox had opengl 1.2 but for most things it was only barely faster than software rendering. Comparing OpenArena, the Matrox had 640x480 all low @ 80 fps, and now my X1300 Pro has 1024x768 all high @ 110 fps (GL 1.3 in the driver, 2.0 in the HW).

    Now the main point. 2D is not "slow" per se, but it is noticably slower than vesa with shadowfb or my old Matrox with it's XAA accel. It takes maybe 2-4 times longer to show windows contents, resize, or open a new tab in Opera for example. It is only noticable because I got used to the old speed; but should it not be faster, not slower?

    It has EXA over XAA. It has the bandwith of PCIE 16x vs the bandwith of PCI (133 mib/s -> 4000 mib/s). It has way more ram (32mb -> 256mb). And it's not from the generation that does 2d completely on the 3d engine; it still has a dedicated 2d chip. And the card itself is 7 years newer, has way more power, has better memory (DDR -> DDR2).

    Am I out of the line expecting improved 2d performance, not a degradation, from a newer card? Is this something that is caused by the driver, or is this the sad reality?

    PS: Radeon devs, don't take this too hard, I do appreciate the tear-free XV that supports 4kx4k video (G450 XV could not play anything over 1024 in width)

  • #2
    You need a pretty recent X server to take advantage of EXA and get the good 2D performance. Not sure if you need 1.6 or 1.599-something but certainly older X servers don't run so good.

    Not sure if this is the problem in your case but something to check.


    • #3
      Running 1.5.1 currently, I'll wait till a formal release of 1.6 is out before wandering there

      Trying different things from git trunks has the tendency of checking out during times when components do not work together well, or right in the middle of a commit series, etc.

      Is the X server the only cause?


      • #4
        EXA has preformed well for me for a while now. xserver 1.5 should be fine for the most part. 1.6 mainly improves font rendering preformance. Are you using kde 4 by any chance? IIRC kde 4 uses render bits that aren't accelerated with EXA at the moment.


        • #5
          I'm using JWM


          • #6
            I had the same performance problem with old kernels. Make sure you are using at least radeon kernel module 1.29:
            ~$ dmesg | grep drm
            [   51.116330] [drm] Initialized drm 1.1.0 20060810
            [   51.146754] [drm] Initialized radeon 1.29.0 20080613 on minor 0
            [   51.998257] [drm] Setting GART location based on new memory map
            [   51.999989] [drm] Loading R500 Microcode
            [   52.000118] [drm] Num pipes: 1
            [   52.000132] [drm] writeback test succeeded in 1 usecs


            • #7
              I am using 2.6.28 and the module that comes with (1.29):
              bash-3.2$ dmesg | grep drm
              [drm] Initialized drm 1.1.0 20060810
              [drm] Initialized radeon 1.29.0 20080528 on minor 0
              [drm] Setting GART location based on new memory map
              [drm] Loading R500 Microcode
              [drm] Num pipes: 1
              [drm] writeback test succeeded in 1 usecs
              [drm] Num pipes: 1
              [drm] Loading R500 Microcode
              [drm] Num pipes: 1
              bash-3.2$ uname -a
              Linux Valinor 2.6.28-laxy #1 SMP Wed Jan 7 19:23:38 EET 2009 x86_64 Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz GenuineIntel GNU/Linux


              • #8
                You can trace where the driver is falling back to software by editing radeon_exa.c and changing:
                #define RADEON_TRACE_FALL 0
                #define RADEON_TRACE_FALL 1

                then fallbacks will be logged in your xorg log. (note your log could get really big).


                • #9
                  Would that be useful? I mean, wouldn't you already know those?


                  • #10
                    Originally posted by curaga View Post
                    Would that be useful? I mean, wouldn't you already know those?
                    EXA works fine for most people (myself included). This would determine what your set of apps is doing to cause a slowdown, assuming the slowdown is fallback related.