Synchronizing access to resources

Home Forums Syphon Syphon Development – Developer Synchronizing access to resources

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #25773
    mrft
    Participant

    Hello,

    We have been working on something that should provide similar capabilities as Syphon on Windows.

    We started by naively sharing single-surface textures between applications, without synchronizing the access. In some cases this can cause flickering when one app is reading the texture while another app is rendering to that texture at the same time.

    Some options to resolve this is to lock the texture in some way. This could cause delays in the reader, if it has to wait for the writer to finish rendering. An even better solution would be some kind of double texture, so you have a front-buffer that can be used safely by the reader, and a back-buffer that can be used safely by the writer.

    We were wondering how this problem has been solved in Syphon, maybe this gives us some ideas on how to solve this.

    So if one of the developers of Syphon could tell us something more, or point us to the right place in the source-code, so we could check how it’s done, we’d be grateful.

    Thanks a lot.

    #25774
    bangnoise
    Keymaster

    On MacOS, synchronization is handled by the OS, which makes things very simple for us. Changes to the IOSurface are pushed on glFlush() and picked up on the receiving end on glBindTexture(), with the driver taking care of synch. Discussion of its use (not implementation) is in the MacOS header CGLIOSurface.h.

    Sorry not to have any useful advice for Windows (maybe vade does) – it sounds like double-buffering might be best if you can efficiently keep track of read/write buffer state in all processes.

    We’d be super-interested to hear more about your project – it would be great if you dropped an e-mail to contact@v002.info.

    #26243
    mrft
    Participant

    Hello,

    thanks for the reply. Bummer that you didn’t have to solve the same problems on OSX 🙂

    What we have been working on has been called Wyphon ;), and some info can be found at
    http://wyphon.wordpress.com
    and you’ll find repositories of what we already have so far on github
    https://github.com/mrft/Wyphon
    https://github.com/mrft/Wyphon-GL-example
    https://github.com/mrft/Wyphon-DX11-examples

    and a freeframe plugin built upon it at https://github.com/meliody/DXTexture2FreeFrame

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.