# Update on Vulkan Support

**URL:** <https://discourse.vtk.org/t/update-on-vulkan-support/2819>\
**Category:** Development\
**Created:** [March 13, 2020, 2:12pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819 "2020-03-13T14:12:30Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_Jackson](https://discourse.vtk.org/user_avatar/discourse.vtk.org/michael_jackson/32/61_2.png) [@Michael\_Jackson](https://discourse.vtk.org/u/Michael_Jackson)\
**Post date:** [March 13, 2020, 2:12pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/1 "2020-03-13T14:12:30Z")

</div>

Is there any kind of roadmap or update on supporting either macOS Metal or Vulkan in VTK? Time is marching on and at some point sooner rather that later those of us trying to support macOS will have a decision to make regarding either walking away from macOS support or walking away from VTK.

–  
Mike Jackson

---

<div class="post-metadata">

**Author:** ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)\
**Post date:** [March 16, 2020, 5:22pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/2 "2020-03-16T17:22:29Z")

</div>

I believe the plan is to add Vulkan support (no timeline as of yet) and then use MoltenVK or a similar bridging library to support Metal.

Cc: @ken-martin

---

<div class="post-metadata">

**Author:** ![ken-martin](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ken-martin/32/884_2.png) [@ken-martin](https://discourse.vtk.org/u/ken-martin)\
**Post date:** [March 16, 2020, 6:55pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/3 "2020-03-16T18:55:40Z")

</div>

I am actively developing a vulkan backend at least to the point where if apple removes OpenGL we can pretty quickly get _ **something** _ going for VTK. It will use MoltenVK to drive Metal. It exists and passes some tests. It is currently missing an absurd number of features but it is what I am working on right now and I plan to continue fleshing it out for at least a couple more weeks if not more. My current goal is risk mitigation so that should something happen we have a reasonable head start on addressing it.

It would be nice sometime in the next few months to start preparing/examinging what changes would be required in PV to use vulkan. Right now PV directly interfaces with some OpenGL classes and that would need to be rersolved.

---

<div class="post-metadata">

**Author:** ![Michael\_Jackson](https://discourse.vtk.org/user_avatar/discourse.vtk.org/michael_jackson/32/61_2.png) [@Michael\_Jackson](https://discourse.vtk.org/u/Michael_Jackson)\
**Post date:** [March 17, 2020, 4:16pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/4 "2020-03-17T16:16:15Z")

</div>

@ken-martin Thanks for the update. It is nice knowing that some work is going on in the background. I can’t predict the future and I have no “insiders” information at Apple but my guess is that macOS 10.16 that comes out this fall (assumes that Apple sticks to this schedule) would still have OpenGL but I’m fairly sure 10.17 that would come out in fall of 2021 would have OpenGL removed.

---

<div class="post-metadata">

**Author:** ![Marco](https://discourse.vtk.org/user_avatar/discourse.vtk.org/marco/32/1461_2.png) [@Marco](https://discourse.vtk.org/u/Marco)\
**Post date:** [November 12, 2020, 5:53pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/5 "2020-11-12T17:53:29Z")

</div>

Hi guys.

I know this thread is quite old, but I just wanted to know if you believe these Vulkan-related plans in VTK (I think this is the best way to go as well) will be compatible with the Java wrapping for VTK?  
Maybe through the lwjgl / lwjglx / lwjgl3-awt libraries?

Cross-platform support for usage of VTK from a Java application has improved a lot lately in VTK, and it would be great if these integration possibilities will be kept for the future as well.

Any feedback on this will be appreciated.  
Regards,

Marco Sambin

---

<div class="post-metadata">

**Author:** ![ryanmann](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ryanmann/32/4377_2.png) [@ryanmann](https://discourse.vtk.org/u/ryanmann)\
**Post date:** [December 3, 2021, 9:04pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/6 "2021-12-03T21:04:06Z")

</div>

Where can I find updates on the MoltenVK work in VTK? I found the kitware vulkan fork [here](https://gitlab.kitware.com/ken-martin/vtk/-/tree/vulkan/Rendering/Vulkan). It looks like the work didn’t relate to iOS just yet, but is it enough to be able to determine if it’s a/the best path forward for VTK to run on future Macs?

I see the Jogl-based work that @Martin3d has mentioned [here](https://discourse.vtk.org/t/building-vtk-for-mac-m1-arm-undefined-symbols-jawt-getawt/7181/11). We’ve been experiencing issues with Coretto OpenJDK 8 and Jogl 2.4 on iOS 11. There are fixes in OpenJDK 11 for Swing/AWT for Mac by implementing a Metal-based pipeline, which helps with our 2D graphics, but which don’t help for our 3D-based applications.

Any thoughts on the future, and what we should work toward?

---

<div class="post-metadata">

**Author:** ![Martin3d](https://discourse.vtk.org/user_avatar/discourse.vtk.org/martin3d/32/4303_2.png) [@Martin3d](https://discourse.vtk.org/u/Martin3d)\
**Post date:** [December 7, 2021, 3:25pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/7 "2021-12-07T15:25:19Z")

</div>

Hi @ryanmann,

Do you mean issues on iOS 11 or macOS 11? I presume the later. If you have feedbacks about JOGL 2.4 on macOS, I would be interested to know more about it. Do not hesitate to answer on the [JOGL forum thread](https://forum.jogamp.org/JOGL-for-Mac-ARM-Silicon-td4040887.html) discussing this.

I also referenced the [known problems with JOGL 2.4](https://github.com/jzy3d/jogl/issues) here to keep a readable overview.

---

<div class="post-metadata">

**Author:** ![ryanmann](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ryanmann/32/4377_2.png) [@ryanmann](https://discourse.vtk.org/u/ryanmann)\
**Post date:** [December 7, 2021, 3:27pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/8 "2021-12-07T15:27:00Z")

</div>

Oh yes, I meant macOS 11, pardon me.

---

<div class="post-metadata">

**Author:** ![ryanmann](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ryanmann/32/4377_2.png) [@ryanmann](https://discourse.vtk.org/u/ryanmann)\
**Post date:** [December 7, 2021, 3:34pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/9 "2021-12-07T15:34:54Z")

</div>

Our group hasn’t gotten our hands on a Mac built on M1 processor yet. After we do that, we’ll upgrade to JDK 17 where the graphics pipeline should support Metal and the new Apple Silicon architecture is supported, then try our Jogl-based applications. We’re already using Jogl 2.4 in our cross-platform apps.  
Happy to follow up with more information.

---

<div class="post-metadata">

**Author:** ![Martin3d](https://discourse.vtk.org/user_avatar/discourse.vtk.org/martin3d/32/4303_2.png) [@Martin3d](https://discourse.vtk.org/u/Martin3d)\
**Post date:** [December 8, 2021, 9:49am UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/10 "2021-12-08T09:49:45Z")

</div>

Something you may find interesting if you intend to go toward recent JDKs : I started [evaluating the Panama project (a.k.a JEP-412)](https://github.com/jzy3d/panama-gl), which simplifies access to native libs. It may be an interesting direction to either replace or complement JOGL (the main contributor left, hence my implication on upgrading JOGL for recent macOS). Look at the [issue list](https://github.com/jzy3d/panama-gl/issues) to have a better idea of the open topics.

I think this tooling could be interesting to have Vulkan accessible from Java. Same for Metal that could probably be accessed directly without passing through MoltenVK.

---

<div class="post-metadata">

**Author:** ![ryanmann](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ryanmann/32/4377_2.png) [@ryanmann](https://discourse.vtk.org/u/ryanmann)\
**Post date:** [December 8, 2021, 1:17pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/11 "2021-12-08T13:17:50Z")

</div>

Yes, I haven’t tried the JEP package yet, because it looked like most of our JNI-based native libraries will continue to work (for now?). Re-writing our implementations of Jogl and VTK will probably be required anyway for Mac, so it will be interesting if that “incubated” JEP project gets better support in the meantime. Seeing your examples will definitely help when we decide to move over our implementations.  
Switching to Metal or Vulkan (with JEP or some other Java native access) would be probably more work in the long run, considering how much we’d have to pay attention to details that would otherwise be abstracted (hence why we have used VTK in the past).

---

<div class="post-metadata">

**Author:** ![ken-martin](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ken-martin/32/884_2.png) [@ken-martin](https://discourse.vtk.org/u/ken-martin)\
**Post date:** [December 9, 2021, 3:10am UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/12 "2021-12-09T03:10:16Z")

</div>

The vulkan/webgpu work in C++ is still on hold for now. It is progressing in vtk.js and that architecture will be adopted here (either in vulkan or webgpu the basic architecture is the same) We’ve been focusing on adding OpenXR support lately which is in reasonable shape now. But this is definitely still on our todo list.

---

<div class="post-metadata">

**Author:** ![ryanmann](https://discourse.vtk.org/user_avatar/discourse.vtk.org/ryanmann/32/4377_2.png) [@ryanmann](https://discourse.vtk.org/u/ryanmann)\
**Post date:** [December 9, 2021, 1:29pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/13 "2021-12-09T13:29:36Z")

</div>

Thanks for the update, @ken-martin! If there’s anything someone from our organization can help with/contribute to/test, please let me know.

---

<div class="post-metadata">

**Author:** ![seanm](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/s/a88e4f/32.png) [@seanm](https://discourse.vtk.org/u/seanm)\
**Post date:** [November 2, 2022, 6:53pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/14 "2022-11-02T18:53:50Z")

</div>

> The vulkan/webgpu work in C++ is still on hold for now.

As it’s been almost a year, I thought I’d just give a friendly ping… Any news on Vulkan support? (Or more generally addressing the issue of Apple considering OpenGL deprecated?)

Happily, OpenGL is at least still present and working reasonably on macOS 13 Ventura (released 2 days ago).

---

<div class="post-metadata">

**Author:** ![Marco](https://discourse.vtk.org/user_avatar/discourse.vtk.org/marco/32/1461_2.png) [@Marco](https://discourse.vtk.org/u/Marco)\
**Post date:** [December 15, 2022, 5:29pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/15 "2022-12-15T17:29:25Z")

</div>

Hi all.  
I am also very interested in this topic, basically my query is exactly the same as the one above by Sean.

Any feedback from the VTK team?

---

<div class="post-metadata">

**Author:** ![Martin3d](https://discourse.vtk.org/user_avatar/discourse.vtk.org/martin3d/32/4303_2.png) [@Martin3d](https://discourse.vtk.org/u/Martin3d)\
**Post date:** [December 15, 2022, 5:35pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/16 "2022-12-15T17:35:12Z")

</div>

So do I 🙂 any news from Apple plans willing un-deprecate OpenGL would snooze my question however !

---

<div class="post-metadata">

**Author:** ![Marco](https://discourse.vtk.org/user_avatar/discourse.vtk.org/marco/32/1461_2.png) [@Marco](https://discourse.vtk.org/u/Marco)\
**Post date:** [December 15, 2022, 5:38pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/17 "2022-12-15T17:38:02Z")

</div>

Hi Martin.  
Have you heard any “rumors” about Apple’s intention to un-deprecate OpenGL?  
Or is this just a hope? 😉

Thanks in advance for sharing any insight you may have on this topic.

---

<div class="post-metadata">

**Author:** ![Martin3d](https://discourse.vtk.org/user_avatar/discourse.vtk.org/martin3d/32/4303_2.png) [@Martin3d](https://discourse.vtk.org/u/Martin3d)\
**Post date:** [December 15, 2022, 6:07pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/18 "2022-12-15T18:07:18Z")

</div>

Just a hope after not understanding the will to deprecate it for years !

---

<div class="post-metadata">

**Author:** ![Martin3d](https://discourse.vtk.org/user_avatar/discourse.vtk.org/martin3d/32/4303_2.png) [@Martin3d](https://discourse.vtk.org/u/Martin3d)\
**Post date:** [December 22, 2022, 9:34am UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/19 "2022-12-22T09:34:24Z")

</div>

One thing coming back to my mind : in the case OpenGL get deprecated on macOS, there is [an option to make it work using Vulkan+MoltenGL+MESA+Zink](https://community.khronos.org/t/how-to-use-opengl-on-zink-mesa-moltenvk-and-macos) (!).  
I actually was not able to achieve this myself but others did. The post may be useful to contiinue discussing issues on this point.

---

<div class="post-metadata">

**Author:** ![jaswantp](https://discourse.vtk.org/user_avatar/discourse.vtk.org/jaswantp/32/10046_2.png) [@jaswantp](https://discourse.vtk.org/u/jaswantp)\
**Post date:** [April 1, 2023, 4:22pm UTC](https://discourse.vtk.org/t/update-on-vulkan-support/2819/20 "2023-04-01T16:22:04Z")

</div>

VTK just got an experimental [WebGPU-C++ polydata mapper](https://gitlab.kitware.com/vtk/vtk/-/tree/master/Rendering/WebGPU) 🎉. Currently, it works in webassembly on Chrome 113 developer build and on Linux using Vulkan. Work is ongoing to bring more functionality. The plan is to use Dawn-C++ to enable Metal rendering on Apple, Vulkan on linux, android and DirectX on windows. Metal is Apple’s answer to Vulkan that’s not as scary as Vulkan, yet not as fragile as OpenGL.
