obsproject / obsproject/obs-studio
Third-party shaders not compatible with new Metal renderer
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
- Have 3rd-party plugin installed that uses custom shader code
- Launch OBS Studio
- Configure OBS Studio to use the Metal renderer on macOS
- Relaunch
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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