No announcement yet.

R500 XAA/EXA RadeonHD Performance

  • Filter
  • Time
  • Show
Clear All
new posts

  • R500 XAA/EXA RadeonHD Performance

    Phoronix: R500 XAA/EXA RadeonHD Performance

    The public release of AMD's "tcore" sample code is imminent, thereby steering the open-source development efforts toward R600 2D acceleration and the basis of the 3D support for the RadeonHD driver. However, in somewhat of a surprise, this afternoon XAA and EXA support was added to the RadeonHD driver for the R500 series. For those that aren't X enthusiasts or Linux veterans, XAA and EXA are architectures for providing 2D graphics acceleration. With this accelerated 2D support, we have benchmarked both XAA and EXA on the xf86-video-radeonhd driver as well as with the xf86-video-ati driver and the binary fglrx driver.

  • #2
    What does the EXA implementation lack at this point? Is it stuff that needs the 3d engine (blends)? Is offscreen pixmap stuff still waiting on drm work before it's really effective?

    I'm glad to hear that tcore will be released soon, I'd like to get a look at it and see if I can understand anything well enough to contribute.


    • #3
      Personally I found the existing drivers easier to understand than tcore. The main thing we expect tcore to help with is specific programming sequences and the initialization code for 2d acceleration on R/RV6xx parts. Looking at the changes Luc is pushing up might be the best way to come up to speed, since the diffs will probably be "just acceleration stuff" and, if you're lucky, will come in stages so you can see what each hunk of new code does.

      The actual 6xx 2d initialization code is pretty boring -- it just stuffs a bunch of magic instructions in what we call an "indirect buffer" and sets up the command processor to execute that buffer every time the driver switches from submitting 3d instructions back to submitting 2d instructions. The instructions in the indirect buffer just reset the 3d engine to a known state, so that emulated 2d instructions work properly.

      I believe that both blends and rotation need the 3d engine.
      Last edited by bridgman; 01-30-2008, 12:43 AM.


      • #4
        Does this 2D acceleration apply to X12x0 IGP's? I know their code name is RS690, but don't they share more in common with R500 parts than R600? (I know their 3D hardware is based off R400/X700).


        • #5
          I doubt Luc has had time to test on a 690 so it may not work *today*, but the 2d acceleration block is the same between 690 and 5xx. It probably wouldn't hurt to give it a try if you're OK doing it as a "tester" rather than a "user".


          • #6
            The 2D acceleration seems to work well enough (dragging windows no longer conjures memories of acid trips), but my audio is stuttering now. Hmm. I'll keep playing with it.

            EDIT: Actually, I'm not sure if the acceleration is working. The smoother scrolling could be due to the new kernel.

            For reference, I'm using Ubuntu 7.10 with a custom 2.6.24 tickless kernel, and an MSI K9AG Neo2 w/X1250.
            Last edited by DanL; 01-30-2008, 02:00 PM.


            • #7

              Since the test didn't take in account the ShadowFB acceleration method, I tried to test it with my MacBookPro (Core Duo 2.16GHz, Radeon Mobility X1600) under Ubuntu Linux 7.10.

              GtkPerf 0.40            ShadowFB      XAA
              GtkEntry                    0,17     0,19
              GtkComboBox                16,18    71,38
              GtkComboBoxEntry           15,43    32,24
              GtkSpinButton               1,50     1,56
              GtkProgressBar              0,89     0,91
              GtkToggleButton             8,83    39,25
              GtkCheckButton              8,52    25,72
              GtkRadioButton             10,12    27,76
              GtkTextView - Add text     47,59   145,11
              GtkTextView - Scroll       23,10    32,98
              GtkDrawingArea - Lines      9,70     5,86
              GtkDrawingArea - Circle    36,41    58,84
              GtkDrawingArea - Text       8,83    65,80
              GtkDrawingArea - Pixbufs    0,80     8,43
              Total time                188,08   516,04
              Only the "GtkDrawingArea - Lines" test is faster (less than 2x), all other tests are up to 10x slower when using XAA.
              CPU usage during the test was also about the same at about 50-70%.


              • #8
                What I took away from the XDS discussions on 2d was that until we see full implementations of EXA running over TTM or similar the main benefit of "2d acceleration" will be simple things like dragging windows and scrolling.

                I put "2d acceleration" in quotes because all of the interesting EXA "2d calls" actually need to run on the 3d engine