Recommended cross-platform GPU gfx

Hello,
I’d like to add GPU graphics to my VST3SDK + VSTGUI4 project.
I know apple deprecated openGL, I want the visualization to be cross-platform.
What I want to do is prototype pixel/fragment shader (glsl) on shadertoy and then bring it into the plugin. The vertex shader will be full-“screen” quad.
I was thinking about vulkan (win+linux) and moltenvk (macOS).
I’d like to make it an MIT licensed library and publish so others don’t have to suffer aswell.
Do you have any recommendations of what I need to do in a fresh VST3SDK project to add this?
I want VSTGUI4 to be the “upper section” and the GFX view to be the lower section.
For the vulkan implementation I’ve found this the hello world example seems very reasonable but I’m uncertain how to make it mesh with a VST3SDK project.
Or is openGL still a valid option?

Last time I checked, the moltenvk implementation was not meant to be used inside a plug-in. So two different moltenvk implementations won’t work in one process. So this normally is a no-go for VST plug-ins. This was a few years back, maybe this has changed, but you should check this first.
Another option is to use a native WebView and render via WebGPU or WebGL.

Thank you very much Mr. Scheffler!
That’s so sad to hear … apple really did us a solid one to ditch openGL, it’s so bad that you have to advise using web tech in a vst D: sacrilegeous!
Currently I’m looking into LLGL as a graphics library though I’m also uncertain about the VST-side implementation:
I’ve figured out that I’d need to do something like copenglview, inheriting from CView but assuming writing that, how do I actually use my “CShaderView” in my controller? I can’t add it through the VSTGUI4 editor, can I?

Although OpenGL is deprecated on the Apple platform, there are ways to go around this limitation. For example Google Angle is a project that implements the OpenGL API and uses Metal under the cover.

I just did an experiment on my mac M2 studio machine using raylib/imgui/angle and it totally works. For the raylib “Hello World”, the (unlocked) frame rate goes from ~4000fps when using the macOS OpenGL implementation to ~17000fps when using Google Angle.

INFO: GL: OpenGL device information:
INFO:     > Vendor:   Google Inc. (Apple)
INFO:     > Renderer: ANGLE (Apple, Apple M2 Max, OpenGL 4.1 Metal - 83.1)
INFO:     > Version:  OpenGL ES 3.0.0 (ANGLE 2.1.20982 git hash: f3e3810b917c)
INFO:     > GLSL:     OpenGL ES GLSL ES 3.00 (ANGLE 2.1.20982 git hash: f3e3810b917c)

I have not tried to use this technique in a vst plugin (my experiment is a command line application), but I don’t see why that would not work…

@pongasoft Woah that’s so awesome!!
I had no idea something like that existed and that you published an application using it is great!
Thank you!
Besides what @Arne_Scheffler said about multiple instances in one process, that could work!!
Should you do anything VST3SDK, please let me know!
Any examples / guidance would be appreciated, I’m still a total noob :smiley: