Live data from Hacker News

OBS Studio Gets a New Renderer

obsproject.com

31–40 of 78 posts

Re: OBS Studio Gets a New Renderer

#31

> Metal takes Direct3D's object-oriented approach one step further by combining it with the more "verbal" API design common in Objective-C and Swift in an attempt to provide a more intuitive and easier API for app developers to use (and not just game developers) and to further motivate those to integrate more 3D and general GPU functionality into their apps. slightly off-topic perhaps, but i find it amazing that an o…

There is a Metal Obj-C API, Metal implementation is C++.

No it's not - the compiler for MSL is of course C++ because it's LLVM but the runtime is absolutely written in objc (there weren't even C++ bindings until recently).

Re: OBS Studio Gets a New Renderer

#32

The submitted title buries the lede. It should be: “OBS Studio Gets A New Renderer: How OBS Adopted Metal”

Also Mac only, since non Mac users won't have a clue what metal means in this context.

“Mac-only” was disappointing to read, but OBS’ render performance has been fine on macos and linux even with older hardware. James Webb calls anything heavier than helium “metal.”

Re: OBS Studio Gets a New Renderer

#33

> Metal takes Direct3D's object-oriented approach one step further by combining it with the more "verbal" API design common in Objective-C and Swift in an attempt to provide a more intuitive and easier API for app developers to use (and not just game developers) and to further motivate those to integrate more 3D and general GPU functionality into their apps. slightly off-topic perhaps, but i find it amazing that an o…

It's been possible for quite some time.

In the early 2000's there was a book on using Direct3D from C# that was pretty influential as far as changing people's assumption that you couldn't do high performance graphics in a GC'd language. In the end a lot of the ideas overlap with what c/c++ gamedevs do, like structuring everything around fixed sized tables allocated at load time and then minimal dynamic memory usage within the frame loop. The same concepts can apply at the graphics API level. Minimize any dynamic language overhead by dispatching work in batches that reference preallocated buffers. That gets the language runtime largely out of the way.

Re: OBS Studio Gets a New Renderer

#34

Earlier quoted context omitted.

Also Mac only, since non Mac users won't have a clue what metal means in this context.

“Mac-only” was disappointing to read, but OBS’ render performance has been fine on macos and linux even with older hardware. James Webb calls anything heavier than helium “metal.”

Well Metal is the limitation there.

But they’ve clearly learned a lot that will help in the future with other modern APIs like DX12 or Vulcan.

Re: OBS Studio Gets a New Renderer

#35
Great article. The description of how they handle shaders is just bonkers to me.

Is that really what you’d have to go through to have a working system with plugin shaders from 3rd parties on multiple backends? Or is mostly the result of time and trying to keep backwards compatibility with existing plugins?

Telling external devs “Write a copy in every shader language” would certainly be easier for the core team but that’s obviously undesirable.

Re: OBS Studio Gets a New Renderer

#38
post #35

Great article. The description of how they handle shaders is just bonkers to me. Is that really what you’d have to go through to have a working system with plugin shaders from 3rd parties on multiple backends? Or is mostly the result of time and trying to keep backwards compatibility with existing plugins? Telling external devs “Write a copy in every shader language” would certainly be easier for the core team but th…

Transpiling shaders is what most game engines have done for a decade now. Everybody thinks it's stupid in that field as well, but there is no viable alternative.

Re: OBS Studio Gets a New Renderer

#39

Earlier quoted context omitted.

Also Mac only, since non Mac users won't have a clue what metal means in this context.

“Mac-only” was disappointing to read, but OBS’ render performance has been fine on macos and linux even with older hardware. James Webb calls anything heavier than helium “metal.”

It actually wasn't, though.

That's besides the point though, the OS has been trash for realtime encoding for over a decade now. At the very least you have to write a script to repeatedly renice the process back to the top when it tries to protect you from the excessive thermal load lmao

Re: OBS Studio Gets a New Renderer

#40

> Metal takes Direct3D's object-oriented approach one step further by combining it with the more "verbal" API design common in Objective-C and Swift in an attempt to provide a more intuitive and easier API for app developers to use (and not just game developers) and to further motivate those to integrate more 3D and general GPU functionality into their apps. slightly off-topic perhaps, but i find it amazing that an o…

No, it doesn't. You won't find it used much if at all at these levels of the OS. Once you get past cocoa and friends it's restricted subsets of C++ (IOKit for example)
Post reply on HN