No announcement yet.

R600 Gallium3D Now Does Buffer Copies With CP DMA

  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    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.


    • #12
      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.
      Stop TCPA, stupid software patents and corrupt politicians!


      • #13
        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.


        • #14
          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.

          Thank you indeed, Christian.