Announcement

Collapse
No announcement yet.

R600 Gallium3D Now Does Buffer Copies With CP DMA

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • phoronix
    started a topic R600 Gallium3D Now Does Buffer Copies With CP DMA

    R600 Gallium3D Now Does Buffer Copies With CP DMA

    Phoronix: R600 Gallium3D Now Does Buffer Copies With CP DMA

    Marek Ol??k has implemented support for buffer copying using the CP DMA engine on Radeon HD 4000 "R700" GPUs and newer...

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

  • VinzC
    replied
    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.

    Leave a comment:


  • marek
    replied
    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, 08:00 PM.

    Leave a comment:


  • Adarion
    replied
    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.

    Leave a comment:


  • mcgreg
    replied
    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.

    Leave a comment:


  • entropy
    replied
    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, Christian!

    Leave a comment:


  • DanL
    replied
    Originally posted by PeterKraus View Post
    Seriously? I do think that a journalist with 8 years of insight should not get confused by naming conventions, which are easily decipherable on the xorg website...
    You're the one getting confused. The driver is named r600g (as in R600 Gallium3D) and it supports RadeonHD 2000-6000 series. Support for CP DMA was added to that driver, but is currently disabled for R600-based cards.
    An English Lit major probably wouldn't have the common sense to figure that out...

    Leave a comment:


  • Deathsimple
    replied
    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.

    Leave a comment:


  • PeterKraus
    replied
    Originally posted by 89c51 View Post
    I wouldn't blaim him, at least for radeon stuff. With all the crazy numbering its guaranteed you ll get a headache trying to figure it out.
    Seriously? I do think that a journalist with 8 years of insight should not get confused by naming conventions, which are easily decipherable on the xorg website...

    Leave a comment:


  • 89c51
    replied
    Originally posted by PeterKraus View Post
    Once upon a time Michael used to proofread his articles. His beginnings back in 2004-2007 were quite good, the articles were legible, and you didn't have to second guess meanings of random quotes taken out of context.

    Michael, please, hire some English Lit Major to proofread your articles. I am sure you can match Starbucks' minimum wage!
    I wouldn't blaim him, at least for radeon stuff. With all the crazy numbering its guaranteed you ll get a headache trying to figure it out.

    Leave a comment:

Working...
X