Page 2 of 2 FirstFirst 12
Results 11 to 14 of 14

Thread: R600 Gallium3D Now Does Buffer Copies With CP DMA

  1. #11
    Join Date
    Sep 2007
    Posts
    80

    Default

    Could someone deliver some facts about this patch?
    Any speed ups in some games? Is it noticeable?

    Unfortunately my self built kernel 3.8 from git isn't working well here, I'm getting random segfaults from various programmes.

  2. #12
    Join Date
    Mar 2009
    Location
    in front of my box :p
    Posts
    769

    Default

    Quote Originally Posted by Deathsimple View Post
    SYNC vs. ASYNC DMA
    Thanks for the tech info. Postings like this make the forums go, and it stands out from all the Trollery lately here.

    And thanks to Marek and the other devs for getting things forward.

  3. #13
    Join Date
    Jan 2009
    Posts
    615

    Default

    I expect a small performance improvement in CPU-bound apps, because copying buffers using the CP DMA instead of streamout (=OpenGL transform feedback, we have been using it up to now) takes less space in the command stream, doesn't change any 3D states, and doesn't need any other resources (streamout needs an auxiliary buffer where the FILLED_SIZE register is stored). Also streamout requires 4-byte alignment. The CP DMA doesn't have that limitation.
    Last edited by marek; 01-09-2013 at 07:00 PM.

  4. #14
    Join Date
    Jun 2009
    Location
    Elsewhere
    Posts
    89

    Default

    Quote Originally Posted by Deathsimple View Post
    Well the text mixed up quite different things and isn't correct at all.

    It might be a bit confusing but we got two DMA engines on modern radeon hardware: An ASYNC DMA and a SYNC DMA!

    The CP DMA Marek is using is the SYNC DMA engine which runs in the same ring (or maybe let's call it "the same thread", cause that a term software devs usually understands better) as the rendering engine. So when you just want to copy data from A to B in between two rendering operations you use the CP DMA.

    Jerome is working on patches for the ASYNC DMA engine, which (for example) should be used for uploading texture data from the application to VRAM, cause that isn't something we usually do in between rendering operations.

    I just had the feeling that I should clarify that.

    Regards,
    Christian.
    Thank you indeed, Christian.

Tags for this Thread

Posting Permissions

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