obsproject / obsproject/obs-studio

Third-party shaders not compatible with new Metal renderer

Open
#12,709 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
76.4k
Forks
10.2k
Avg merge
4d 23h
Merged PRs (30d)
12

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report names no source files, tests, or entry points. Start by identifying a specific third-party plugin and shader failure under the Metal renderer; done would require a concrete compatibility issue that can be addressed in OBS or reported to the plugin developers.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.