parallel (true) triple buffering

Discussion in 'Programming/Html' started by snoukkis, Nov 27, 2014.

  1. snoukkis

    snoukkis Guest

    Messages:
    1
    Likes Received:
    0
    GPU:
    Radeon HD 7950 / 3GiB
    Hi!

    I'm developing a simple input-lag sensitive application as part of my masters thesis. I need to use vsync but I also need to sample mouse input as close to monitor refresh as possible. It seems to me triple buffering would solve my problem.

    I was doing some testing with this code from Lazy Foo' Productions:
    lazyfoo.net/tutorials/SDL/51_SDL_and_modern_opengl/index.php
    lazyfoo.net/tutorials/SDL/51_SDL_and_modern_opengl/51_SDL_and_modern_opengl.zip (tutorial source code)
    It renders a quad on screen, no projection or shading or anything fancy.

    On my Radeon HD 7950 I enabled vsync and triple buffering in Catalyst settings and printed out render loop durations. Unfortunately the loop durations are ~1/60 s. I was expecting something below 1ms for rendering a quad. It seems SDL_GL_SwapWindow(gWindow) blocks until the monitor is updated. :(

    It seems the OpenGL Triple buffering in Catalyst settings is of the "flip queue/render ahead queue" kind that doesn't drop frames when flipping (back) buffers. Instead it's blocking when the flip queue is full like with double buffering with vsync.
    See a detailed discussion here:
    forum.guru3d.com/showthread.php?t=376645

    Also see an old Anandtech article for the difference if my explanation was unclear: anandtech.com/show/2794 .

    Question:
    Is it possible to implement parallel (true) triple buffering in OpenGL, Direct3D or Mantle?

    I'm planning on using OpenGL (modern pipeline). I'm not familiar with Direct3D or Mantle, but I might consider switching if they have what I need.



    Madness:
    "To be able to post links or images your post count must be 10 or greater. You currently have 0 posts.":bang:
     
    Last edited: Nov 27, 2014

Share This Page