Skip to content

Syphon output (server) unsupported on legacy OpenGL / Apple Silicon #620

Description

@aalex

Summary

Add Syphon output — publish MapMap's rendered output composition as a Syphon server so other macOS apps (Resolume, MadMapper, OBS, recorders, …) can receive it. Syphon input (receiving) already works and is merged.

Status

A Phase‑1 implementation exists but is disabled behind a build flag (SYPHON_OUTPUT_EXPERIMENTAL, off by default), because it does not work on Apple Silicon:

  • MapMap renders with legacy OpenGL, which macOS translates to Metal (AppleMetalOpenGLRenderer) on Apple Silicon.
  • SyphonOpenGLServer cannot create its IOSurface‑backed texture in that context: the log floods with cannot create texture, Metal texture cache was released and no frame is ever published (no server appears in Syphon clients).

The Syphon input source is unaffected.

Path forward

Output needs a modern rendering path for the published frame — a Core‑profile OpenGL or Metal context whose textures Syphon can wrap — rather than MapMap's legacy GL context. This is a larger architectural change than the Syphon work itself.

Repro (with the flag on)

  1. Build with SYPHON_OUTPUT_EXPERIMENTAL defined (see src/src.pri).
  2. Open the output window; View → Publish Syphon Output.
  3. Observe the cannot create texture, Metal texture cache was released flood, and that no server appears in a Syphon client.

Notes

Kept, compiled, behind the flag: SyphonOutput / SyphonServerImpl.mm (a SyphonOpenGLServer wrapper) + an OutputGLCanvas publish hook + a "Publish Syphon Output" View‑menu toggle. Tracked for the roadmap.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions