Results 1 to 8 of 8

Thread: R500 XAA/EXA RadeonHD Performance

  1. #1
    Join Date
    Jan 2007
    Posts
    13,411

    Default 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.

    http://www.phoronix.com/vr.php?view=11753

  2. #2
    Join Date
    Jul 2007
    Posts
    402

    Default

    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. #3
    Join Date
    Oct 2007
    Location
    Toronto-ish
    Posts
    7,281

    Default

    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-29-2008 at 11:43 PM.

  4. #4
    Join Date
    Oct 2007
    Posts
    1,185

    Default

    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. #5
    Join Date
    Oct 2007
    Location
    Toronto-ish
    Posts
    7,281

    Default

    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. #6
    Join Date
    Oct 2007
    Posts
    1,185

    Default

    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 at 01:00 PM.

  7. #7

    Default ShadowFB

    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.

    Code:
    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. #8
    Join Date
    Oct 2007
    Location
    Toronto-ish
    Posts
    7,281

    Default

    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

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •