if all you’re trying to do is capture the GUI, what if you send the unity screen texture to syphon in OnGUI() and do something like:
if(Event.current.type == EventType.Repaint)syphonServerPublishTexture(blah);
no idea if it’ll work, or even if this relates to your issue.
Sounds like you have some effects you’re using OnPostRender with that are conflicting with syphon rendering order?
I’d take a look at a small unity project in a .zip showing the issue if you want to post one.
Anton: he’s using Unity’s wrapped Texture2D.ReadPixels, which ain’t quite the same as the direct glReadPixels command. if he wanted to write a plugin he might be able to use glCopyTexSubImage2D and such, but that’s a whole nother can of worms.