This is fixed/updated in the PSW-OpenGL3 branch. I added GL3-friendly macros in the style of CGLMacro.h to SyphonServer.m GL2 uses the EXT version of VAOs, and the ARB version won’t work, whereas GL3 uses the ARB version and the EXT won’t work.
Resolume Avenue 4 still needs the current context set. They are not using texture-publish, but instead using the framebuffer bind, and doing their own rendering/blitting/whatever. They also appear to be using GLEW so who knows what is going on. VDMX, CoGe, and the test apps are all fine with the changes.
Re: The performance thing. I’d be really interested to see how that actually plays out. Since context is per-thread, it must be using TLS to store the active CGL context. Accessing a TLS variable is not all that expensive, so I’d be really surprised if there was significant performance overhead. That being said, it was interesting to poke through and see where the GL2/3 difference was in VAO’s, and since Syphon uses the CGLMacro style, I have no problem matching that style.