Skip to content

Third-party shaders not compatible with new Metal renderer #12709

@PatTheMav

Description

@PatTheMav

Operating System Info

macOS 15

Other OS

No response

OBS Studio Version

32.0.0

OBS Studio Version (Other)

No response

OBS Studio Log URL

None

OBS Studio Crash Log URL

No response

Expected Behavior

  • Third-party shaders used by plugins work in OBS-Studio with the Metal renderer selected

Current Behavior

  • Third-party shaders used by plugins do not work consistently in OBS-Studio with the Metal renderer selected

Steps to Reproduce

  1. Have 3rd-party plugin installed that uses custom shader code
  2. Launch OBS Studio
  3. Configure OBS Studio to use the Metal renderer on macOS
  4. Relaunch
  5. Observe that shader-based effects or functionality of the 3rd-party plugin does not work at all or in unexpected ways

Anything else we should know?

This is a meta bug report for the new Metal renderer. At this time it is expected that shaders used by 3rd-party plugins can potentially break when the Metal renderer is used.

The Metal shader language (MSL) is based on C++14 and thus stricter than GLSL and HLSL, requires code to be more type-safe, does not automatically alias existing types into target types, and uses different functions than other shader languages.

The shader transpiler used by OBS Studio has only been tested to consistently support the shaders used by the app itself and cannot initially be compatible with any and all custom shaders in use by 3rd-party plugins.

Please report any compatibility issue of a third-party plugin's shaders with the Metal renderer to the developers of the plugin!

The plugin authors understand their shaders best and are also in the best position to report the actual underlying issue to the project so that either the shaders can be tweaked or the transpiler can be enhanced to support the specific shader code variation.

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