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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions