Triple Buffering on the 360

Discussion in 'Console Technology' started by Quarke, Oct 30, 2010.

  1. kagemaru

    Veteran

    Joined:
    Aug 23, 2010
    Messages:
    1,358
    Likes Received:
    10
    Location:
    Ohio
    I didn't think triple buffering had anything to do with improving frame rate, only having an extra buffer to call on when your next frame isn't done rendering to avoid tearing, no?

    I'm sorry but I see no reason why anyone here would care to insult anyone. People took the time and effort to try and explain to you, quite clearly, how triple buffering is possible on the 360. It's up to you at that point to take the time to read, comprehend, and consider what they are trying to teach you.
     
  2. function

    function None functional
    Legend Veteran

    Joined:
    Mar 27, 2003
    Messages:
    5,136
    Likes Received:
    2,248
    Location:
    Wrong thread
    It was wrong for me to say the backbuffer goes in edram - the backbuffer is in main memory. I was using the term loosely (incorrectly) to describe the portion of what will make up the backbuffer currently being rendered. If you aren't tiling then that's the whole frame.

    If you time the copy-out-to-backbuffer correctly I understand that you can get the same effect as double buffering, but without having two frame buffers in main memory (I think I read that here on B3D actually). [Edit]Can you have a backbuffer without a frontbuffer? Wouldn't you just have a "framebuffer"?[/Edit]

    It seems likely then that if you were using two buffers (back and front in main memory) you could achieve a similar effect to triple buffering by starting to render [a new frame] to edram immediately after finishing work on the backbuffer. [Dumb ass Edit. Doh.]...
    Ah, I get it now. Page 1. :(
    [/Edit]


    It might be helpful to think of triple buffering more as something that reduces the severity of frame rate drops over a period of time rather than something that simply "increases" frame rate. It doesn't increase the work you have to do per frame, or the number of copy-outs from edram for each frame, but it does reduce the amount of time your renderer has to wait after finishing a frame before it can start on the next.

    Another way to eliminate this wait is to ignore vsync, but the cost is tearing.
     
    #62 function, Nov 2, 2010
    Last edited by a moderator: Nov 2, 2010
  3. Weaste

    Newcomer

    Joined:
    Nov 13, 2007
    Messages:
    175
    Likes Received:
    0
    Location:
    Castellon de la Plana
    I suppose that you could if you could resolve the whole frame in there without tiling.
     
  4. function

    function None functional
    Legend Veteran

    Joined:
    Mar 27, 2003
    Messages:
    5,136
    Likes Received:
    2,248
    Location:
    Wrong thread
    Even if you were tiling, you might be able to get to work on the first tile of a third (currently bufferless) frame.

    ... and if you were tiling horizontally, maybe you could copy out and overwrite part of the front buffer, once that part had been read out to the display device, leaving you free to start on the next tile.

    Would be pretty cool if you could do this sort of thing.
     
  5. skytiger

    Newcomer

    Joined:
    Feb 19, 2013
    Messages:
    1
    Likes Received:
    0
    I think EDRAM helps decouple things, but there is only 1 EDRAM and a resolve takes longer than a flip, so it doesn't constitute triple buffering.

    An EDRAM resolve can overlap a flip opportunity (vblank)

    If that happens you have no choice but to wait for the next flip (otherwise you could show the same frame ad infinitum)

    But!

    If you know how long the EDRAM resolve takes, and you have access to vertical timing information you can decide if it is safe to request a resolve now or wait until after the next flip or start drawing the next frame ...

    Another approach to tearing is to turn vsync off but only flip buffers when the vertical trace is near to the top, or bottom of the screen.

    That is what old video games seem to do ...
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...