MoltenVK
MoltenVK copied to clipboard
MoltenVK Enhancement Roadmap
This list provides a place to consolidate the priorities and status of some of the larger MoltenVK enhancements whose development is either underway, or will be soon. This list will also help to prevent multiple MoltenVK devs unknowingly working independently on significant enhancements.
If you are, or soon plan to be, working on a significant MoltenVK enhancement, please comment below, and we'll add it to the list (not every enhancement needs to go on this list, if you are banging out a small enhancement). If you want to take over one of the un-started enhancements, let us know below and it can be assigned to you.
If you are waiting on a significant enhancement, and want to request that it be added to the list, please request that in the issue for that enhancement. This list is not meant to be a broad wish list, but instead it represents an upcoming priorities list.
Please note that we are tracking Vulkan 1.3 requirements separately in issue #1930. An item from there can be added here when a developer takes it upon themself to plan to work on it, and want's to let us know here.
The list is in order of attack. This list does not include bug fixing work.
In Dev | Merged | Developer | Enhancement | Deps | Issue# | PR# | |
---|---|---|---|---|---|---|---|
1 | :white_check_mark: | @spnda | VK_KHR_maintenance4 |
#2116 | |||
2 | @billhollings | Install Validation Layer testing | |||||
3 | @billhollings @aitor-lunarg | Remaining CTS fails for Vulkan 1.0 | |||||
4 | :white_check_mark: | :white_check_mark: | @billhollings | ~Metal 3 Arg Buffs (enhancing bindless resources)~ | #2260 | ||
5 | VK_EXT_descriptor_buffer VK_EXT_mutable_descriptor_type |
#(4) | #1776 #2158 | ||||
6 | GL_EXT_debug_printf |
#2252 | |||||
7 | :white_check_mark: | @gpx1000 | VK_EXT_transform_feedback |
#1943 | |||
8 | :white_check_mark: | @AntarticCoder | Vulkan Acceleration Structures | #1956 | #1967 | ||
9 | :white_check_mark: | @billhollings | Faster pipeline caching using MTLBinaryArchives |
#1765 | |||
10 | :white_check_mark: | Vulkan 1.3 | #1930 | ||||
11 | (macOS 14+ only) Integrate Apple's Shader Converter tech (including Geom & Tess shaders) | #(4) |
I think would be nice to include here VK_KHR_maintenance4
extension if that possible
If anyone's interested in implementing this, the spec is here. VK_KHR_maintenance4
is also considered core in Vulkan 1.3, so implementing it is almost a no brainer.
VK_KHR_maintenance4 is also considered core in Vulkan 1.3
Yes. Vulkan 1.3 requirements are being tracked separately in issue #1930. I've clarified that above, along with how this list interacts with that list. See for example, VK_KHR_synchronization2
appears in both lists, because I have plans to work on it above.
Hi, Seems geo and tf are part of the present crossover 23 beta1 release, which says, “We’re pleased to announce that this release also includes initial support for geometry shaders and transform feedback on macOS”..
I’m pretty curious to see how this geo shader implementation compares to “Apple's Shader Converter tech” both performance wise and compatibility wise once the two ara available on MoltenVK.. at least on MacOS 14+.. Exciting times..
Hi, Seems geo and tf are part of the present crossover 23 beta1 release, which says, “We’re pleased to announce that this release also includes initial support for geometry shaders and transform feedback on macOS”..
I’m pretty curious to see how this geo shader implementation compares to “Apple's Shader Converter tech” both performance wise and compatibility wise once the two ara available on MoltenVK.. at least on MacOS 14+.. Exciting times..
@js6i has a PR (#1815) where he said that "Currently we're focused on preparing the next CrossOver release, there will be updates after it's out."
I don't know what will be the plan for that PR if the project want to use Apple's Shader Converter for Geometry shader
VK_EXT_shader_object
looks like an extension that should be included sooner rather than later.
https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today
Metal 3 Arg Buffs (enhancing bindless resources)
It would be very nice if MoltenVK could also properly support "aliasing descriptors" with the reworked binding code.
The shader compiler really hates this pattern right now:
layout(set = 0, binding = 0) uniform sampler2D s0_2d;
layout(set = 0, binding = 0) uniform sampler3D s0_3d;
I believe Enhancement #3 above (Wide lines and basic support for private APIs) is complete and merged, but the table has not been updated to reflect this. Are there additional updates to the table that can be made to track progress?
I believe Enhancement #3 above (Wide lines and basic support for private APIs) is complete and merged, but the table has not been updated to reflect this. Are there additional updates to the table that can be made to track progress?
Yes, the functionality is merged. It's indicated in the checkbox in the Merged column for that enhancement. I've removed the In Dev checkmark to make it clearer.
I believe Enhancement #3 above (Wide lines and basic support for private APIs) is complete and merged, but the table has not been updated to reflect this. Are there additional updates to the table that can be made to track progress?
Yes, the functionality is merged. It's indicated in the checkbox in the Merged column for that enhancement.
That's because, after I saw @tgcordell's comment, I went and silently updated it.
That's because, after I saw @tgcordell's comment, I went and silently updated it.
Ha! Epic! Thanks. And don't be so silent next time! 😂
I’m most interested in #6, the Metal 3 Arg Buffers. Is there a PR where I can follow the development of that enchantment?
I’m most interested in #6, the Metal 3 Arg Buffers. Is there a PR where I can follow the development of that enchantment?
Initial work has been done, but there is no active PR yet. We're trying to prioritize it for sometime this summer.